2014-09-01 116 views
-1

我想知道如何使用休眠/等待系统里面AS3功能,而无需在一次暂停的整个项目,这里是如何我通常做:等待/睡眠内部功能

function doubleBoom():void 
{ 
    boom(); 
    setTimeout(boom, 1);// calls boom after a 1 second delay 
} 

这里就是我想这样做:

function doubleBoom():void 
{ 
    boom(); 
    wait(1);// this function doesn't exist, that's what im trying to solve 
    boom(); 
} 

这种方法会对我的许多优点,例如增加可读性,让我和内联延迟功能。它基于触发编辑器魔兽争霸3世界编辑器

回答

2

由于在AS3中只能有一个线程,因此无法在不停止整个项目的情况下实现这一目标。有许多事情(例如从网络加载东西)可以以异步方式完成,但是如果您的特定操作不支持异步操作,那么使用计时器是最好的方法。

可以编写一个封装类来封装定时器处理,这样就不需要多次写定时器代码。你可以编写类似RepeatTaskManager这样的函数来执行函数对象,该函数所需的任何参数,函数的连续调用之间的延迟以及要调用该函数的次数。这样你就可以只在一个地方使用定时器代码,并且只要你需要这种功能就可以轻松使用RepeatTaskManager

+0

投票下来,因为这不回答问题,正确的答案:不可能的。 – BotMaster 2014-09-01 19:54:20

+1

@BotMaster您是否错过了“没有办法**而无法停止整个项目”的部分?我的第一行清楚地表明它不可能。答案的其余部分只是指出一种可能的方法来轻松管理定时器代码,如果您有许多这样的代码,这可能很有用。 – taskinoor 2014-09-01 20:34:07