webForumDet fria alternativet

Timer i ett mc

Flash

7 svar · 555 visningar · startad av Stig

Medlem sedan dec. 2001146 inlägg
Frågan#1

Jag her ett mc på _root som jag loopar, hur bygger jag en timer som talar om hur länge mc1 ska loopa innan jag vill att _root hoppar till nästa frame och kör nästa mc2?

Jag kan ju bygga en timer som ett tomt mc med bara en massa frames i och lägga koden i sista framen som säger till _root att hoppa fram men det är väl smidigare med ett script.

Medlem sedan juli 20011 129 inlägg
#2

I det fallet borde det väl gå bra att köra en setTimeout eller setInterval i AS, förmodar jag.

Medlem sedan dec. 2001146 inlägg
#3

Okej! Du skulle inte kunna visa hur ett sådant script ser ut?

Medlem sedan juli 20011 129 inlägg
#4

Jovisst

var waitBeforeContinueTimer:Number = setInterval(progressToNextFrame, 15000); //setInterval calls a function and time is defined through milliseconds

function progressToNextFrame():Void {
  _root.gotoAndPlay(2); //Insert the index of the frame that should be played
}

Jag hoppas att det är vad du är ute efter.

Medlem sedan dec. 2001146 inlägg
#5

Tack, men jag får det inte att funka. Vad är denna till :Void Vad lägger jag ut för variables (textfält) för att se timern räkna

Medlem sedan juli 20011 129 inlägg
#6

Void innebär att funktionen inte returnerar något värde.
Tyvärr så kan du inte se hur interval räknar genom den koden. det du skulle kunna göra är att köra trace på timern och unktionen för att se om det verkligen lirar som det ska.

var waitBeforeContinueTimer:Number = setInterval(progressToNextFrame, 15000); 
trace("Timer satt, kör progressToNextFrame() om 15 sek");
//setInterval calls a function and time is defined through milliseconds

function progressToNextFrame():Void {
  trace("Försöker gå till frame 2 av scenen och spela");
  _root.gotoAndPlay(2); //Insert the index of the frame that should be played
}

För att göra en räknare kan du göra t.ex.

var timer:Number = 0;
var countTimer:Number = setInterval(counter, 1000); //setInterval calls a function and time is defined through milliseconds

function counter():Void {
  timer++;
  trace("Räknar, counter = " + timer);
}

Inte provat, men bör fungera. Funktionen jag beskrev först kör jag själv i en scen i flash 8.

Medlem sedan dec. 2001146 inlägg
#7

Tack nu fungerar det bra, hur stoppar jag funktionen för den kör ju hela tiden även om jag flyttar mig på _root där mc med funktionen inte finns? Ser att den fortsätter i trace rutan

Medlem sedan juli 20011 129 inlägg
#8

Ah, jag misstänkte att det kunde bli så.
Det du kan göra är att lägga till en clearTimeout() i funktionen. Detta ska (förhoppningsvis) hjälpa

function progressToNextFrame():Void {
  _root.gotoAndPlay(2); //Insert the index of the frame that should be played
  clearInterval(waitBeforeContinueTimer);
}
280 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
146 ms — deklarationer (db)
0 ms — hämta statistik (cache)
131 ms — hämta tråd, inlägg och bilagor (db)
146 ms — ändringar (db)