Flex ModuleManager 加载模块

import mx.events.ModuleEvent;
import mx.modules.IModuleInfo;
import mx.modules.ModuleManager;

private var _moduleInfo:IModuleInfo;

private function loadModule(url:String):void
{               
   var tempModuleInfo:IModuleInfo = ModuleManager.getModule(url);
                
   //注释或使用下面一行,运行查看不同的效果
   _moduleInfo = tempModuleInfo;
                
   tempModuleInfo.addEventListener(ModuleEvent.READY, onReady);
   tempModuleInfo.addEventListener(ModuleEvent.PROGRESS, onProgress);
   tempModuleInfo.addEventListener(ModuleEvent.ERROR, onError);
   tempModuleInfo.addEventListener(ModuleEvent.SETUP, onSetup);
                
   tempModuleInfo.load(ApplicationDomain.currentDomain);
}
            
private function onSetup(evt:ModuleEvent):void
{
                
}
            
private function onProgress(evt:ModuleEvent):void
{
   msg.htmlText = "正在加载:" + Math.floor(evt.bytesLoaded / evt.bytesTotal).toString() + "%";
}
            
private function onReady(evt:ModuleEvent):void
{
   var moduleInfo:IModuleInfo = evt.target as IModuleInfo;
                
   moduleInfo.removeEventListener(ModuleEvent.PROGRESS, onProgress);
   moduleInfo.removeEventListener(ModuleEvent.READY, onReady);
   moduleInfo.removeEventListener(ModuleEvent.ERROR, onError);
                
   msg.htmlText = "模块加载完成";
                
   moduleCanvas.addChild(moduleInfo.factory.create() as DisplayObject);
}
            
private function onError(evt:ModuleEvent):void
{
   msg.htmlText = "模块加载出错!";
}

 

posted on 2014-08-12 12:15  DerekYu  阅读(424)  评论(0)    收藏  举报

导航