`
hereson
  • 浏览: 1444620 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

FLEX 2.0(也就是AS3.0)事件机制

    博客分类:
  • flex
阅读更多

 

当一个事件触发会有三个阶段让程序捕获:

第一阶段:事件的捕获阶段
下一个:目标捕获阶段
最终:冒泡捕获
1)事件捕获阶段
     捕获顺序是自祖先组件到事件触发组件层层执行的。比如下面一个层次关系的执行顺序为:先检查Application是否有监听器,再是Pannel最后是TitleWindow。
Application    Panel        TitleWindow            Button(bt1)   捕获这个阶段的事件是需要设置addEventListener的第三个参数为true的,也就是addEventListener(event-name,eventHandler,useCapture=true);   关于本阶段监听器的参数Event对象有两个属性的变化值得注意。一个是target,它一直引用着触发事件的对象。currentTarget始终引用的是当前处理事件的节点的对象。例如:在每个对象上全部加上监听监听: bt1.addEventListener(Mouse_Event.MOUSE_DOWN,'eventHandler',true);其他省略。。。public funtion eventHandler(e:Event):void { mx.controls.Alert.show(e.currentTarget.id); mx.controls.Alert.show(e.target.id);}看可以看出target以及currentTarget的变化情况。第三个阶段也是如此测试。目标捕获阶段    这个阶段只执行事件触发对象的listener,target和currentTarget指向同一个对象--事件触发者。冒泡阶段    没什么好说的,只不过要想捕获这个阶段的事件必须把setEventListener的useCapture值得设为false,这点跟第一个阶段相反,而且他们的捕获顺序也相反,在这个阶段,事件的触发顺序是从事件触发者开始,逐层向上传递。target和currentTaget变化情况同第一阶段。差点忘了,在事件的任何阶段,你都可以调用
stopPropagation()
stopImmediatePropagation()
来停止事件的继续传递,但他们产生的效果是不一样的。
stopPropagation(),事件传递给下一个对象,并继续执行当前节点的其他事件捕获。
stopImmediatePropagation(),事件传递给下一个对象,但同时停止执行当前节点的其他事件捕获。

复制个例子:

<?xml version="1.0"?><mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"        initialize="init(event)">    <mx:Script><![CDATA[        import mx.controls.Alert;        import flash.events.MouseEvent;        import mx.events.Event;                public function init(e:Event) {            p1.addEventListener(MouseEvent.MOUSE_DOWN,showAlert);            tw1.addEventListener(MouseEvent.MOUSE_DOWN,showAlert);            tw1.addEventListener(Event.CLOSE,closeWindow);        }        public function showAlert(e:Event) {            Alert.show("Alert!\n" + e.currentTarget + "\n" + e.eventPhase);            e.stopImmediatePropagation();        }        public function closeWindow(e:Event) {            p1.removeChild(tw1);        }    ]]></mx:Script>    <mx:Panel id="p1" title="Panel 1">        <mx:TitleWindow id="tw1" width="300" height="300" showCloseButton="true"            title="Title Window 1">            <mx:Button label="Enter name"/>            <mx:TextArea id="ta1"/>        </mx:TitleWindow>    </mx:Panel></mx:Application>
 

分享到:
评论

相关推荐

    flex 3.0 actionscript 2.0

    5. **数据绑定**:Flex 3.0 引入了强大的数据绑定机制,允许UI元素与后台数据模型自动同步,减少了繁琐的事件处理和手动更新。 6. **Flex Builder**:Adobe Flex Builder是一款集成开发环境(IDE),提供了图形化的...

    AS 3.0中文帮助文档

    12. Flash Professional和Flex SDK:Adobe Flash Professional是创作工具,用于设计和制作Flash内容,而Flex SDK则是一个开源开发工具套件,用于构建基于Flex框架的AS3.0应用程序。 通过“AS3.0中文帮助文档”,...

    Flex+as3.0源码

    AS3.0相比于之前的版本AS2.0,引入了更多的类库和API,支持命名空间、包结构、强类型系统以及更高级别的错误处理机制,极大地提高了开发效率和代码质量。 标题中的"Flex+as3.0源码"意味着你可能获得了一组使用Flex...

    AS 3.0中文文档

    AS 3.0中文文档是针对ActionScript 3.0这一编程语言的详细参考资料,它为开发者提供了全面的中文指导,对于理解和应用ActionScript 3.0在开发Flex应用程序时非常有帮助。ActionScript是一种基于ECMAScript的脚本语言...

    Flex3.0面试题 Flex3.0面试题

    Flex 3.0 面试题涵盖了 Flex 3.0 的多个方面,包括 ActionScript 2.0 和 3.0 的区别、Flex 开发框架、MVC 模式、内存泄露、垃圾回收机制、前端速度慢的问题、Flex 和后台语言的交互、Flash 和 Flex 的协调开发等。...

    ActionScript 2.0 3.0完全手册

    此外,AS3.0的错误处理机制、XML和JSON处理、网络通信(如Socket和URLLoader)以及与ActionScript 2.0的迁移策略也是手册的重点。 书中可能还会包含以下主题: 1. 类库和框架:讲解ActionScript标准类库,如Math、...

    flash as3.0入门

    Flash AS3.0 入门知识点 本资源摘要信息涵盖了 Flash AS3.0 的基础知识点,包括 ActionScript 3.0 概述、ActionScript 3.0 的发展历史、新增特色、编程环境等内容。同时还涵盖了 ActionScript 3.0 的应用领域、...

    flash as3.0 编程手册

    3. **事件驱动编程**:AS3.0中的事件模型是其核心特性之一,通过事件监听和分发机制,开发者可以轻松处理用户交互和其他对象间的通信。例如,舞台上的按钮点击事件或网络数据加载完成事件等。 4. **Display List**...

    AS3.0自学电子教案

    - AS3.0是ActionScript的重大升级,与之前的AS2.0相比,它具有更强的类型检查、更好的性能和更现代的面向对象特性。 - AS3.0基于ECMAScript 4草案,引入了类和包的概念,使得代码组织更加规范,提高了代码复用性。...

    Advanced+AS3.0+Animation高级动画编程+源文件+中英文PDF.rar

    1. **ActionScript 3.0(AS3.0)基础**:AS3.0是Flash平台的主要编程语言,相比AS2.0有显著的性能提升和更严格的类型系统。学习AS3.0的基础语法、对象模型、事件处理以及类和包的概念是深入动画编程的前提。 2. **...

    ActionScript3.0 参考概述

    2. **事件驱动模型**:AS3.0 采用事件驱动编程模型,允许程序响应用户操作、网络事件或其他程序事件。例如,`Event` 类和`EventListener` 接口用于处理各种事件,如点击按钮或加载数据。 3. **强大的类库**:...

    ActionScript2.0 和 3.0开发手册chm版

    ActionScript是一种基于ECMAScript(JavaScript的标准化版本)的脚本语言,主要应用于Adobe Flash/Flex平台,用于创建交互式富媒体内容、动画以及复杂的Web应用程序。ActionScript分为两个主要版本:ActionScript ...

    as3.0教程

    1. **面向对象编程(OOP)的强化**:AS3.0 引入了更严格的类定义和继承机制,支持接口和包的概念,这使得代码组织更加规范,提高了代码重用性。 2. **类型检查**:AS3.0 引入了静态类型系统,强制变量声明时指定...

    AIR音乐播放器 AS3.0

    Adobe AIR是一个跨平台的运行环境,使得开发者能够使用Flash、Flex或者ActionScript 3.0(AS3.0)来构建桌面应用程序,同时享受与Web应用类似的灵活性和丰富的用户体验。 在这款音乐播放器中,核心功能是通过AS3.0...

    Action Script3.0

    6. **Error处理**:AS3.0提供了一套完整的错误处理机制,通过try...catch语句捕获和处理运行时错误,提高了程序的健壮性。 7. **Flash Player API**:AS3.0可以访问Flash Player提供的各种API,如音频和视频播放、...

    (原创)AS 3.0 斥力球教程

    而“工具”标签则暗示了可能使用到的开发工具,比如Flash Professional或Flex Builder,这些工具支持AS 3.0的编写和调试。 【压缩包子文件的文件名称列表】:repulsion ball 这个文件很可能是教程中的核心源代码,...

    ActionScript3.0中文版.rar

    3. **事件模型**:AS3.0改进了事件处理,引入了事件监听器模式,使事件处理更加灵活和模块化。如`addEventListener`和`removeEventListener`方法。 4. **显示列表**:AS3.0的显示列表是舞台上的所有可视元素的层次...

    MXML和AS3.0编程的黄金组合

    而"ActionScript 3.0 programming.zip"可能是一个压缩包,包含了关于AS3.0编程的教程、示例代码或参考资料,涵盖了类系统、包管理、事件处理、网络通信、错误处理等方面的知识。 学习并熟练掌握MXML和AS3.0,能够...

    ActionScript 3.0 组件及编程(完整)

    5. 更快的执行速度:与ActionScript 2.0相比,AS3.0在Flash Player中运行速度显著提升,这是因为AS3.0的代码被编译为字节码,而不是解释执行。 6. 命名空间和包:AS3.0引入了命名空间和包的概念,用于组织和管理...

    ActionScript3.0

    5. **垃圾回收机制**:AS3.0 包含了一个自动垃圾回收机制,负责管理内存,开发者无需手动释放内存。这简化了内存管理,降低了内存泄漏的风险。 6. **XML和JSON支持**:AS3.0 提供了内置的XML和JSON类,便于数据交换...

Global site tag (gtag.js) - Google Analytics