2012-01-11 62 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