- 浏览: 88130 次
- 性别:
- 来自: 北京
-
最新评论
-
A5121612886:
好文要顶!
Flash Builder 编译器选项 -
谁在哀伤望月:
非常好,谢谢分享
Flash builder4 插件终极破解方法
在群里有人问了个问题:
为什么我把父剪辑的 mouseEnabled 设置为 false 但父剪辑还是可以侦听到 鼠标事件?
很有意思的一个问题,不是么!
AS3 里使用了事件流机制。简单说来一个完整的事件流应该从 Flash Player 到目标然后再回到 Flash Player。我们用一个简单的例子看看如何描述这个问题。
假如有如下结构的SWF文件,场景里有一个MovieClip(以下简称MC) A,A 里面包含一个名为 B 的MC,B 里面又包含 MC D。 有些复杂了,还是画个简单的图吧。
|-stage
..|-A
….|-B
……|-D
然后我们假设 D 触发了CLICK 事件,那么事件流程应该是:
stage -> A -> B -> D -> B -> A -> stage
这里有几个定义, 先看这一段:[ stage -> A -> B ], 这段在事件流当中我们定义为 捕获阶段(是否记得addEventListener的第三个参数?);
我们触发事件的对象 [ D ] 也给它定义一个阶段,命名为:目标阶段;
最后 [ B -> A -> stage ] 这阶段定义为 冒泡阶段。
PS:小建议,如果觉得搞不清为什么事件为什么会从stage跑到目标再回到stage这样的问题的话,还是别去管它了。只要记住不管这个事件在哪里发生, 总是会从stage 出发,然后找到触发事件的对象,再回到stage。
这样,一个完整的事件流由 捕获, 目标和冒泡 这三个阶段构成。
更多事件流的信息请访问黑羽博客:http://www.kingda.org/archives/kingda/2006/07/as305.html
扯了这么远,回到开始的话题。
当 我们设置对象的 mouseEnabled 值的时候,它只影响对象本身不会触发事件,但这并不影响对象在事件件中的地位。也就是说当对象的子对象触发鼠标事件的时候,自身也会伴随发送事件。想想整 个事件流,也就不难理解为什么我把父剪辑的 mouseEnabled 设置为 false 但父剪辑还是可以侦听到 鼠标事件。
所以,要禁止一个对象的触发交互事件,完整的做法是 mouseEnabled=false; mosueChildren=false; 同时设置这两个值。
好了,说了一堆全是文字。动手试一下:
- 在场景里画一个圆,选个红色或是什么的,保存为影片剪辑;
- 继续在场景里画一个方框,颜色和前面的圆区分开就行,位置最好重叠;
- 同时选中的圆(影片剪辑)和刚画好的方框,保存影片剪辑;
- 再在主时间轴上添加代码:getChildAt(0).addEventListener(MouseEevnt.MOUSE_OVER, function (e){trace(“overed”);});
- Ctrl+ENTER 运行测试,看看运行效果。
- 再添加一行代码:getChildAt(0).mouseEnabled = false;
- 再测试运行。是不是注意到区别了呢?
发表评论
-
全面提升你的程序效率 之细说 bitmapdata AS3 Bitmap 抠图(透明部分)和碰撞(点击)检测
2012-06-05 09:54 7288如果你是刚接触as编程 ... -
PureMVC MultiCore报错 multitonKey for this Notifier not yet initialized!
2012-05-23 16:08 1044multitonKey for this Notifier n ... -
关于优化
2012-05-21 14:58 10281. Avoid the new operator whe ... -
AS3经验之谈
2012-05-11 10:56 1189【改变输出swf的尺度,背景颜色 ... -
AS3动态获得类名及类的方法
2012-05-08 13:50 28571.获得某个实例对象的类名:getQualifiedClass ... -
Flex 应用内存泄露的分析与诊断
2012-05-03 11:32 741http://www.ibm.com/developerwor ... -
Flash Builder 编译器选项
2012-05-02 10:30 6481-benchmark 输出性 ... -
【AS3】为什么AS3.0事件流机制会有捕获阶段、目标阶段、冒泡阶段三个阶段
2012-04-26 10:03 3890原问题:事件机制有三个步骤,捕获,目标和冒泡。请问,在目标阶段 ... -
Socket+AMF3粘包问题
2012-04-17 10:05 1920问题: 服务端Mina 前台接收Flex 参照的 ... -
AS3事件中target和currentTarget的区别
2012-04-12 15:40 1987在事件处理过程中,会 ... -
ActionScript垃圾回收
2012-04-12 15:04 1455在《给AS程序员的一点建议一文 》中我提到了释放资源的重 ... -
updateAfterEvent的作用
2012-04-10 17:26 1290flash中一共有三个类具 ... -
深入理解flash重绘
2012-04-10 17:21 1227Flash Player 会以SWF内 ... -
[AS3]registerClassAlias的用法
2012-03-20 10:35 1132registerClassAlias在利用AMF3进行序列话网 ... -
navigateToURL
2012-03-09 15:51 1215navigateToURL整理总结一些关于navigate ... -
flash中cacheAsBitmap的使用
2012-03-09 11:59 872缓存显示对象 如果 Flash 中的设计尺寸增大,无论创建 ... -
Debug和Release之本质区别
2012-02-27 11:41 1231关于Debug和Release之本质区别 使用条件编译来完成区 ... -
AS3中super的用法[转自A闪]
2012-02-13 10:19 1292super它到底是什么?这是我第一个问题,在帮助中石这样说明的 ... -
AS3.0的Dictionary类
2012-02-10 11:00 849AS3中的Dictionary类(flash. ... -
AS3中public internal private protected的区别
2012-02-10 10:43 2583protected Java與AS3中的 ...
相关推荐
`TouchEvent`类是AS3处理多点触摸的核心,它包括了`TOUCH_BEGIN`、`TOUCH_MOVE`、`TOUCH_END`等常量,分别对应触摸开始、移动和结束的事件。每个触摸事件都有一个唯一的`touchPointID`,用于区分不同的触摸点。 2....
本文将深入探讨AS3事件流中的两个关键属性——`target`与`currentTarget`,并通过具体的示例来阐述它们的区别及实际应用。 #### 二、事件流基础 在AS3中,事件流主要分为三个阶段:捕获阶段(CAPTURING PHASE)、...
1. **触摸事件(TouchEvent)**:AS3提供了`TouchEvent`类,它包含了与触摸输入相关的所有事件。主要有三个基本的触摸事件: - `touchStart`:当一个或多个手指首次接触舞台时触发。 - `touchMove`:当手指在舞台...
在Flash AS3中,我们可以通过StageGestureEvent类来监听和处理触控事件,如TOUCH_MOVE、TOUCH_BEGIN和TOUCH_END等。 缩放功能的实现依赖于计算两个触点之间的距离变化。当用户同时用两个手指在屏幕上张开或收拢时,...
以下是一些关于AS3事件处理的关键知识点: 1. **事件类**:AS3中所有的事件都继承自Event类,比如MouseEvent、KeyboardEvent和TimerEvent等。每个事件类都有特定的类型,比如"click"或"keydown"。 2. **事件流**:...
AS3 特效 demo 鼠标事件 鼠标顶球
6. **事件处理**:AS3中的事件模型允许开发人员对用户操作和播放状态变化作出反应。例如,`NetStatusEvent.NET_STATUS`用于监控网络状态,`VideoEvent.COMPLETE`表示视频播放完毕。 7. **自定义功能**:纯AS3的...
总结来说,这个"UDP.rar"压缩包中的"UDP.fla"文件很可能是为了展示如何在AS3环境中使用UDP进行通信,这对于开发实时互动的Flash应用,如多人在线游戏或音视频流媒体服务,具有重要的学习价值。通过解析和运行这个...
3. **事件驱动编程** - AS3中的事件模型是其核心特性之一,允许程序响应用户输入或其他外部事件。事件监听器和事件对象的使用是理解AS3程序工作方式的关键。 4. **动作脚本组件** - AS3引入了一系列预定义的UI组件...
开源码 AS3 扩展瀑布流功能的 DataGrid 组件是一种强大的工具,它允许开发者在 ActionScript 3(AS3)环境中实现具有视觉吸引力和高度交互性的数据展示。这个组件扩展了标准的 Flex DataGrid 控件,引入了瀑布流布局...
在《潮汕IT男》网站的文章《解决flash/flex/as3 访问中文域名时的流错误》中,作者陈林生提供了详细的步骤和代码示例,帮助开发者理解和解决这个问题。文章地址是:[http://chenlinsheng.com/?p=990]...
"AS3 多点旋转缩放类"是实现这一功能的关键组件,它使得开发者能够创建支持多点触控的自定义组件,允许用户同时操作多个触摸点来改变舞台上对象的方向和大小。 `myTouchPoint.as` 和 `MyTouchSprite.as` 是两个关键...
张志晨:as3语言,最为典型的自定义事件 模板,可以自己修改并扩充。
AS3的基础模块涵盖了语言语法、对象模型、类和接口、事件处理、数据结构、网络通信等多个方面。在深入探讨这些知识点之前,让我们先对AS3有一个概览。 一、AS3语言基础 AS3采用了更严格的面向对象编程(OOP)模型,...
8. 媒体处理:Flash Player支持音频和视频播放,AS3提供了Sound和Video类,以及NetStream和NetConnection对象,用于流媒体处理和实时通信。 九、组件使用 9. Flex组件:Flex框架提供了一系列预定义的UI组件,如...
我们可以总结出一系列关于ActionScript 3.0(简称AS3)的关键知识点,这些知识点覆盖了AS3的多个方面,包括日期和时间管理、字符串操作、数组处理、错误处理、正则表达式使用、XML和JSON处理、事件处理、显示编程、...
本篇文章将详细讲解如何在AS3中使用UDP(用户数据报协议)进行测试,以及相关的知识点。 标题“as3-udp test”暗示了这是一个AS3环境下的UDP通信测试工具。UDP是一种无连接的、不可靠的传输层协议,它不保证数据包...
AS3(ActionScript 3)是Adobe Flash Platform的主要编程语言,用于创建富互联网应用程序(RIA)和动画。在本主题中,“as3 界面编辑”指的是使用AS3来设计和构建用户界面(UI)。Flash CS 是一个常用的图形编辑工具...
《Flash CS3 + AS3键盘事件深度解析》 在Flash CS3中,ActionScript 3(AS3)作为强大的编程语言,为开发者提供了丰富的交互功能。其中,键盘事件的处理是构建用户界面和游戏控制不可或缺的一部分。这篇内容将深入...
2. **事件驱动编程**:AS3的核心之一就是事件驱动模型,这使得它在处理用户交互时表现出色。文档会解释Event类、EventListener接口和事件监听器的工作原理。 3. **数据类型和变量**:AS3支持基本数据类型如Number、...