webForumDet fria alternativet

Timer i ett mc

7 svar · 555 visningar · startad av Stig

StigMedlem sedan dec. 2001146 inlägg
#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.

KoplikMedlem 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.

StigMedlem sedan dec. 2001146 inlägg
#3

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

KoplikMedlem 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.

StigMedlem 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

KoplikMedlem 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.

StigMedlem 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

KoplikMedlem 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);
}
127 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
124 ms — hämta tråd, inlägg och bilagor (db)