Actionscript:从事件处理函数切换回上一个函数

时间:2010-05-13 23:08:20

标签: flash actionscript-3 events

我需要在使用其他功能捕获事件(下载内容)后返回到我的原始功能。原始函数需要返回一个值,该值取决于下载的数据。所以,我想暂停原始函数下载所需的时间和eventhandler函数来完成它的工作,然后继续它。

显而易见的方法是设置一个标志值(原始函数和eventhandler都在同一个类中)并使原始函数检查它,直到eventhandler函数更改标志。但那会浪费,我的AS已经足够慢了:) [应用程序的其他部分使用了一些重型图形]。

还有其他方法吗?就像一个被“捕获在函数中间”的事件一样?还是其他形式的流量控制?

2 个答案:

答案 0 :(得分:2)

您需要将等待事件处理程序的函数拆分为一个回调,以便在事件触发后恢复其余代码:

public function non_blocking():void {
   // code that needs to run before the event here]

   var callback:Function = function(e:Event):void {
      // test return type here
      // ... continue with the rest of your code
   };   

   addEventListener(YOUR_EVENT_TYPE, callback);
}

答案 1 :(得分:0)

它不像这样工作。你不能让代码只是坐在那里等待其他东西完成,Actionscript执行只是单线程。您需要按照jdeseno的建议进行操作,将其拆分为多个函数。