PDA

Volledige versie bekijken : SetInterval werkt niet goed...


idus
%Europe/Berlin %345 %2007, 09:16
Hi,

Ik ben bezig met een flashpresentatie waarbij ik AS setInterval gebruik. Alleen dit werkt niet zoals ik wil. Het gaat sneller dan de aangegeven tijd of hij springt in een keer naar de volgende labelframe. Bij elke frame heb ik gezet:

Frame 1


forward.onPress = function() {
gotoAndPlay("volgendeScene");
};
backward.onPress = function() {
gotoAndStop(1);
};

stop();
function go1() {
trace("go1");
clearInterval(intervalID);
play();
}
intervalID = setInterval(go1, 5000);



Frame 10


forward.onPress = function() {
gotoAndPlay("volgendeScene");
};
backward.onPress = function() {
gotoAndStop(vorigeScene);
};

stop();
function go2() {
trace("go2");
clearInterval(intervalID);
play();
}
intervalID = setInterval(go2, 5000);





Heeft het te maken dat ik de intervalID twee keer gebruik of dat de buttons de script verstoren... [?] [?] Ik kom er dus niet uit.... [V]

digitalecartoons
%Europe/Berlin %370 %2007, 09:52
Ik had toevallig onlangs net iets soortgelijks:
Setinterval werkt niet bij mij (http://www.flashfocus.nl/forum/showthread.php?t=34985)
Misschien dat je er wat aan hebt.

idus
%Europe/Berlin %403 %2007, 10:40
Dank je voor het meedenkend :). Ik had die idd al gevonden maar kwam er niet goed uit hoe ik dit moest gebruiken in my situaties (met buttons) en ik mis de uitleg om het te begrijpen hoe het werkt . Daarvoor heb ik mijn AS toegevoegd zodat ik het makkelijker kan begrijpen wat ik fout heb gedaan (of moet veranderen).

gr,
Idus

Dauntless
%Europe/Berlin %411 %2007, 10:53
Je zegt dat je dat script hebt toegevoegd op ALLE frames?

Wat is exact de situatie van je .fla? Dit moet zeker samen te vatten zijn in 1 script.

idus
%Europe/Berlin %439 %2007, 11:32
Ik heb 5 scenes (keyframes 1-5-10-15-20-25 ) op de maintimeline. Op elke frame start een movieclip die 5, 10 of 15 seconden moet duren

Op elke keyframe heb ik ook twee buttons staan om naar de volgende of vorige MC te klikken (indien dit te lang of te snel gaat om het te lezen)

Op een andere layer (Actionscript) staat op elke keyframes een script forward.onPress = function() {
gotoAndPlay("volgendeScene");
};
backward.onPress = function() {
gotoAndStop("vorigeScene");
};

stop();
function go1() {
trace("go1");
clearInterval(intervalID);
play();
}
intervalID = setInterval(go1, 5000);

waarbij ik dan per keyframe de "go1" verander in go1, go2, go3 etc..
en de "5000" in de aantal seconden (10000 en 15000)


Ik hoop dat ik het goed heb uitgelegd

idus
%Europe/Berlin %511 %2007, 13:16
O, ik zie ook dat als ik "forward" de trace: go1, go1,go1 etc. ipv opvolgend. Dus het lijkt of de clearInterval niet goed is? Of zit ik verkeerd?

Dauntless
%Europe/Berlin %514 %2007, 13:21
Clear hem ook even vlak voor je hem toekent.

idus
%Europe/Berlin %530 %2007, 13:44
Bedoel je zo? :S want ik twijfel waar ik het moet neerzetten :

clearInterval(intervalID);

forward.onPress = function() {
gotoAndPlay("volgendeScene");
};
backward.onPress = function() {
gotoAndStop("vorigeScene");
};

stop();
function go1() {
trace("go1");
clearInterval(intervalID);
play();
}
intervalID = setInterval(go1, 5000);



Je zegt dat je dat script hebt toegevoegd op ALLE frames?

Wat is exact de situatie van je .fla? Dit moet zeker samen te vatten zijn in 1 script.

En ik ben wel nieuwsgierig of het idd is samen te vatten in een script?

Dauntless
%Europe/Berlin %606 %2007, 15:33
Elke keer dat er op een button geklikt wordt, wil je dus dat je naar een andere 'scene' gaat, en je wil dat hij na het spelen van het filmpje ook automatisch naar de volgende scene gaat ?

idus
%Europe/Berlin %860 %2007, 21:38
Elke keer dat er op een button geklikt wordt, wil je dus dat je naar een andere 'scene' gaat, en je wil dat hij na het spelen van het filmpje ook automatisch naar de volgende scene gaat ?
Ja inderdaad...

idus
%Europe/Berlin %628 %2007, 16:05
Hi Daunless,

Kan je me hiermee helpen... Sorry dat ik lastig ben maar ik moet het vandaag af hebben :S [V]

Dauntless
%Europe/Berlin %638 %2007, 16:19
Iets van een:
var position:Number = 0;
var times:Array = new Array(1000, 2000, 3000, 4000, 5000); //tijden van je scenes
var labels:Array = new Array("Scene1", "Scene2", "Scene3", "Scene4", "Scene5");
var myInterval:Number;
var root:MovieClip = this;
forward.onPress = function() {
clearInterval(myInterval);
if(position < 4)
{

position ++;
}
else
{
position = 0;
}
gotoAndStop(labels[position]);

};
backward.onPress = function() {
clearInterval(myInterval);
if(position > 0)
{
position --;
}
else
{
position = 4;
}
gotoAndStop(labels[position]);
myInterval = setInterval(root, "automaticPlay", times[position]);
};

stop();

function automaticPlay()
{
clearInterval(myInterval);
forward.onPress();
}