Flex事件传播路径:Flex事件传播分为三个阶段:捕获、目标、冒泡
<application> <panel id=”panel1”> <hgroup> <button id=”btn”/> </hgroup> </panel> <panel panel=”panel2”> </panel> </application>
例如:点击panle1中组建button触发click事件执行流程:
捕获:最外层组件application检测自身是否定义了click事件的监听,如果定义了监听则执行监听函数,如果没有定义监听函数,则什么都不做;继续向内部容器传播事件,内部容器同样检查是否定义了监听函数,如果定义了监听函数则相应事件;事件由application容器一级一级的传播到hgroup容器,捕获阶段结束;
目标:事件的派发容器检测自身是否有定义相应函数,如果定义则执行;
冒泡:捕获的反过程。
捕获事件传播的路径:顶层容器->……->组件的父容器->派发事件对象的组件的兄弟组件;
目标组件传播路径:派发事件对象的组件
冒泡阶段传播路径:组件的父容器->……->顶层容器
注:由事件的传播路径可知:派发事件对象的组件父容器的兄弟容器检测不到其派发的事件。
阻止事件执行:在事件的执行过程中,可以通过stopPropagation()或stopImmediatePropagation()函数阻止事件的继续执行,二者的区别在与当前容器的兄弟容器的事件监听器是否被调用,执行stopPropagation()函数,当前容器的兄弟容器的监听器会运行;stopImmediatePropagation()当前容器的兄弟容器事件监听器不会执行,同时它还会阻止priority比它低的事件监听器的执行。
preventDefault():在当前事件的相应函数里面执行,取消默认的动作,例如在textinput中监听
如果在捕获阶段的事件相应函数里,执行stopPropagation()函数,则目标阶段和冒泡阶段将都不会再执行。
如果想在捕获和冒泡阶段分别执行不同的函数,可以设置useCapture=true或false,并定义相应的执行函数,在不同的事件传播阶段捕获事件。
添加事件监听:obj.addEventListener(type,listener,useCapture,priority,weekReference)
派发事件:obj.dispatchEvent(new Event(Event.type))
移除事件监听:obj.removeEventListener(type,listener)
判断是否定义了事件监听:obj.hasEventListener(type)
AS类继承EventDispatcher派发事件;AS类开始前用[Event(name=”type”,type=”package.EventName”)]声明可以派发的事件类型,当调用该类或调用或用该类声明组件时,可以添加type(EventName)的事件监听;MXML组件的<fx:Metadata>中声明[Event(name=”type”,type=”package.EventName”)]实现AS类类似的效果。
自定义的事件类继承自Event类,自定义类的构造方法中需要包含如下参数:type ,bubbles,cancelable,super(type,bubbles,cancelable);重写(overrider)clone():EventName方法,设置事件传递过程中需要传递的数据,以免丢失数据,如下,data是事件传递数据。
public override function clone():Event{ return new AppEvent(this.type, this.bubbles,this.cancelable); }
Event类中属性currentTarget与target的区别:target是派发事件对象的对象,currentTarget处理事件对象的对象;如果在一个<s:button>组件中设置click事件,则该事件的target和currentTarget都是该button对象。
在事件中传递数据的方法:在自定义事件的构造方法中指定事件传递的数据,并在重写clone()方法时,保存传递数据的副本;通过Event对象的target属性和currentTarget属性获取传递的数据;
区别:在自定义事件中指定需要传递的数据后,在监听执行函数中可以直接通过自定义事件的数据get方法获取传递的数据,不管派发事件对象的对象类型;通过Event对象的target方法获取派发事件对象的对象,如果需要获取其中的数据,必须知道派发事件对象的对象的类型,并且派发事件对象的对象中必须有相应的get方法或者要获取的数据为public类型。
相关推荐
### Flex事件机制详解 #### 一、引言 Flex是一个强大的框架,用于构建高性能的Web应用程序。对于初学者而言,理解和掌握Flex中的事件机制是非常重要的一步。本文将深入探讨Flex事件机制的基础概念、事件注册通道、...
Flex事件机制是Adobe Flex应用...总结,Flex事件机制是构建交互性应用的基础,理解并熟练掌握它能够帮助开发者编写出更加高效、响应迅速的Flex应用程序。通过合理地组织和管理事件,可以提高代码的可维护性和用户体验。
8. **Flex应用程序生命周期**:理解Flex应用从启动到关闭的整个过程,包括初始化、布局、渲染、事件处理等阶段,有助于优化性能和解决运行时问题。 9. **Flex性能优化**:学习如何通过优化组件使用、减少网络请求、...
### Flex自定义事件详解 Flex 是一款用于构建和部署跨平台桌面应用与移动应用的开源框架,它基于Adobe Flash Platform。在Flex应用开发过程中,事件处理机制是非常重要的一个环节,而自定义事件则是这一机制中的...
#### 一、Flex事件概述 Flex是一种强大的框架,用于构建高性能的桌面及移动设备上的RIA(Rich Internet Applications)。Flex基于ActionScript 3.0,这是一种广泛应用于Adobe Flash Player和Adobe AIR的应用程序...
### 关于Flex事件机制的深度解析 #### 一、引言 在Flex开发过程中,事件机制是理解应用程序交互的关键所在。对于许多初学者而言,掌握Flex中的事件处理机制显得尤为重要。本文将详细介绍Flex中的事件机制及其应用...
### Flex监听浏览器关闭事件 在Web开发中,有时我们需要对用户关闭浏览器窗口的行为进行监听,并在用户尝试关闭页面时给出提示或执行某些操作。本文将详细介绍如何利用Flex结合JavaScript实现这一功能。 #### 1. ...
总结来说,Flex事件学习涵盖了事件的定义、派发、监听以及处理,是构建交互式Flex应用的关键。通过理解和熟练运用这些概念,开发者可以创建出响应用户行为、具有丰富用户体验的应用程序。通过实践`EventDemo1`这样的...
Flex学习与总结 Flex是一种用于构建富互联网应用(RIA)的开发框架,由Adobe公司提供。RIA技术旨在提升网络应用的交互性和表现力,克服传统HTML页面在用户体验上的局限。随着网络带宽的提高,RIA逐渐成为互联网应用...
总结来说,实现Flex Tree的右键菜单主要涉及以下步骤: 1. 在Tree组件上添加`Event.MENU_SHOW`事件监听器。 2. 在事件处理函数中创建`ContextMenu`对象和`MenuItem`对象。 3. 给菜单项添加点击事件监听器并设置相应...
本篇文章将深入探讨Flex的基本概念、数据绑定、HTTPService的使用以及创建自定义事件,这些都是Flex入门阶段需要掌握的关键知识点。 首先,让我们来了解一下Flex的数据绑定。在Flex中,数据绑定是一种强大的机制,...
Flex Socket开发总结 在开发基于Flex的应用程序时,与服务器进行实时通信是常见的需求,而Socket接口提供了这种能力。本文将深入探讨Flex中Socket开发的关键知识点,包括如何连接到Java和C++的Server Socket,以及...
在本文中,我们将深入探讨Flex中的关键概念,主要聚焦于摄像头操作、视频播放、自动弹出框、屏幕分辨率获取以及XML文件的读取。Flex是一个用于构建富互联网应用(RIA)的开发框架,它允许开发者创建具有交互性、动态...
### Flex4.5常见问题总结 #### 一、Flex4.5组件开发模型与特性 Flex4.5采用了一种基于组件的开发模型,开发者可以通过继承现有组件并扩展其功能来构建自己的应用程序。这一模型的核心优势在于提高了代码的复用性,...
Flex事件模型基于观察者模式,事件是组件间通信的主要方式。事件可以分为鼠标事件、键盘事件、组件事件等多种类型,通过addEventListener和removeEventListener方法来监听和处理事件。 七、Services与数据访问 Flex...
2011年是Flex技术发展的一个重要阶段,这个时期的总结将涵盖Flex的主要特性、应用领域以及当时的技术趋势。 Flex主要由以下几部分组成: 1. **Flex SDK**:一个开源开发工具包,包含了编译Flex应用程序所需的...
在本文中,我们将深入探讨Flex的基本语法,包括ActionScript的关键概念和常用操作。Flex是一种用于构建富互联网应用程序...在实际开发中,还需要结合MXML、组件、事件处理等更高级的概念,以构建功能丰富的用户界面。
#### 三、Flex事件机制详解 ##### 1. 事件注册通道 在Flex中,事件注册通道是指MXML组件中可用于注册事件监听器的方法或属性。这些通道使得开发者可以在组件中声明式地添加事件处理逻辑,而无需深入到ActionScript...
### Flex教程大全:Flex快速入门 #### 一、Flex简介 Flex是由Adobe公司推出的一款用于构建Web应用程序的技术框架。它允许开发者使用MXML(一种基于XML的语言)和ActionScript(一种面向对象的脚本语言)来进行高效...