我有一個按鈕,當點擊加載我的AIR應用程序中的Flex模塊。但是,有時單擊按鈕時第一次加載模塊失敗,但第二次點擊它時會起作用。當我在調試器中調試它時,READY事件不會被觸發,所以剩下的邏輯永遠不會被調用。加載一個模塊失敗了第一次load()被調用,但成功
var moduleInfo:IModuleInfo = ModuleManager.getModule(managedModule.url);
moduleInfo.addEventListener(ModuleEvent.READY, function(event:ModuleEvent):void {
trace("ModuleEvent.READY called.");
});
moduleInfo.addEventListener(ModuleEvent.ERROR, function(event:ModuleEvent):void {
trace("ModuleEvent.ERROR called.");
});
moduleInfo.addEventListener(ModuleEvent.SETUP, function(event:ModuleEvent):void {
trace("ModuleEvent.SETUP called.");
});
moduleInfo.addEventListener(ModuleEvent.PROGRESS, function(event:ModuleEvent):void {
trace("ModuleEvent.PROGRESS called.");
});
moduleInfo.addEventListener(ModuleEvent.UNLOAD, function(event:ModuleEvent):void {
trace("ModuleEvent.UNLOAD called.");
});
moduleInfo.load(ApplicationDomain.currentDomain);
需要ApplicationDomain.currentDomain來解決其他問題,但是在那裏或刪除它似乎沒有什麼區別。有時模塊只是不加載。輸出大致如下:
[跟蹤] ModuleEvent.PROGRESS調用。 [跟蹤] ModuleEvent.PROGRESS調用。 [跟蹤] ModuleEvent.PROGRESS調用。 [跟蹤] ModuleEvent.PROGRESS調用。 [跟蹤] ModuleEvent.PROGRESS調用。 [跟蹤] ModuleEvent.PROGRESS調用。 [跟蹤] ModuleEvent.PROGRESS調用。 [跟蹤] ModuleEvent.PROGRESS調用。 [跟蹤] ModuleEvent.PROGRESS調用。 [跟蹤] ModuleEvent.PROGRESS調用。 [跟蹤] ModuleEvent.PROGRESS調用。 [跟蹤] ModuleEvent.PROGRESS調用。 [跟蹤] ModuleEvent.PROGRESS調用。 [跟蹤] ModuleEvent.PROGRESS調用。 [跟蹤] ModuleEvent.PROGRESS調用。 [跟蹤] ModuleEvent.PROGRESS調用。 [跟蹤] ModuleEvent.PROGRESS調用。 [跟蹤] ModuleEvent.PROGRESS調用。 [跟蹤] ModuleEvent.PROGRESS調用。 [跟蹤] ModuleEvent.PROGRESS調用。 [跟蹤] ModuleEvent.PROGRESS調用。 [跟蹤] ModuleEvent.PROGRESS調用。 [跟蹤] ModuleEvent.PROGRESS調用。 [跟蹤] ModuleEvent.PROGRESS調用。 [跟蹤] ModuleEvent.PROGRESS調用。 [跟蹤] ModuleEvent.PROGRESS調用。 [跟蹤] ModuleEvent.PROGRESS調用。 [SWF] MyStupidModule.swf - 解壓縮後的342,932個字節 [跟蹤] ModuleEvent.SETUP調用。 [跟蹤] ModuleEvent.PROGRESS調用。
注意READY從不會被調用,也不會是ERROR。如果我再次點擊按鈕,這裏是打印輸出:
[跟蹤] ModuleEvent.SETUP調用。 [跟蹤] ModuleEvent.PROGRESS調用。 [跟蹤] ModuleEvent.READY調用。
任何線索什麼可能導致這種情況?我們使用Flex 3.6.0 AIR 2.6.019
您使用ModuleManager而不是ModuleLoader的任何特定原因? –