Flex 不同 application 之间传参数(转)

本文介绍了一种在Flex应用程序中实现主模块与子模块间通信的方法。通过使用SystemManager对象注册子模块,使各子模块能够相互调用对方的功能。具体实现包括了如何在主模块中获取所有子模块的SystemManager,并将它们互相传递。
摘要由CSDN通过智能技术生成

由薛公子在 http://www.flexcoders.cn/showtopic-1227.aspx### 上提供

通过主影片来获得所有子影片的systemmanager,然后分别传递给各个子影片。子影片通过各自的systemmanager来调用别的影片。

 

 

子模块

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
    <mx:Script>
        <![CDATA[
            import mx.managers.SystemManager;
            public function output(s:String):void{
                trace(s);
            }
            
            public function CallFriend():void{
                SampleChildren(_SystemManager.application).output("call...");
            }
            
            private var _SystemManager:SystemManager;
            
            public function register(ASystemManager:SystemManager):void{
                _SystemManager=ASystemManager;
            }
                
        ]]>
    </mx:Script>
</mx:Application>

主模块

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical">
    <mx:Script>
        <![CDATA[
            import mx.managers.SystemManager;
            
            var Children1,Children2:SystemManager;
            
            private function onClick(e:Event):void{
                SampleChildren(Children1.application).register(Children2);
                SampleChildren(Children2.application).register(Children1);
            }
            
            private function initNestedAppProps():void {
                Children1 = SystemManager(myLoader.content);
                trace(Children1.application);
            }
            private function initNestedAppProps2():void {
                Children2 = SystemManager(myLoader2.content);
                trace(Children2.application);
            }
            
            private function onC1(e:Event):void{
                SampleChildren(Children1.application).CallFriend();
            }  
            private function onC2(e:Event):void{
                SampleChildren(Children2.application).CallFriend();
            }              
            
        ]]>
    </mx:Script>
    <mx:Button label="ClickMe" click="onClick(event);"/>
    
    <mx:Button label="c1 call c2" click="onC1(event);"/>
    <mx:Button label="c2 call c1" click="onC2(event);"/>
    
    <mx:SWFLoader id="myLoader" width="300"
        source="SampleChildren.swf"
        creationComplete="initNestedAppProps();"/>
    <mx:SWFLoader id="myLoader2" width="300"
        source="SampleChildren.swf"
        creationComplete="initNestedAppProps2();"/>    
</mx:Application>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值