http://livedocs.adobe.com/flex/3/html/help.html?content=modular_6.html
<?xml version="1.0"?> <!-- modules/EventApp.mxml --> <mx:Application xmlns="*" xmlns:mx="http://www.adobe.com/2006/mxml"> <mx:Script> <![CDATA[ [Bindable] public var selectedItem:Object; ]]> </mx:Script> <mx:ComboBox width="215" labelField="label" close="selectedItem=ComboBox(event.target).selectedItem" > <mx:dataProvider> <mx:Object label="Select Coverage"/> <mx:Object label="Life Insurance" module="insurancemodules/LifeInsurance.swf" /> <mx:Object label="Auto Insurance" module="insurancemodules/AutoInsurance.swf" /> <mx:Object label="Home Insurance" module="insurancemodules/HomeInsurance.swf" /> </mx:dataProvider> </mx:ComboBox> <mx:Panel width="100%" height="100%"> <CustomModuleLoader id="mod" width="100%" url="{selectedItem.module}" /> </mx:Panel> <mx:HBox> <mx:Button label="Unload" click="mod.unloadModule()"/> <mx:Button label="Nullify" click="mod.url = null"/> </mx:HBox> </mx:Application>
<?xml version="1.0" encoding="iso-8859-1"?> <!-- modules/CustomModuleLoader.mxml --> <mx:ModuleLoader xmlns:mx="http://www.adobe.com/2006/mxml" xmlns="*" creationComplete="init()"> <mx:Script> <![CDATA[ public function init():void { addEventListener("urlChanged", onUrlChanged); addEventListener("loading", onLoading); addEventListener("progress", onProgress); addEventListener("setup", onSetup); addEventListener("ready", onReady); addEventListener("error", onError); addEventListener("unload", onUnload); standin = panel; removeChild(standin); } public function onUrlChanged(event:Event):void { if (url == null) { if (contains(standin)) removeChild(standin); } else { if (!contains(standin)) addChild(standin); } progress.indeterminate=true; unload.enabled=false; reload.enabled=false; } public function onLoading(event:Event):void { progress.label="Loading module " + url; if (!contains(standin)) addChild(standin); progress.indeterminate=true; unload.enabled=false; reload.enabled=false; } public function onProgress(event:Event):void { progress.label="Loaded %1 of %2 bytes..."; progress.indeterminate=false; unload.enabled=true; reload.enabled=false; } public function onSetup(event:Event):void { progress.label="Module " + url + " initialized!"; progress.indeterminate=false; unload.enabled=true; reload.enabled=true; } public function onReady(event:Event):void { progress.label="Module " + url + " successfully loaded!"; unload.enabled=true; reload.enabled=true; if (contains(standin)) removeChild(standin); } public function onError(event:Event):void { progress.label="Error loading module " + url; unload.enabled=false; reload.enabled=true; } public function onUnload(event:Event):void { if (url == null) { if (contains(standin)) removeChild(standin); } else { if (!contains(standin)) addChild(standin); } progress.indeterminate=true; progress.label="Module " + url + " was unloaded!"; unload.enabled=false; reload.enabled=true; } public var standin:DisplayObject; ]]> </mx:Script> <mx:Panel id="panel" width="100%"> <mx:ProgressBar width="100%" id="progress" source="{this}"/> <mx:HBox width="100%"> <mx:Button id="unload" label="Unload Module" click="unloadModule()" /> <mx:Button id="reload" label="Reload Module" click="unloadModule();loadModule()" /> </mx:HBox> </mx:Panel> </mx:ModuleLoader>
No comments:
Post a Comment