addEventListener函数解析
2013-07-02 09:43
162 查看
addEventListener () 方法
public override function addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean
= false):void语言版本 : ActionScript 3.0
Player 版本 : Flash Player 9使用 EventDispatcher 对象注册事件侦听器对象,以使侦听器能够接收事件通知。 可以为特定类型的事件、阶段和优先级在显示列表的所有节点上注册事件侦听器。
成功注册一个事件侦听器后,无法通过额外调用 addEventListener() 来更改其优先级。 要更改侦听器的优先级,必须首先调用removeListener()。 然后,可以使用新的优先级再次注册该侦听器。
请记住,注册该侦听器后,如果继续调用具有不同 type 或 useCapture 值的 addEventListener(),则会创建单独的侦听器注册。 例如,如果首先注册useCapture 设置为true 的侦听器,则该侦听器只在捕获阶段进行侦听。 如果使用同一个侦听器对象再次调用addEventListener(),并将useCapture
设置为 false,那么便会拥有两个单独的侦听器:一个在捕获阶段进行侦听,另一个在目标和冒泡阶段进行侦听。
不能只为目标阶段或冒泡阶段注册事件侦听器。 这些阶段在注册期间是成对出现的,因为冒泡阶段只适用于目标节点的始祖。
如果不再需要某个事件侦听器,可调用 removeEventListener() 删除它,否则会产生内存问题。 由于垃圾回收器不会删除仍包含引用的对象,因此不会从内存中自动删除使用已注册事件侦听器的对象。
复制 EventDispatcher 实例时并不复制其中附加的事件侦听器。 (如果新近创建的节点需要一个事件侦听器,必须在创建该节点后附加该侦听器)。 但是,如果移动 EventDispatcher 实例,则其中附加的事件侦听器也会随之移动。
如果在正在处理事件的节点上注册事件侦听器,则不会在当前阶段触发事件侦听器,但会在事件流的稍后阶段触发,如冒泡阶段。
如果从正在处理事件的节点中删除事件侦听器,则该事件侦听器仍由当前操作触发。 删除事件侦听器后,决不会再次调用该事件侦听器(除非再次注册以备将来处理)。参数
type:String — 事件的类型。
listener:Function — 处理事件的侦听器函数。 此函数必须接受 Event 对象作为其唯一的参数,并且不能返回任何结果,如以下示例所示:
function(evt:Event):void
函数可以有任何名称。
useCapture:Boolean (default =false) — 确定侦听器是运行于捕获阶段、目标阶段还是冒泡阶段。如果将 useCapture 设置为true,则侦听器只在捕获阶段处理事件,而不在目标或冒泡阶段处理事件。 如果useCapture 为 false,则侦听器只在目标或冒泡阶段处理事件。
要在所有三个阶段都侦听事件,请调用两次addEventListener,一次将useCapture 设置为 true,第二次再将useCapture 设置为 false。
priority:int (default =0) — 事件侦听器的优先级。 优先级由一个带符号的 32 位整数指定。数字越大,优先级越高。 优先级为n 的所有侦听器会在优先级为 n -1 的侦听器之前得到处理。 如果两个或更多个侦听器共享相同的优先级,则按照它们的添加顺序进行处理。 默认优先级为
0。
useWeakReference:Boolean (default =false) — 确定对侦听器的引用是强引用,还是弱引用。 强引用(默认值)可防止您的侦听器被当作垃圾回收。 弱引用则没有此作用。
类级别成员函数不属于垃圾回收的对象,因此可以对类级别成员函数将 useWeakReference 设置为true 而不会使它们受垃圾回收的影响。 如果对作为嵌套内部函数的侦听器将useWeakReference 设置为true,则该函数将被作为垃圾回收并且不再是永久函数。 如果创建对该内部函数的引用(将该函数保存到另一个变量中),则该函数将不作为垃圾回收并仍将保持永久。
引发SecurityError — 调用 Stage 对象的addEventListener 方法会因任何调用方没有与 Stage 所有者(主 SWF 文件)位于同一个安全沙箱而引发异常。 为避免出现这种情况,Stage 所有者可以通过调用Security.allowDomain() 方法或Security.allowInsecureDomain()
方法来向域的调用方授予权限。 有关详细信息,请参阅《ActionScript 3.0 编程》中的“安全性”一章。
public override function addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean
= false):void语言版本 : ActionScript 3.0
Player 版本 : Flash Player 9使用 EventDispatcher 对象注册事件侦听器对象,以使侦听器能够接收事件通知。 可以为特定类型的事件、阶段和优先级在显示列表的所有节点上注册事件侦听器。
成功注册一个事件侦听器后,无法通过额外调用 addEventListener() 来更改其优先级。 要更改侦听器的优先级,必须首先调用removeListener()。 然后,可以使用新的优先级再次注册该侦听器。
请记住,注册该侦听器后,如果继续调用具有不同 type 或 useCapture 值的 addEventListener(),则会创建单独的侦听器注册。 例如,如果首先注册useCapture 设置为true 的侦听器,则该侦听器只在捕获阶段进行侦听。 如果使用同一个侦听器对象再次调用addEventListener(),并将useCapture
设置为 false,那么便会拥有两个单独的侦听器:一个在捕获阶段进行侦听,另一个在目标和冒泡阶段进行侦听。
不能只为目标阶段或冒泡阶段注册事件侦听器。 这些阶段在注册期间是成对出现的,因为冒泡阶段只适用于目标节点的始祖。
如果不再需要某个事件侦听器,可调用 removeEventListener() 删除它,否则会产生内存问题。 由于垃圾回收器不会删除仍包含引用的对象,因此不会从内存中自动删除使用已注册事件侦听器的对象。
复制 EventDispatcher 实例时并不复制其中附加的事件侦听器。 (如果新近创建的节点需要一个事件侦听器,必须在创建该节点后附加该侦听器)。 但是,如果移动 EventDispatcher 实例,则其中附加的事件侦听器也会随之移动。
如果在正在处理事件的节点上注册事件侦听器,则不会在当前阶段触发事件侦听器,但会在事件流的稍后阶段触发,如冒泡阶段。
如果从正在处理事件的节点中删除事件侦听器,则该事件侦听器仍由当前操作触发。 删除事件侦听器后,决不会再次调用该事件侦听器(除非再次注册以备将来处理)。参数
type:String — 事件的类型。
listener:Function — 处理事件的侦听器函数。 此函数必须接受 Event 对象作为其唯一的参数,并且不能返回任何结果,如以下示例所示:
function(evt:Event):void
函数可以有任何名称。
useCapture:Boolean (default =false) — 确定侦听器是运行于捕获阶段、目标阶段还是冒泡阶段。如果将 useCapture 设置为true,则侦听器只在捕获阶段处理事件,而不在目标或冒泡阶段处理事件。 如果useCapture 为 false,则侦听器只在目标或冒泡阶段处理事件。
要在所有三个阶段都侦听事件,请调用两次addEventListener,一次将useCapture 设置为 true,第二次再将useCapture 设置为 false。
priority:int (default =0) — 事件侦听器的优先级。 优先级由一个带符号的 32 位整数指定。数字越大,优先级越高。 优先级为n 的所有侦听器会在优先级为 n -1 的侦听器之前得到处理。 如果两个或更多个侦听器共享相同的优先级,则按照它们的添加顺序进行处理。 默认优先级为
0。
useWeakReference:Boolean (default =false) — 确定对侦听器的引用是强引用,还是弱引用。 强引用(默认值)可防止您的侦听器被当作垃圾回收。 弱引用则没有此作用。
类级别成员函数不属于垃圾回收的对象,因此可以对类级别成员函数将 useWeakReference 设置为true 而不会使它们受垃圾回收的影响。 如果对作为嵌套内部函数的侦听器将useWeakReference 设置为true,则该函数将被作为垃圾回收并且不再是永久函数。 如果创建对该内部函数的引用(将该函数保存到另一个变量中),则该函数将不作为垃圾回收并仍将保持永久。
引发SecurityError — 调用 Stage 对象的addEventListener 方法会因任何调用方没有与 Stage 所有者(主 SWF 文件)位于同一个安全沙箱而引发异常。 为避免出现这种情况,Stage 所有者可以通过调用Security.allowDomain() 方法或Security.allowInsecureDomain()
方法来向域的调用方授予权限。 有关详细信息,请参阅《ActionScript 3.0 编程》中的“安全性”一章。
相关文章推荐
- python sorted()函数解析
- exec()函数族实例解析
- printf函数解析
- error LNK2019: 无法解析的外部符号 "void __cdecl QTest::qSleep(int)",该符号在函数 "void __cdecl QTest::qWait(int)"中被
- object c 多参数函数解析
- 无法解析的外部符号 _main,该符号在函数 ___tmainCRTStartup 中被引用
- 必须正确理解的---ng指令中的compile与link函数解析
- 一个解析RTSP 的URL函数
- 深入解析scanf()/getchar()和gets()等函数
- TensorFlow教程——常用函数解析
- error LNK2019: 无法解析的外部符号 该符号在函数 中【转】http://blog.sina.com.cn/s/blog_51890fea0100l41h.html
- 静态成员函数解析
- MapReduce中Mapper类和Reducer类4函数解析
- snprintf函数的用法解析
- 15.11重载解析与成员函数
- error LNK2019: 无法解析的外部符号 __imp_GetUserObjectInformationW,该符号在函数 OPENSSL_isservice 中被引用
- 全面解析JS字符串和正则表达式中的match、replace、exec等函数
- 实例解析jQuery工具函数
- JS入门难点解析2-JS的变量提升和函数提升
- php中解析带中文字符的url函数分享