Flex 主程序、模塊、PopUp調用初探

主程序調用以它爲父的模塊的函數或屬性:
import modules.Mo1Home;
private var mo1:Mo1Home=new Mo1Home();

模塊調用主程序中的方法或屬性:
var str:String=this.parentApplication.menuBarItemId;
在主窗體實例化模塊後調用屬性=主窗體中的變量即可(Flood中的poiname);

popup與mxml互動用paraobj;

模塊調用主程序方法:

在moduels文件夾下 建立模塊 callAppModule.mxml
<?xml version="1.0" encoding="utf-8"?>
<mx:Module xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical" width="400" height="300">
<mx:Script>
<![CDATA[
    import mx.core.Application;
    //使用parentApplication調用父級函數;
    private function callParentAppFn():void{
    var str:String = this.parentApplication.sayHello("parent");
    tips1.text = str;
    }
    //利用Application.application調用頂級容器函數;
    private function callAppFn():void{
        var str:String = Application.application.sayHello("app");
        tips2.text = str;
    }
]]>
</mx:Script>
    <mx:Button label="利用parentApp" click="callParentAppFn()" />
    <mx:TextInput id="tips1" width="200" />
    <mx:Button label="利用App" click="callAppFn()" />
    <mx:TextInput id="tips2" width="200" />
</mx:Module>

///////////////主程序
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical" creationComplete="init()">
<mx:Script>
<![CDATA[
    import moduels.CallAppModule;
    import mx.modules.Module;
    import mx.controls.Alert;
    import mx.events.ModuleEvent;
    import mx.modules.ModuleLoader;
    private var ml:ModuleLoader;
    private function init():void{
        ml = new ModuleLoader();
        ml.url = "moduels/CallAppModule.swf";
        ml.addEventListener(ModuleEvent.READY, onReady);
        ml.loadModule();
    }
    private function onReady(e:ModuleEvent):void{
        var m:CallAppModule = ml.child as CallAppModule;//沒有這個就加載不進來模塊,不知道爲什麼;
        this.addChild(ml);
    }
    public function sayHello(s:String):String{
        return "Hello Modules 來自" + s;
    }
]]>
</mx:Script>
</mx:Application>


module通過父模塊調另一模塊的方法:

var module:Object=parentApplication.mod_main.child as Object;//指向MoStreet模塊
     module.mod_main.url="modules/MoStUpload.swf";
     
     setTimeout(deferredMethod, 100);
     function deferredMethod():void
     {
      var module0:Object=module.mod_main.child as Object;//實例化mod_main的child,即指向mostupload;
      if(tbb.selectedIndex==0)
      {
       module0.tabNavigator.selectedIndex=0;
       module0.intMsgWarnRecent=yuxinInt;
      }
      else
      {
       module0.tabNavigator.selectedIndex=1;
       module0.intMsgInfoRecent=yuxinInt;
      }
     }


















發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章