方法详细信息:
来源于:flash.events.EventDispatcher类
addEventListener () 方法
public function addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
语言版本 : ActionScript 3.0
RuntimeVersions: AIR 1.0, Flash Player 9
使用 EventDispatcher 对象注册事件侦听器对象,以使侦听器能够接收事件通知。可以为特定类型的事件、阶段和优先级在显示列表的所有节点上注册事件侦听器。
成功注册一个事件侦听器后,无法通过额外调用 addEventListener() 来更改其优先级。要更改侦听器的优先级,必须首先调用 removeListener()。然后,可以使用新的优先级再次注册该侦听器。
请记住,注册该侦听器后,如果继续调用具有不同 type 或 useCapture 值的 addEventListener(),则会创建单独的侦听器注册。例如,如果首先注册 useCapture 设置为 true 的侦听器,则该侦听器只在捕获阶段进行侦听。如果使用同一个侦听器对象再次调用 addEventListener(),并将 useCapture 设置为 false,那么便会拥有两个单独的侦听器:一个在捕获阶段进行侦听,另一个在目标和冒泡阶段进行侦听。
不能只为目标阶段或冒泡阶段注册事件侦听器。这些阶段在注册期间是成对出现的,因为冒泡阶段只适用于目标节点的始祖。
如果不再需要某个事件侦听器,可调用 removeEventListener() 删除它,否则会产生内存问题。由于垃圾回收器不会删除仍包含引用的对象,因此不会从内存中自动删除使用已注册事件侦听器的对象。
复制 EventDispatcher 实例时并不复制其中附加的事件侦听器。(如果新近创建的节点需要一个事件侦听器,必须在创建该节点后附加该侦听器。) 但是,如果移动 EventDispatcher 实例,则其中附加的事件侦听器也会随之移动。
如果在正在处理事件的节点上注册事件侦听器,则不会在当前阶段触发事件侦听器,但会在事件流的稍后阶段触发,如冒泡阶段。
如果从正在处理事件的节点中删除事件侦听器,则该事件侦听器仍由当前操作触发。删除事件侦听器后,决不会再次调用该事件侦听器(除非再次注册以备将来处理)。
参数分析:
1、type:String — 事件的类型。
2、listener:Function — 处理事件的侦听器函数。
此函数必须接受 Event 对象作为其唯一的参数,并且不能返回任何结果,如下面的示例所示:
function(evt:Event):void{}。函数可以有任何名称。
3、useCapture:Boolean (default = false) — 确定侦听器是运行于捕获阶段、目标阶段还是冒泡阶段。
如果将 useCapture 设置为 true,则侦听器只在捕获阶段处理事件,而不在目标或冒泡阶段处理事件。
如果将 useCapture 设置为 false,则侦听器只在目标或冒泡阶段处理事件。要在所有三个阶段都侦听事件,请调用 addEventListener 两次:一次将 useCapture 设置为 true,一次将 useCapture 设置为 false.
4、priority:int (default = 0) — 事件侦听器的优先级。
优先级由一个带符号的 32 位整数指定。数字越大,优先级越高。优先级为 n 的所有侦听器会在优先级为 n -1 的侦听器之前得到处理。如果两个或更多个侦听器共享相同的优先级,则按照它们的添加顺序进行处理。默认优先级为 0。
5、useWeakReference:Boolean (default = false) — (是否为弱引用)确定对侦听器的引用是强引用,还是弱引用。
强引用(默认值)可防止您的侦听器被当作垃圾回收。弱引用则没有此作用。
类级别成员函数不属于垃圾回收的对象,因此可以对类级别成员函数将 useWeakReference 设置为 true 而不会使它们受垃圾回收的影响。如果对作为嵌套内部函数的侦听器将 useWeakReference 设置为 true,则该函数将作为垃圾回收并且不再是永久函数。如果创建对该内部函数的引用(将该函数保存到另一个变量中),则该函数将不作为垃圾回收并仍将保持永久。
引发 ArgumentError — 指定的 listener 不是一个函数。
分享到:
相关推荐
mainMenu.addEventListener(Event.SELECT, handleSelect); function handleSelect(event:Event):void { var item:MenuItem = event.target as MenuItem; trace("Selected menu item: " + item.label); // 处理...
Flex是一种强大的富互联网应用程序(RIA)开发框架,主要用于创建交互式的、动态的用户界面。在Flex中,可以利用各种技术来实现与数据库的交互,包括操作本地SQL数据库。本篇文章将详细探讨Flex如何操作数据库,特别...
例如,当用户点击按钮时触发果冻特效,这就需要用到addEventListener方法。 7. **容器和组件**:在Flex中,组件可以通过容器进行组织和管理。在实现果冻特效时,可能需要对容器或其中的组件应用特效,如将一个Panel...
在本文中,我们将深入探讨如何使用Flex布局来实现图片的放大和缩小功能。Flex布局,全称为Flexible Box,是CSS3中的一个布局模型,旨在提供更灵活、响应式的网页设计解决方案。通过理解Flex布局的基本原理,我们可以...
事件可以分为鼠标事件、键盘事件、组件事件等多种类型,通过addEventListener和removeEventListener方法来监听和处理事件。 七、Services与数据访问 Flex提供了一系列服务组件,如HTTPService、WebService、...
employeeService.addEventListener(ResultEvent.RESULT, onEmployeesRetrieved); employeeService.send(); private function onEmployeesRetrieved(event:ResultEvent):void { var employees:ArrayCollection = ...
Flex3是一种基于ActionScript 3.0的开源框架,用于构建富互联网应用程序(RIA),它提供了强大的图形和用户界面设计工具,以及丰富的编程模型。在本示例中,我们将探讨如何利用Flex3进行Socket编程,以创建一个实时...
在本文中,我们将深入探讨如何使用Flex来实现一个图片旋转效果,这在产品展示或交互式界面设计中非常常见。Flex是一种强大的、基于XML的框架,用于构建富互联网应用程序(RIA),尤其适用于创建动态、响应式的用户...
btn.addEventListener(MouseEvent.CLICK, onButtonClick); function onButtonClick(event:MouseEvent):void { // 处理点击事件的代码 } ``` - **编写ActionScript和MXML代码**:MXML文件可以包含ActionScript...
Flex Socket开发总结 在开发基于Flex的应用程序时,与服务器进行实时通信是常见的需求,而Socket接口提供了这种能力。本文将深入探讨Flex中Socket开发的关键知识点,包括如何连接到Java和C++的Server Socket,以及...
ActionScript中的addEventListener方法用于添加事件监听器,handleEvent方法处理具体事件。 3. **数据绑定**:Flex支持双向数据绑定,允许UI组件的状态与应用程序数据模型保持同步。这在更新游戏状态和反馈用户操作...
button.addEventListener(MouseEvent.CLICK, onButtonClick); function onButtonClick(event:MouseEvent):void { ExternalInterface.call("flexHandleClick"); } ``` 在Flex端,我们需要注册一个对应的函数来接收...
例如,一个模块可以通过`.dispatchEvent()`方法发布事件,并在其他模块中使用`addEventListener()`方法监听该事件,从而触发相应的处理函数。 2. **公共接口和单例模式**:创建一个公共接口或单例类,模块可以通过...
在本文中,我们将深入探讨如何在Flex环境中实现拖放(Drag & Drop)功能,这是一个非常实用的用户交互设计。Flex是一种基于ActionScript和MXML的开源框架,用于构建富互联网应用程序(RIA)。拖放功能在Flex应用中...
myButton.addEventListener(MouseEvent.CLICK, buttonClicked); function buttonClicked(event:MouseEvent):void { trace("按钮被点击了"); } ``` 4. **将按钮添加到舞台**:最后,将按钮添加到应用程序的显示列表...
需要理解Event和MouseEvent类,以及addEventListener、removeEventListener方法的使用。 5. 样式表与皮肤:Flex支持使用CSS样式表来定制组件的外观。模拟Mac效果可能需要使用特定的字体、颜色、边框和阴影等,这些...
ActionScript中的addEventListener方法用于添加事件监听器,dispatchEvent方法用于触发事件。 4. **数据绑定** Flex支持数据绑定机制,允许UI元素的状态与模型数据之间自动保持同步。在计算器应用中,可能将运算...
在本文中,我们将深入探讨如何在Flex应用中实现右键点击功能,并且结合"flex-right-click.rar_flex_flex right"这一标题,我们可以推断这是一个关于在Flex项目中添加右键菜单并支持增删操作的示例。Flex是一种基于...
### Flex与Java软件开发速成篇 #### 一、引言 随着技术的发展,跨平台的应用程序变得越来越重要。在众多的技术栈中,Flex+Java的组合为开发者提供了强大的工具集,尤其适用于企业级应用的快速开发。本文将详细介绍...