Det er sikkert en ret basic ting, men hvis man nu skifter et frame og samtidigt skal gøre noget med et movieclip nede i den frame. Så sker det jo samtidigt og man er derfor ikke skiftet frame før man kalder det movieclip man skal bruge. Hvad gør man så. Er der en complete eller added agtig event man kan lave så man kan se hvornår en gotoAndStop er færdig?
Classe på et movieclip
1 2 | this.avetarSkin.gotoAndStop(_skinColor); this.avetarSkin.mcDice.visible = false; |
2 kommentarer
Hvis du absolut vil bruge timeline scripts, så flyt den anden kodelinie, (this.avetarSkin.mcDice.visible = false; ) til den frame, hvor mcDice eksisterer.
this.avetarSkin.gotoAndStop(_skinColor);Ellers må du have en onEnterFrame listener for avatarSkin, hvor du tager højde for hvilken frame eller label playHead er på.
Generelt udføres al kode på en frame før der flyttes til en en ny.
Men man kan ikke rykke rundt fra samme frame.
prøv fx at lave kode på frame 1:
kode på frame 2:
trace("frame 2");kode på frame 3:
trace("frame 3");Dit trace vil kun udføre koden på frame 3
Det er nu ikke timeline kode.
Det er en klasse på et movieclip, hvor koden ligger i constructoren. Jeg har også prøvet at flytte den anden linje til en added function som bliver kaldt med eventen ADDED_TO_STAGE.
Så i konstruktøren skifter jeg en hudfarve og under den vil jeg bl.a. skjule en terning i en hånd. Men åbenbart har den ikke skiftet frame før jeg begynder at skjule terningen. Jeg kan godt vendte til der er gået en frame, men så ser man jo terningen i et glimt, hvilket ikke er så pænt.Så det ville være smartere med en eller anden event som bliver kaldt med en gang jeg har fået skiftet hen til den gældene frame.
Jeg har løst det af andre veje med at flytte huden og terningen i samme niveau, så det er ikke et problem mere, men det ville være rart at vide om det var muligt til fremtiden.
Her en forsimplet version af koden som er et MovieClip i en SWC bliver koblet sammen med.