有没有办法在处理程序中再次分派事件?
Is there a way to dispatch event again in handler?
对于我的测试,我需要加载大约 1000 个文件,然后对每个文件执行一些操作。问题是我无法在处理程序中加载另一个文件,flexunit 在调用 load() 后退出。当我使用另一个加载器时它可以工作,之前添加了事件监听器(见代码),但我认为添加 ~1000 个加载器不是一个好主意。
我也曾尝试在处理程序函数中创建新的加载器对象,但在尝试在那里添加事件监听器时出现 "Asynchronous Event Received out of Order" 错误。
我应该在这里做什么?
[Test(async)]
public function testTest():void
{
loader.addEventListener(Event.COMPLETE, Async.asyncHandler(this, onComplete, 10000), false, 0, true);
loader.load(new URLRequest("file.xml"));
//loader2.addEventListener(...);
function onComplete(e:Event, passTroughtData:Object):void
{
//performing my actions with loaded file
trace("loaded");
//attempt 1 - test finishes after the next line
loader.load(new URLRequest("other_file.xml"));
//attempt 2 - causes Out of order error
//loader = new URLLoader();
//loader.addEventListener(Event.COMPLETE, Async.asyncHandler(this, onComplete, 10000), false, 0, true);
//loader.load(new URLRequest("other_file.xml"));
}
}
完成我想要的最简单的方法是创建一个加载器数组(每个文件的额外加载器)并在调用第一个 load() 方法之前向它们添加侦听器。
对于我的测试,我需要加载大约 1000 个文件,然后对每个文件执行一些操作。问题是我无法在处理程序中加载另一个文件,flexunit 在调用 load() 后退出。当我使用另一个加载器时它可以工作,之前添加了事件监听器(见代码),但我认为添加 ~1000 个加载器不是一个好主意。
我也曾尝试在处理程序函数中创建新的加载器对象,但在尝试在那里添加事件监听器时出现 "Asynchronous Event Received out of Order" 错误。
我应该在这里做什么?
[Test(async)]
public function testTest():void
{
loader.addEventListener(Event.COMPLETE, Async.asyncHandler(this, onComplete, 10000), false, 0, true);
loader.load(new URLRequest("file.xml"));
//loader2.addEventListener(...);
function onComplete(e:Event, passTroughtData:Object):void
{
//performing my actions with loaded file
trace("loaded");
//attempt 1 - test finishes after the next line
loader.load(new URLRequest("other_file.xml"));
//attempt 2 - causes Out of order error
//loader = new URLLoader();
//loader.addEventListener(Event.COMPLETE, Async.asyncHandler(this, onComplete, 10000), false, 0, true);
//loader.load(new URLRequest("other_file.xml"));
}
}
完成我想要的最简单的方法是创建一个加载器数组(每个文件的额外加载器)并在调用第一个 load() 方法之前向它们添加侦听器。