Flex 主程序、模块、PopUp调用初探

来源:互联网 发布:蓝凌软件股份有限公司 编辑:程序博客网 时间:2024/06/03 09:48
主程序调用以它为父的模块的函数或属性:
import modules.Mo1Home;
private var mo1:Mo1Home=new Mo1Home();

模块调用主程序中的方法或属性:
var str:String=this.parentApplication.menuBarItemId;
在主窗体实例化模块后调用属性=主窗体中的变量即可(Flood中的poiname);

popup与mxml互动用paraobj;

模块调用主程序方法:
Flex <wbr>模块 <wbr>主程序调用模块方法和模块调用主程序方法
在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;
      }
     }


















0 0