Volledige versie bekijken : gotoAndPlay? gotoAndStop?
daveythepavey
%Europe/Berlin %005 %2009, 00:07
Beste mensen,
hoe stop ik een gotoAndPlay() bij een bepaalde frame? Ik heb nu een classic (motion) tween gemaakt en als ik dan gotoAndPlay('Test') doe (framelabel waar de classic tween begint) gaat hij eindeloos loopen.
Vraag: Is er een manier om te definieren waar hij moet stoppen (zonder stop() ergens op de tijdlijn te zetten?)
Met vriendelijke groeten,
Davey
Dauntless
%Europe/Berlin %009 %2009, 00:12
Welkom op FlashFocus!
Er is geen standaard functie die dit voor je doet. Je moet zelf een kleine functie maken. Bv zo:
myMovieClip.gotoAndPlay("Test");
myMovieClip.addEventListener(Event.ENTER_FRAME, checkForStop);
function checkForStop(e:Event):void
{
var mc:MovieClip = MovieClip(e.currentTarget);
if(mc.currentFrame == mc.totalFrames)
{
mc.stop();
mc.removeEventListener(Event.ENTER_FRAME, checkForStop);
}
}
daveythepavey
%Europe/Berlin %015 %2009, 00:22
Bedankt! Is er ook een functie om bij een bepaalde frame te laten stoppen? Dus in plaats van 'totalFrames' iets van frame(5) ofzo?
EDIT: Oops! Heb het al uitgevonden, gewoon het nummer natuurlijk! Zeer slecht van me. :$
BernardV
%Europe/Berlin %016 %2009, 00:24
Dat kan volgens mij ook met de addFrameScript functie.
Iets als:
myMovieClip.addFrameScript(myMovieClip.totalFrames , stopMovie);
myMovieClip.gotoAndPlay("Test");
function stopMovie():void
{
myMovieClip.stop();
}
Heb het niet getest...
//EDIT:
Op je vorige post (die sneller was dan ik had gezien).. Daar kun je dit ook gebruiken, door totalFrames te vervangen door het framenummer. Dat kan ook prima in de code van Dauntless door in het if statement niet te checken op if(mc.currentFrame == mc.totalFrames) maar if(mc.currentFrame == 5) bijvoorbeeld.
//EDIT2: Wat ik me net bedenk is dat de functie addFrameScript op 0 begint, dus frame 5 is dan 4 en totalFrames moet zijn totalFrames-1
vBulletin® v3.8.1, Copyright ©2000-2012, Jelsoft Enterprises Ltd.