04. maj 2005 - 16:56Der er
11 kommentarer og 3 løsninger
callback venter ikke på at tween er fædig
Jeg har to tweens i en funktion (movebackin) den ene flytter mit MC ud og det næst flytter det ind igen. Men imellem de to vil jeg gerne sikre at mit MC ligger øverst.
Men ligemeget hvad jeg gør så swapper den depth inden den er færdig med første tween. Er der nogen der har en god forklaring? Callback burde da først eksekveres efter tweenen er afsluttet og ikke bare igangsat??
Så kalder du jo funktionen? Så vil flash jo kalde funktionen og bruge returværdien som argument til slideTo - og det er du jo ikke interesseret i.
I stedet skal du overføre en funktion per reference, som opererer på et movieclippet angivet via aktiverende scope. Lyder lidt komplekst, men det er faktisk ret simpelt:
nå, men den swapper ikke. Jeg har prøvet at trace værdierne og så vidt jeg kan se kan den ikke hitte ud at this._parent.getNextHighestDepth() - den kommer ud som undefined uanset om jeg siger trace (this._parent.getNextHighestDepth()); eller trace (eval(this._parent.getNextHighestDepth());
Jeg har også forsøgt med _root.getNextHighestDepth() men uden held, nogen bud på hvad jeg gør galt?
Hej, brug en delegate til at styre scope på funktionen, så skal det nok fungere. Det er desuden nemmere at forstå for andre udviklere hvad der sker. Jeg kan anbefale altid at gøre det på callbacks fra tredieparts objekter/metoder, som ikke altid bekymrer sig om hvor scope er når de er færdige:
Her. Delegate.create( <clip>, <function>) returnerer en wrapper funktion omkring din <function> som gør at den bliver kaldt med <clip> som scope.
Har ikke noget konkret link. Google på "actionscript Delegate", eller kig på sourcen for mx.utils.Delegate (F3 "Delegate.as" hvis du ikke ved hvor MM's klassebibliotek ligger) - den fylder ikke noget.
Pål
PS: Selv i Macromedias egne callbacks er der ikke taget højde for at bevare scope til kaldende AS2 klasser (fremfor movieclips). Så brug delegate på xml.onload, og LoadVars hvis du bruger dem i en wrapper klasse.
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.