PDA

Volledige versie bekijken : (opgelost) _parent niet goed?


Heedless
%Europe/Berlin %988 %2006, 00:43
Ik heb op m`n stage een MC 'menuBar'. Daar in zit een knop met 'knop' als naam. In frame 1 van menuBar staat:knop.onPress = function(){
trace (_parent);
trace (_root);
trace (this);
}
De uitkomsten hiervan zijn:
trace (_parent) = _level0
trace (_root) = _level0
trace (this) = _level0.menuBar.knop

als this de knop is, dan moet _parent toch de _level0.menuBar zijn? En niet _level0? Of is het te laat en denk ik niet goed meer? =P

edit: met dit omweggetje lukt het, maar is natuurlijk niet zo handig
dit = this;
this.onEnterFrame = function() {
knop.onPress = function() {
trace(dit);
};
};

Dauntless
%Europe/Berlin %424 %2006, 11:11
Volgens MacroMedia: this in de scope van een button verwijst naar de tijdlijn waar de button zich op bevind.

Mijn ervaring: Dit is alleen als je this juist weglaat. Trace bv eens this._parent. Waarschijnlijk ga je dan wel _level0.menuBar krijgen. Dus alleen de 'weggelaten' this verwijst naar de tijdlijn waar de button op staat en this._parent verwijst ook naar de tijdlijn waar de button op staat.

Kan je dit even verifiëren ? :)

PS: Ik maak altijd een 'root' variabele aan (var root:MovieClip = this) . Op die manier kan je met 'root' werken en blijft alles relatief.

Heedless
%Europe/Berlin %528 %2006, 13:40
Met trace (this._parent); doet hij het inderdaad. Maf systeem
[QUOTE=Dauntless]Ik maak altijd een 'root' variabele aan (var root:MovieClip = this) . Op die manier kan je met 'root' werken en blijft alles relatief.[/as]Dat is niet altijd even fijn vind ik. Je stapt dan helemaal naar boven en dan weer naar beneden naar het object dat je hebben wil. 1 Stap omhoog is dan logischer. Maar soms ontkom je er niet aan en is het inderdaad wel handig.

In elk geval werkt hij op deze manier. Bedankt :)