swf之间的交互(上)全局变量VS全局派发事件
2011-04-12 22:14
183 查看
1全局变量:
通过定义一个全局的类里面定义静态变量用来存储swf1中要传给swf2的参数值,swf2通过读取静态变量中的值来获取swf1中传过来的值。。。。。。。这个很好理解就不多说了。
2全局派发(以一个demo来说明)
----自定义一个事件(注意继承自Event)给他一个私有变量用来存储传递的参数(当然根据情况可以多个)
....创建一个全局派发类继承自EventDispatcher(使用单例模式提高效率,便于管理)
...实现
swf1:left.swf
swf2:right.swf
主工程
待续。。。。。。。。。。。。。。。。。
通过定义一个全局的类里面定义静态变量用来存储swf1中要传给swf2的参数值,swf2通过读取静态变量中的值来获取swf1中传过来的值。。。。。。。这个很好理解就不多说了。
2全局派发(以一个demo来说明)
----自定义一个事件(注意继承自Event)给他一个私有变量用来存储传递的参数(当然根据情况可以多个)
package event { import flash.events.Event; public class MessageEvent extends Event { private var msg:String; public function MessageEvent(msg:String,type:String, bubbles:Boolean=false, cancelable:Boolean=false) { super(type, bubbles, cancelable); this.msg=msg; } public function getmessage():String { return msg; } } }
....创建一个全局派发类继承自EventDispatcher(使用单例模式提高效率,便于管理)
package event { import flash.events.EventDispatcher; import flash.events.IEventDispatcher; public class MessageDispatch extends EventDispatcher { private static var instance:MessageDispatch; public function MessageDispatch(target:IEventDispatcher=null) { super(target); } public static function getInstance():MessageDispatch { if(instance==null) { instance=new MessageDispatch(); } return instance; } public var msg:String } }
...实现
swf1:left.swf
<?xml version="1.0" encoding="utf-8"?> <s:Panel xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library://ns.adobe.com/flex/mx" height="300" width="300"> <s:layout> <s:BasicLayout/> </s:layout> <fx:Script> <![CDATA[ import event.MessageDispatch; import event.MessageEvent; protected function button1_clickHandler(event:MouseEvent):void { MessageDispatch.getInstance().dispatchEvent(new MessageEvent(t.text,"sent")); MessageDispatch.getInstance().msg=t.text; } ]]> </fx:Script> <fx:Declarations> <!-- 将非可视元素(例如服务、值对象)放在此处 --> </fx:Declarations> <s:TextArea x="10" y="10" width="277" height="218" id="t"/> <s:Button x="218" y="236" label="按钮" click="button1_clickHandler(event)"/> </s:Panel>
swf2:right.swf
<?xml version="1.0" encoding="utf-8"?> <s:Panel xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library://ns.adobe.com/flex/mx" creationComplete="panel1_creationCompleteHandler(event)" height="300" width="300"> <s:layout> <s:BasicLayout/> </s:layout> <fx:Script> <![CDATA[ import event.MessageDispatch; import event.MessageEvent; import mx.events.FlexEvent; protected function panel1_creationCompleteHandler(event:FlexEvent):void { MessageDispatch.getInstance().addEventListener("send",setMsg); } private function setMsg(e:MessageEvent):void { txt.text=e.getmessage(); } ]]> </fx:Script> <fx:Declarations> <!-- 将非可视元素(例如服务、值对象)放在此处 --> </fx:Declarations> <s:TextArea x="10" y="10" width="278" height="247" id="txt"/> </s:Panel>
主工程
<?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" xmlns:local="*"> <fx:Declarations> <!-- 将非可视元素(例如服务、值对象)放在此处 --> </fx:Declarations> <local:left x="0" y="1" height="300"> </local:left> <local:right x="308" y="-1"> </local:right> </s:Application>
待续。。。。。。。。。。。。。。。。。
相关文章推荐
- Solution(VS)下多工程之间共享全局变量失效问题
- 关于百度EChart 与dataTables 之间交互问题的解决方案(利用js全局变量)
- PHP 全局变量(Global Scope Variable) vs 局部变量(Local Scope Variable)
- Cocos2d-x的SpiderMonkey的JavaScript与C++的交互(二) - 单个全局变量操作
- 服务器和客户端之间的变量交互
- jquery事件委托的回调函数中调用全局变量的简单方法
- C++ static ,extern以及全局变量之间的相关逻辑
- Android入门篇四:使用全局变量在Activity之间传递数据
- View之间方法,变量交互(Delegate方式)
- jquery 异步事件 (使用异步事件 改变页面全局变量问题)
- 饿了么项目---12、父子组件、兄弟组件之间数据通信与事件派发(关于购物车添加按钮的动画)
- iOS开发 - Objective-C语言 | 局部变量、全局变量和成员变量之间的区别
- jquery事件委托的回调函数中调用全局变量的简单方法
- Python 进程之间共享数据(全局变量)
- 全局变量 vs 局部变量
- AngularJS:全局变量设置之value vs constant vs rootscope vs 服务
- 通过Javascript code modules在XUL文件之间使用全局变量
- jquery事件委托的回调函数中调用全局变量的简单方法
- cjson 融合lua,暴露全局变量,vs编译
- 关于Unity的委托事件处理脚本之间的交互