actionscript-3 - actionscript 3.0 如何设置时间延迟

标签 actionscript-3 flash timer delay

有没有办法让我的功能延迟 3 秒。除了等待 3 秒然后执行一个函数,我希望它等待 3 秒然后执行它本应在 3 秒前完成的函数。

我在最后一句话中可能没有任何意义,但这是一个例子:

例。走路,然后你的追随者做你做的完全一样的事情,只是延迟了 3 秒。

提前致谢。

最佳答案

AS3 中的函数是一级成员,这意味着它们可以作为参数传递。设置延迟的一种方法是定义一个“延迟”函数,如下所示:

function delayedFunctionCall(delay:int, func:Function) {
    trace('going to execute the function you passed me in', delay, 'milliseconds');
    var timer:Timer = new Timer(delay, 1);
    timer.addEventListener(TimerEvent.TIMER, func);
    timer.start();
}


function walkRight() {
    trace('walking right');
}

function saySomething(to_say:String) {
    trace('person says: ', to_say);
}

//Call this function like so:

delayedFunctionCall(2000, function(e:Event) {walkRight();});

delayedFunctionCall(3000, function(e:Event) {saySomething("hi there");});

您需要延迟的函数需要用这样的匿名函数“包装”,因为 .addEventListener 方法希望传递一个只有一个参数的函数:Event对象。

(不过,您仍然可以在匿名函数中指定要传递给延迟函数的参数。)

关于actionscript-3 - actionscript 3.0 如何设置时间延迟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19470477/

相关文章:

flash - 如何在Flex中进行CPU分析?

flash - Flash应用中矩形的姿态估计

c - 如果我们将 sigev_notify 用作 SIGEV_THREAD,为什么 timer_create 会生成线程

javascript - IE11如何解码音频流,并且它不支持Web-Audio-API?

actionscript-3 - 为什么我不能在 OS X Lion x64 上的 Flash Player 11 中拥有 120,000x120,000 像素的位图数据?

actionscript-3 - 在 Flex 中动态创建按钮

actionscript-3 - 在本地 Adob​​e Media Server 上播放视频

javascript - 在 JavaScript 中检测 Flash 对象点击

Android - 实现自定义计时器/时钟

r - 我想在特定时间运行 R 代码