处理显示对象的事件
Flash Player 9 和更高版本,Adobe AIR 1.0 和更高版本
DisplayObject 类从 EventDispatcher 类继承。这意味着,每个显示对象都可完全参与到事件模型中(在
处理事件
中介绍)。每个显示对象都可使用其
addEventListener()
方法(继承自 EventDispatcher 类)来侦听特定的事件,但仅当侦听对象是该事件的事件流的一部分时才能实现此功能。
当 Flash Player 或 AIR 调度某个事件对象时,该事件对象会执行从舞台到发生事件的显示对象的往返行程。例如,如果用户单击名为
child1
的显示对象,Flash Player 会沿显示列表层次将事件对象从舞台向下调度到
child1
显示对象。
从概念上说,事件流分为三个阶段,如下图所示:
有关详细信息,请参阅
处理事件
。
使用显示对象事件时需要记住的一个重要问题是:从显示列表中删除显示对象时,事件侦听器的存在将会对是否从内存中自动删除显示对象(垃圾回收)产生影响。如果显示对象拥有订阅为其事件的侦听器的对象,即使从显示列表中删除了显示对象,也不会从内存中删除显示对象,因为显示对象仍然拥有对这些侦听器对象的引用。有关详细信息,请参阅
管理事件侦听器
。
|
|
|