Flex Load一个SWF后主程序与子程序通讯问题


在主程序中用SWFLoader载入了一个SWF子程序,如何实现两个程序间的参数传递与方法调用?
共用一个单例对象进行事件派发,通过事件传递参数
首先,你得有一个单例的事件派发器:
  1. package 
  2. {
  3.         import flash.events.EventDispatcher;
  4.         
  5.         public class Dispatcher extends EventDispatcher
  6.         {
  7.                 private static var instance:Dispatcher;
  8.                 
  9.                 public static function getInstance():Dispatcher 
  10.                 {
  11.                         if (instance == null)
  12.                         {
  13.                                 instance = new Dispatcher();
  14.                         }
  15.                         return instance;
  16.                 }
  17.         }
  18. }
复制代码
然后,写自定义事件:
  1. package  
  2. {
  3.         import flash.events.Event;

  4.         public class MyEvent extends Event
  5.         {
  6.                 public static const TEST_EVENT:String = "test.event";
  7.                 
  8.                 public var data:*;
  9.                 
  10.                 public function MyEvent(eventType:String, data:* = null) 
  11.                 {
  12.                         super(eventType);
  13.                         this.data = data;
  14.                 }
  15.         }
  16. }
复制代码
单例派发器通过getInstance()函数获得:
  1. var dispatcher:Dispatcher = Dispatcher. getInstance();
复制代码
子模块通过dispatcher派发事件:
  1. dispatcher.dispatchEvent(new MyEvent(MyEvent.TEST_EVENT, "test"));
复制代码
主模块通过dispatcher监听事件:
  1. dispatcher.addEventListener(MyEvent.TEST_EVENT, getEventHandler);

  2. function getEventHandler(e:MyEvent):void
  3. {
  4.         trace(e.data);
  5. }
复制代码
同样子模块里面也可以这样监听来自主模块的事件

posted on 2010-11-19 10:28 aiaiwoo 阅读(428) 评论(0)  编辑  收藏 所属分类: AC3/FLEX


只有注册用户登录后才能发表评论。


网站导航:
 
<2024年4月>
31123456
78910111213
14151617181920
21222324252627
2829301234
567891011

导航

统计

常用链接

留言簿

随笔分类

文章分类

文章档案

搜索

最新评论

阅读排行榜

评论排行榜