`
darrenzhu
  • 浏览: 802713 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

flex事件模型

阅读更多
EventDispatcher and IEventDispatcher是Flex提供给我们事件机制的模型,所有的displayObject都继承了EventDispatcher,因此可以直接在这些对象上调用addEventListener()方法,对于自定义的对象,如果想使用事件机制,就必选继承EventDispather或者定义一个EventDispatcher的成员变量。另外请注意,事件有capture phase, target phase ,bubble phase,如果你想在capture phase使用事件,也即在event的dispatcher的ancestor中注册listener,必须是该event是ancestor支持的event.

参考:You can only register an event listener with an object if that object dispatches the event. For example, you cannot register a Form container to listen for a click event, even though that container contains a Button control. Form containers do not dispatch click events. Form containers do dispatch the mouseDown event, so you could put a mouseDown event listener on the Form container tag. If you do that, your event listener is triggered whenever the Button control or Form container receives a mouseDown event.
Target 是dispatchEvent的对象,它是始终不变的,

currentTarget是event flow中当前在examine listener的对象,在不同的eventPhase是变化的。

虽然只有displayObject会被flashPlayer或AIR自动propagation, 对与自定义的对象我们可以手动传播,这样可以将一个自定义对象内的事件传播到其他的对象(任何对象,包括父容器)中取,由其他对象来处理。
当在自定义类中使用了[Event(name="afterDelete", type="flash.events.Event")]后,自定义类中就可以直接调用dispatchEvent(),addEventListener()而不需要再new 一个EventDispatcher做成员变量,然后通过成员变量来实现propagate event 的功能。
另外注意在自定义的propagate过程中,已经triggered的event类型可能会被强制转换成通过[Event(name="afterDelete", type="flash.events.Event")]语句声明的event类型,
例如,如果元标记用的是[Event(name="afterDelete", type="flash.events.Event")],而派发的事件为dispatchEvent(new DataModelEvent("afterUpdate"));

那么在注册listener是应该如下:addEventListener(“afterUpdate”,propagateEvent);

public function propagateModelEvent(e:Event):void
{
dispatchEvent(e);
}

注意参数用的是e:Evnet,不应该用CustomEvent,否则可能报错,因为原标记中event类型为Event,而不是CustomEvent。
分享到:
评论

相关推荐

    FLEX事件监听样例(JAVA代码)

    Flex事件模型是ActionScript 3.0的核心组成部分,它与Java的事件处理方式有所不同,但可以通过Java代码进行交互,特别是在使用 BlazeDS 或 LiveCycle Data Services 这样的技术时。让我们一起探讨这个主题,理解其...

    关于flex事件的讲解

    首先,我们要理解Flex事件模型的基础。在Flex中,事件是由Event类或其子类表示的,它们是传递信息的对象。当一个事件发生时,它会从源对象(通常是组件)出发,沿着事件流传播。这个流分为两个阶段:冒泡阶段和捕获...

    flex 事件学习

    Flex事件模型基于ActionScript 3.0的事件模型,提供了一种标准的方式来处理UI组件和其他对象之间的通信。在这个主题中,我们将深入探讨Flex事件的基础、事件生命周期、事件处理程序以及如何在实践中使用它们。 首先...

    FLEX中文教程+实例

    Flex事件模型基于观察者模式,事件是组件间通信的主要方式。事件可以分为鼠标事件、键盘事件、组件事件等多种类型,通过addEventListener和removeEventListener方法来监听和处理事件。 七、Services与数据访问 Flex...

    Flex入门资料 flex3.0

    5. **事件处理**:介绍Flex事件模型,学习如何监听和处理用户交互以及程序运行过程中的事件。 6. **状态管理**:讲解如何利用Flex的状态管理功能来改变应用程序的不同视图或阶段,比如加载、登录、主界面等。 7. *...

    adobe flex例程源码

    6. **事件处理**: Flex事件模型允许组件之间进行通信。源码中可能包含事件监听器的实现,展示了如何响应用户操作或程序内部事件。 7. **服务调用**: Flex可以与各种后台服务器进行通信,如SOAP、RESTful或AMF服务。...

    flex事件运行流程

    Flex采用事件驱动的编程模型,每一个动作背后都有相应的事件。理解事件流和MXML组件的实例化是学习Flex的基础。开发者需要了解事件何时触发以及如何触发,这与HTML和Flash的执行方式不同。HTML从上到下实例化,而...

    《我的flex我精通》第3章

    一、Flex事件模型 Flex事件模型是其组件间通信的关键机制。它遵循W3C的DOM事件模型,但进行了扩展以适应富互联网应用的需求。事件模型包括事件的生成、传播和监听。当一个组件的状态发生变化时,如用户点击按钮或...

    flex中文帮助文档

    8. **事件处理**:Flex事件模型是其交互性的核心。文档会解释事件的生命周期、事件监听器和自定义事件的创建。 9. **Flex Builder/IDE集成**:如果文档是针对Adobe Flex Builder的,那么可能会包括如何使用这个IDE...

    Flex唯一中文教程【PDF】

    6. **事件处理**:Flex事件模型允许组件之间通过事件进行通信。开发者可以监听和处理用户操作、数据变化等各种事件,实现应用程序的交互逻辑。 7. **图表和可视化组件**:Flex提供了丰富的图表组件,如条形图、饼图...

    Flex中文帮助文档

    6. **事件处理**:Flex事件模型允许开发者响应用户的交互,如点击按钮、改变选择等,通过添加事件监听器和处理函数实现相应的功能。 7. **Flex Builder**:一个集成开发环境(IDE),基于Eclipse,为Flex开发提供了...

    flex教程,flex基础教程,其中有些程序的编写

    Flex事件模型基于观察者模式,使得组件之间可以互相通信并响应用户交互。通过监听和处理事件,开发者可以实现动态响应的用户界面。 六、Flex服务连接 Flex可以轻松地与各种后端服务(如HTTP、AMF、SOAP等)进行通信...

    Flex基础

    Flex事件模型允许开发者处理用户与应用程序的交互。例如,当用户点击按钮时,可以触发一个事件处理器,执行相应的逻辑。 6. **Flex与 BlazeDS** BlazeDS是Adobe提供的服务器端技术,它为Flex应用程序提供了与Java...

    flex第一步源代码全

    7. **事件处理**: Flex事件模型使得开发者可以轻松地响应用户交互或其他程序事件,通过添加事件监听器来实现相应的功能。 在这个“flex第一步”源码中,你可能会看到如何设置Flex项目的结构,如何在MXML文件中创建...

    flex2帮助文档.chm

    8. **事件模型**:描述Flex事件模型的工作原理,以及如何处理和分发事件。 9. **样式和皮肤**:讨论如何通过CSS来定制组件的外观,以及创建和应用皮肤。 10. **调试和测试**:提供关于如何使用Flex Builder或其他...

    Flex事件机制详细说明

    在Flex中,事件模型基于DOM3事件模型。这意味着事件的传播遵循了一套固定的规则,包括事件的捕获、目标和上浮三个阶段。这些规则使得事件能够有效地被不同层级的对象监听和处理。 #### 二、事件流简介 事件流是指...

    Flex API的相关内容

    Flex API中的事件模型是基于AS3的事件模型,允许组件之间通过事件进行通信。例如,当用户点击按钮时,会触发一个Click事件,开发者可以注册监听器来处理这个事件。 5. 数据绑定: Flex API支持数据绑定,这是将UI...

    Flex入门实例教程

    Flex的事件驱动模型是其核心特性之一。通过监听和处理事件,你可以实现组件间的交互和响应用户操作。教程将详细解释事件的生命周期,如何添加事件监听器,以及如何自定义事件。 六、Flex应用程序生命周期 了解Flex...

    flex流程设计器源码

    6. **事件处理**:Flex事件模型是基于观察者模式的,事件的发布和订阅是源码中的常见操作。在设计器中,例如用户交互产生的事件(如点击、拖放)都需要适当的事件处理器。 7. **自定义组件**:为了实现特定的设计...

    Flex.for.Designers Flex设计书

    8. **事件处理**:Flex事件模型允许设计师处理用户交互,如点击、滚动等,从而实现动态响应的用户界面。 9. **集成第三方库和服务**:Flex支持与其他API和服务的集成,例如Adobe AIR、AMF(Action Message Format)...

Global site tag (gtag.js) - Google Analytics