webForumDet fria alternativet

Hur gör man en delay i en while loop???

Flashur Flash, Shockwave

1 svar · 214 visningar · startad av magnusw

Medlem sedan aug. 20032 inlägg
Frågan#1

Hej jag har gjort följande kod men den funkar inge bra

knapp.onPress = function() {
n = 0;
myStringShow = "";
myString = "my string goes here";
myStringLength = myString.length;
do {
myStringShow=myStringShow+myString.charAt(n);
n = n+1;
myTimer = setInterval(wait,200)
} while (n != myStringLength);
}

function wait(){
trace("Delay");
}

jag skulle behöva en delay i denna loop
do {
myStringShow=myStringShow+myString.charAt(n);
n = n+1;
myTimer = setInterval(wait,200)
} while (n != myStringLength);

på valfritt antal millisekunder!!

Detta funktions anrops ska i vanliga fall göra ett "upphåll" på
200 ms innan funktionen wait anropas men det funkar inte
"myTimer = setInterval(wait,200)"

nån som har någe bra förslög på hur man kan göra en simple x antal millisekunders delay i min while loop??

Mvh Magnus

Medlem sedan maj 2003750 inlägg
#2

problemet är att man inte kan göra en "delay" mitt i ett skript i flash. Enda som händer är att filmen hackar då flash alltid kör skript helt klart innan grafiken ritas. Ja du förstår nog vad jag menar...

Istället för att använda setInterval i functionen Wait för att göra en delay så används den för att göra själva loopen:

 
knapp.onPress = function() 
{
    n = 0;
    myStringShow = "";
    myString = "my string goes here";
    myStringLength = myString.length;
    myTimer = setInterval(putLetter, 200)       
}

function putLetter()
{
      myStringShow += myString.charAt(n);
      if(n++ == myStringLength)
            clearTimeOut(myTimer);
}

/Mirandir

135 ms totalt · 3 externa anrop · v20260731065814-full.4bcf49fe
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
131 ms — hämta tråd, inlägg och bilagor (db)