PDA

Volledige versie bekijken : Actionscript in bepaalde volgorde laten lezen?


boboyd
%Europe/Berlin %750 %2008, 19:00
Beste flashers,

Ik ben iets aan het maken in flash, en nu kom ik in aanraking met een probleem met actionscript.
Het probleem is het volgende :
if (_root._currentframe == "31") {
_root.gotoAndPlay(32);

Dit werkt helemaal zoals het moet werken :)
Nu wil ik alleen nog een actie toe voegen na:
_root.gotoAndPlay(32);

Maar als ik dit doe, dan leest die dat niet om de beurt af, maar hij leest het gewoon snel door, dus hij gaat gelijk na de 2de actie die ik daar dan aan toe zou voegen.

Hoe kan ik er voor zorgen dat die eerst _root.gotoAndPlay(32); die actie uitvoerd totdat die klaar is, en dan nog een andere actie er achteraan plakken??
Ik moet dus een soort "and then" functie hebben ofzo :S [:o)]
Hopelijk heb ik het zo goed mogelijk uitgelegd? anders hoor ik het graag! :)

Jan
%Europe/Berlin %761 %2008, 19:17
_currentframe is een property van de MovieClip class en als je even in de help keek zou je zien dat daar bij staat: Number, dus eigenlijk moet je die vergelijking maken met een number en dus dat getal niet tussen quotes zetten want dan is het een String.
this.onEnterFrame=function()
{
if (this._currentframe == 31)
{
this.gotoAndPlay(32);
trace("ik zit nu in frame 32");
}
}
Ik zie het probleem eigenlijk niet. :S

Groeten,
Jan

boboyd
%Europe/Berlin %765 %2008, 19:22
Het probleem is het volgende:

Als ik zeg gotoAndPlay(32);
Dan gaat die een stukje spelen van 5 frames, wat ook moet.
dan komt die aan bij een stop();
Maar daarna wil ik gelijk dat die naar frame 50 gaat, en daar een stukje afspeelt.
zonder dat die het stukje vanaf frame 32 overslaat en gelijk naar frame 50 gaat.

Dus uiteindelijk moet er zoiets komen:

on (release) {

if (_root._currentframe == "31") {
_root.gotoAndPlay(32);
_root.gotoAndPlay(50);
}
maar wat er dus nu gebeurt is dat, die het gedeelte van frame 32 overslaat, en gelijk het gedeelte _root.gotoAndPlay(50); pakt.



Misschien is dit een betere uitleg op het gene waar ik een antwoord opzoek, anders hoor ik het graag :)

Jan
%Europe/Berlin %836 %2008, 21:04
Ja nu is het bijna duidelijk.
on (release)
{
if (_root._currentframe == 31)
{
play();
_root.onEnterFrame=function()
{
if(_root.currentframe==37)
{
delete _root.onEnterFrame;
_root.gotoAndPlay(50);
}
}
}
}

_currentframe is een property van de MovieClip class en als je even in de help keek zou je zien dat daar bij staat: Number, dus eigenlijk moet je die vergelijking maken met een number en dus dat getal niet tussen quotes zetten want dan is het een String.
En niet op je objecten scripten! Objecten een instance name geven en alle script in een frame op de hoofdtijdlijn in het vervolg. En geen _root gebruiken maar combinaties van this en _parent

Jan