Avatar billede lohaba Nybegynder
16. april 2002 - 11:10 Der er 8 kommentarer og
1 løsning

hitTest i loaded swf..!

Jeg laver et lille spil i Flash 5, hvor de forskellige "scener" loades ind i en hovedfilm, hvor navigationen foregår, og den holder styr på hvilke opgaver der er løst mv. (Det er opgaver, hvor man skal finde forskellige ting til en figur (fx er der en dukke, der mangler en arm mv.))
Før man kan trække rundt med tingene, tjekker filmen at man ikke allerede har løst opgaven.

Nu er problemet så, at når pågældende swf er loaded, virker hitTesten ikke, da den åbenbart ikke kan finde den ting, den skal ramme. (I dette tilfælde 'ballon').
Har prøvet utallige måder at gøre det på, og skrive det på, men intet virker. Har skrevet hele stien fra _root ned til 'ballon', og nu, som nedenstående script viser, -kun 'ballon'.
Som det er nu, kan man godt kan trække tingen rundt, men den er ligeglad med om man rammer 'ballon' eller ej, og når man slipper den, har den så "løst opgaven" (selvom den jo ikke har nået ballonen, som den skulle).

Scriptet til mc'en man flytter rundt med:


onClipEvent (mouseDown) {
    if (this.hitTest(_root._xmouse, _root._ymouse, false)) {
        if (_root.opgave11 == false) {
            startDrag (this);
        }
    }
}
onClipEvent (mouseUp) {
    if (this._droptarget == ballon) {
        stopDrag ();
        _root.opgave11 = true;
    }
}



Nogen, der ved hvad der er galt? Hvorfor virker noget af det, når den nu ikke kan finde tingen, den skal ramme?

Mvh. Louise H. B.

Avatar billede hoejrup Nybegynder
16. april 2002 - 11:38 #1
Hvis du har givet dit movieclip instance navnet ballon, så kan du lave følgende
hitTest:

this.hitTest(_root.ballon);

/per
Avatar billede hoejrup Nybegynder
16. april 2002 - 11:39 #2
Vælg dit movieclip og tryk på cntl + i. Så får du et vindue, hvor du kan skrive dit instance navn.

/per
Avatar billede lohaba Nybegynder
16. april 2002 - 11:47 #3
Se det er lige nøjagtig det, som er forkert! -For ved at linke til _root.ballon, vil den, når den loades i 'navigations-movien', bruge 'navigations-movien' som _root!! -Og dermed virker skidtet ikke...
Avatar billede barklund Nybegynder
16. april 2002 - 14:18 #4
Hvilket level loades den film, som indeholder ballonen? Er det loaded til level1, så brug:

this.hittest(_level1.ballon)
Avatar billede barklund Nybegynder
16. april 2002 - 14:19 #5
Nåja.... _droptarget er lidt farlig at bruge, for hvis det ligger nogle andre movieclips inden i mellem og den samtidig skifter level,så tror jeg ikke man kan regne med den...
Avatar billede lohaba Nybegynder
16. april 2002 - 14:46 #6
-> barklund: Det lyder ellers meget godt med at hente den fra det level den hentes i... Men det virker heller ikke.
-Du siger noget med _droptarget.. -Hvad skal man bruge istedet?
Avatar billede barklund Nybegynder
16. april 2002 - 17:48 #7
Du skal referere til det level, som den er loaded i - ellers virker det ikke... _root refererer jo til roden i det level, hvor du er, så hvis dit ballon-clip ligger i et andet level, så er dettes _root forskellig fra level0's _root...

_droptarget er dum - Brug altid hittest...
Avatar billede lohaba Nybegynder
17. april 2002 - 11:52 #8
->barklund:
Se i første omgang virkede det ikke, men det gav mig idéen til hvad man kunne gøre, og jeg slog op i min kære bog.
Og nu er det jo sådan at den loades ind i et movieclip 'scenehold', som er på hovedscenen..
Og ved at ændre scriptet til følgende VIRKER DET!


onClipEvent (mouseUp) {
    if (this.hitTest(_level0.scenehold.ballon)) {
        stopDrag ();
        _root.opgave11 = true;
    }
}

Så tak for hjælpen, du får mine point, selvom det ikke rpæcis var svaret.
Tak for det.
Avatar billede lohaba Nybegynder
17. april 2002 - 11:53 #9
Gider du lige at svare igen, så jeg kan give dig dine point? :-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester