我需要在使用其他功能捕获事件(下载内容)后返回到我的原始功能。原始函数需要返回一个值,该值取决于下载的数据。所以,我想暂停原始函数下载所需的时间和eventhandler函数来完成它的工作,然后继续它。
显而易见的方法是设置一个标志值(原始函数和eventhandler都在同一个类中)并使原始函数检查它,直到eventhandler函数更改标志。但那会浪费,我的AS已经足够慢了:) [应用程序的其他部分使用了一些重型图形]。
还有其他方法吗?就像一个被“捕获在函数中间”的事件一样?还是其他形式的流量控制?
答案 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的建议进行操作,将其拆分为多个函数。