《Flex 3 基础教程(3).ppt》由会员分享,可在线阅读,更多相关《Flex 3 基础教程(3).ppt(9页珍藏版)》请在金锄头文库上搜索。
1、Flex 3 基础教程(3) Flex 3事件机制,郑岩峰 2008-5-21,观察者模式(Observer),什么是观察者模式? 生活中的观察者模式(好莱坞原则、订阅报纸、房产中介) AS3中事件例子: button.addEventListener(“click”,onClick); internal function onClick(evt:MouseEvent):void txt.text=“click a button!”; ,事件机制类继承图,UIComponent,事件流,1.捕获事件(从根节点到子节点,检测对象是否注册了监听器,是则调用监听函数) 2.目标阶段(调用目标对象本身
2、注册的监听程序) 3.冒泡阶段(从目标节点到根节点,检测对象是否注册了监听器,是则调用监听函数) 注:事件发生后,每个节点可以有2个机会(2选1)响应事件,默认关闭捕获阶段。,IEventDispatcher接口,addEventListener( ) 注册事件监听器 removeEventListener( ) 移除事件监听器 dispatchEvent( ) 派发事件 EventDispatcher类,见参考手册,addEventListener,addEvnetListener(type:String,listener:Function,useCapture:Boolean=false,
3、priority:int=0,useWeakReference:Boolean=false) removeEventListener(type:String,listener:Function,useCapture:Boolean=false),Event对象,Event 类作为创建 Event 对象的基类,当发生事件时,Event 对象将作为参数传递给事件侦听器。 MouseEvent KeyboardEvent 查参考手册,如何自定义事件,1.创建自定义事件名称的Event dispatchEvent(new Event(“myEvnet”,true,false); 2.创建自定义事件类 Public class MyEvent extends Event . ,拖曳事件的实现,DragManager(mx.managers) DragSource DragEvent 见参考手册和实例,