flex加载module并相互之间通信
发布时间:2020-12-15 04:19:59 所属栏目:百科 来源:网络整理
导读:1、module_1的代码: ?xml version="1.0" encoding="utf-8"?mx:Module xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library://ns.adobe.com/flex/mx" layout="absolute" width="400" height="300"fx:D
1、module_1的代码: <?xml version="1.0" encoding="utf-8"?> <mx:Module xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library://ns.adobe.com/flex/mx" layout="absolute" width="400" height="300"> <fx:Declarations> <!-- 将非可视元素(例如服务、值对象)放在此处 --> </fx:Declarations> <fx:Script> <![CDATA[ public function getData():String { return "Module数据"; } ]]> </fx:Script> <s:Label x="86" y="74" text="module1" width="242" height="87" fontSize="36" id="lbl1"/> </mx:Module> 2、module_2的代码: <?xml version="1.0" encoding="utf-8"?> <mx:Module xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library://ns.adobe.com/flex/mx" layout="absolute" width="400" height="300"> <fx:Declarations> <!-- 将非可视元素(例如服务、值对象)放在此处 --> </fx:Declarations> <fx:Script> <![CDATA[ private function changeData():void { // label1.text=parentApplication.m1.child.getData();//module之间不能相互通信,只能通过主程序当中间 label1.text=parentApplication.m1.child.lbl1.text; } ]]> </fx:Script> <s:Button x="232" y="179" label="m2的按钮" width="112" height="47" click="changeData()"/> <s:Label x="18" y="228" text="m2标签调用m1的数据" width="332" height="65" fontSize="33" id="label1"/> </mx:Module> 一、静态加载Module并相互通信<?xml version="1.0" encoding="utf-8"?> <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600"> <fx:Script> <![CDATA[ protected function button1_clickHandler(event:MouseEvent):void { // label1.text=(m1.child as module_1).getData(); // label1.text=(m1.child as module_1).lbl1.text; var module:Object=m1.child as Object; // label1.text=module.getChildByName("lbl1").text; label1.text=module.lbl1.text; } protected function button2_clickHandler(event:MouseEvent):void { var module:Object=m1.child as Object; module.x=(Math.random()*20).toString(); module.y=(Math.random()*20).toString(); module.lbl1.text="哈哈"; } ]]> </fx:Script> <s:layout> <s:BasicLayout/> </s:layout> <fx:Declarations> <!-- 将非可视元素(例如服务、值对象)放在此处 --> </fx:Declarations> <mx:ModuleLoader id="m1" url="module_1.swf"></mx:ModuleLoader> <mx:ModuleLoader id="m2" url="module_2.swf"></mx:ModuleLoader> <s:Label x="567" y="484" text="调用m1的数据" width="269" height="53" fontSize="35" id="label1"/> <s:Button x="573" y="524" label="按钮" width="105" height="38" click="button1_clickHandler(event)"/> <s:Button x="67" y="540" label="按钮" width="181" height="58" click="button2_clickHandler(event)"/> </s:Application>
|