2012-01-11 61 views
0

這裏是我使用的代碼:AS3暫停,不同的時間

import flash.utils.Timer; 
import flash.events.TimerEvent; 

//Pausing the timeline 
function wait(){ 
    stop(); 
    var timer:Timer=new Timer(2000,1); 
    timer.addEventListener(TimerEvent.TIMER,waitdone); 
    timer.start(); 
} 
function waitdone(e:TimerEvent){ 
    e.currentTarget.removeEventListener(TimerEvent.TIMER,waitdone); 
    play(); 
} 

當我調用下面的函數,它會暫停2秒,輕鬆。我無法想象要做的是撥打wait();並添加另一秒來獲得3秒而不是兩秒。

有沒有簡單的方法來做到這一點?

回答

2

您的意思是這樣的?

function wait(numberOfSeconds:int){ 
    stop(); 
    var timer:Timer=new Timer(numberOfSeconds * 1000); 
    timer.addEventListener(TimerEvent.TIMER,waitdone); 
    timer.start(); 
} 

然後根據您想要的秒數,使用wait(2)或wait(3)調用它。

+0

簡單,美觀和簡單,這正是我所追求的。謝謝 – Phill 2012-01-11 04:39:29

1

大約是這樣的內容:

import flash.utils.Timer; 
import flash.events.TimerEvent; 

var currentDelay:Number = 2000; 

//Pausing the timeline 
function wait(){ 
    stop(); 
    var timer:Timer=new Timer(currentDelay,1); 
    timer.addEventListener(TimerEvent.TIMER,waitdone); 
    timer.start(); 
} 
function waitdone(e:TimerEvent){ 
    e.stop(); 
    if(currentDelay > 10000){ //stop it after lets say when delay reaches over 11 seconds 
    e.currentTarget.removeEventListener(TimerEvent.TIMER,waitdone); 
    play(); 
    } else { 
    currentDelay += 1000; 
    e.delay = currentDelay; 
    e.reset(); 
    e.start(); 
    } 
} 

總的想法是你保持你的函數之外的currentDelay變量來跟蹤當前的延遲你在的。你可以從任何其他有範圍的函數中增加這個變量。

+0

對不起,我不確定我解釋正確。我想保持它在2秒,但增加它在3或4其他地方是第二更多,同時使用相同的功能 – Phill 2012-01-11 04:10:16