0
我使用ModuleManager會加載一個模塊,這樣的類:的Flex ModuleManager會卸載模塊
public class LoadModule
{
private static var info:IModuleInfo;
private static var display:IVisualElement;
private static var downloadBar:ProgressBar;
private static var parent:Group;
public function LoadModule()
{
}
//load module
public static function load(url:String, parent:Group, bar:Boolean = true):void {
LoadModule.parent = parent;
info = ModuleManager.getModule(url);
info.addEventListener(ModuleEvent.READY, readyHandler);
info.addEventListener(ModuleEvent.SETUP, setupHandler);
info.addEventListener(ModuleEvent.ERROR, errorHandler);
info.load(null, null, null, parent.moduleFactory);
}
//add display object
private static function readyHandler(event:ModuleEvent):void {
LoadModule.display = event.currentTarget.factory.create() as IVisualElement;
parent.addElement(LoadModule.display);
}
private static function setupHandler(event:ModuleEvent):void {
}
//unload module
public static function unload():void {
if (LoadModule.info != null) {
LoadModule.info.addEventListener(ModuleEvent.UNLOAD, unloadHandler);
LoadModule.info.unload();
if (parent.getElementIndex(LoadModule.display) != -1) {
parent.removeAllElements();
LoadModule.display = null;
}
}
}
private static function unloadHandler(event:ModuleEvent):void {
LoadModule.info.removeEventListener(ModuleEvent.UNLOAD,unloadHandler);
trace("unloadModue");
}
//
private static function progresshandler(event:ModuleEvent):void {
downloadBar.label = "haved" + Math.round((event.bytesLoaded /event.bytesTotal) * 100) + "%";
}
private static function errorHandler(event:ModuleEvent):void {
throw Error(event.errorText);
}
public static function setDownloadbar(downloadBar:ProgressBar):void {
LoadModule.downloadBar = downloadBar;
}
}
然後我加載模塊和卸載模塊:
LoadModule.unload(); // 1
LodModule.load('..one.swf', parent);
LoadModule.unload(); //2
LodModule.load('...one.swf', parent);
從理論上講,這是隻在一個模塊我的應用程序,我用「PopUpManager」彈出一個框,它應該是一個框。但是,事實上,它是流行拖車箱。 我使用Flash builder調試這段代碼,並且它沒有注意到我的unloade swf ..我想,它有兩個模塊在應用。 所以,我需要幫助。如何在ModuleManager中卸載模塊。我希望一個模塊在應用中,而不是兩個。 謝謝。
這是一個確定的可能性,但我也想補充一點,因爲您使用的是靜態變量並且沒有刪除事件偵聽器,所以您當前擁有的代碼已經充滿了潛在的問題。 –
嗨,我是初學者。代碼不好,我的母語是中文。所以謝謝大家回答。 – Lee
我將修改代碼。 – Lee