一、了解观察者模式

  • 什么是观察者模式?
  • 生活中的观察者模式(好莱坞原则、订阅报纸、房产中介…)
  • AS3中事件例子: 如下监听click事件,一发生就调用onClick()函数
  • button.addEventListener(click,onClick);
  • internal function onClick(evt:MouseEvent):void{

    txt.text=click a button!;

    }

  • 了解下图:

flex 事件学习

 

 

 

二、事件流

 

1.捕获事件(从根节点到子节点,检测对象是否注册了监听器,是则调用监听函数) 2.目标阶段(调用目标对象本身注册的监听程序) 3.冒泡阶段(从目标节点到根节点,检测对象是否注册了监听器,是则调用监听函数)注:事件发生后,每个节点可以有2个机会(21)响应事件,默认关闭捕获阶段。可以参考例子EventDemo2

 

 

IEventDispatcher接口

addEventListener( ) 注册事件监听器

removeEventListener( ) 移除事件监听器

dispatchEvent( ) 派发事件,从一个时间引发另一个事件较多。

EventDispatcher类,见参考手册

 

 

addEventListener

addEvnetListener(type:String,listener:Function,useCapture:Boolean=false,priority:int=0,useWeakReference:Boolean=false)

 

removeEventListener(type:String,listener:Function,useCapture:Boolean=false)

 

 

三、Event对象

Event 类作为创建 Event 对象的基类,当发生事件时,Event 对象将作为参数传递给事件侦听器。

MouseEvent

KeyboardEvent

查参考手册ActionScript3.0中文版.chm

 

 

四、如何自定义事件

1.创建自定义事件名称的Event

参考例子EventDemo3

 dispatchEvent(new Event(“myEvnet”,true,false);

 

2.创建自定义事件类

 Public class MyEvent extends Event{

 ….

}

 

例:拖曳事件的实现

DragManager(mx.managers)

DragSource

DragEvent

见参考手册和实DragExample_1

 

 

 

 

 

 

 

 

 

 

相关文章: