我需要在 AIR 应用程序中加载任意数量的文件。
我想遍历一个 File 对象数组,并为每个人的 File.url 创建和启动 Loaders。
当它们完成后(事件 COMPLETED 或 IOErrorEvent.IO_ERROR),我想将它们的数据填充到某个地方。如果他们失败了,我想进行异常报告。我找不到从事件侦听器中引用 File 对象的任何方法(当然不是 IO_ERROR)
最好的方法是为每个将文件信息“硬编码”到其中的启动器创建单独的事件处理程序。至少,我可以将函数本身用作字典的索引:
foo(fileToLoad:文件):无效 { var theCompletedHandler : 函数 = { var theFile : File = completedHandlerLookup[?????? 这个功能??????]; var theData : ImageData = new ImageData(theFile.url, (_loader.content as Bitmap).bitmapData); // 对数据做一些事情 删除完成的HandlerLookup[?????? 这个功能??????]; 删除 errorHandlerLookup.findByValue(theFile); // [原文如此] } var theErrorHandler : 函数 = { var theFile : File = errorHandlerLookup[?????? 这个功能??????]; // 报告错误 删除errorHandlerLookup[?????? 这个功能??????]; 删除完成的HandlerLookup.findByValue(theFile); // [原文如此] } completedHandlerLookup[theCompletedHandler] = theCompletedHandler; errorHandlerLookup[theCompletedHandler] = theErrorHandler; var theLoader : Loader = new Loader(); theLoader.addEventListener(Event.COMPLETE, theCompletedHandler); theLoader.addEventListener(IOErrorEvent.IO_ERROR, theErrorHandler); theLoader.load(new URLRequest(fileToLoad.url));
我可以使用 event.currentTget 并将 Loader 实例用作索引吗?那会有什么奇怪的依赖吗?
干杯