AS3.0事件侦听优先级确定的方法是按顺序线性执行么?事后才觉得问这个问题挺白痴的(遭到同事鄙视。。。),脚本执行,不涉及资源加载和远程调用,哪来的异步呢。。。。
结论是线性执行,不论优先级高的那个方法要执行多久,后面的都会等着,这也提醒我们某个事件处理逻辑和算法写得不要过于复杂,否则会耽误后面的侦听函数执行。所有的侦听函数都被放在EventDispatcher的一个listeners数组里,不过应该是private的,开debug模式强行输出可以看到一些内容。有兴趣的继续看吧:
我被绕进去,是来源于这段话:“给一个对象注册多个监听器,即使每个监听器的优先级别不同,但也无法保证后一个执行时前面的监听函数已经执行完毕。设计时,后面的函数不应该以前者执行完毕为条件。”---来源于Flex学习笔记_08 Flex的事件机制_高级应用
测试代码如下:
public class TestEvent extends Sprite
{
private var num:Number = 0;
public function TestEvent()
{
var testNum:int = 0;
for(var i:int = 0; i < 1000000; i ++){
testNum += i;
}
trace("the final num is:" + testNum);
initListener();
}
private function initListener():void{
stage.addEventListener(MouseEvent.MOUSE_DOWN,func2,false,2);
stage.addEventListener(MouseEvent.MOUSE_DOWN,func3,false,3);
}
private function func2(event:MouseEvent):void{
trace("when do fun2,the num is:"+num);
}
private function func3(event:MouseEvent):void{
trace("func3 begin,the num is:" + num);
for(var i:int = 0; i < 1000000; i ++){
num += i;
}
trace("func3 complete,the num is:"+num);
}
输出结果如下:
the final num is:1783293664
func3 begin,the num is:0
func3 complete,the num is:1783293664
when do fun2,the num is:1783293664
参考资料:
分享到:
相关推荐
在本文中,我们将深入探讨如何使用ActionScript 3.0(AS3.0)通过FLVPlayer组件加载和播放外部的FLV视频文件,并实现基本的播放控制功能,如播放、暂停和监听视频事件。首先,我们需要理解AS3.0的基础知识,它是...
5. **事件监听器优先级**:AS3允许你为事件监听器指定优先级,数值越大优先级越高,先执行。这通过`addEventListener`的第三个可选参数`priority`实现。 在提供的"第02章"压缩包文件中,可能包含了一系列的AS3事件...
- **AS3的事件侦听机制**: - 通过`addEventListener()`监听特定事件,如点击或移动。 - **在AS3中改变对象的位置和缩放对象**: - 调用对象的`x`和`y`属性来改变位置。 - 使用`scaleX`和`scaleY`属性缩放对象大小...
在AS2(ActionScript 2.0)中,事件处理是动态交互系统的重要组成部分,而事件侦听器是实现这一机制的关键。事件侦听器允许我们响应特定的事件,如用户点击、对象加载等,而无需不断检查这些事件是否已经发生,这与...
在本示例中,我们探讨了如何使用Flash AS3.0来制作飘动的气泡效果。这个程序通过创建多个彩色气泡,并让它们在舞台上随机移动,模拟气泡上升和下降的效果。以下是对关键代码段的详细解释: 1. **自定义函数 ball**...
### Flash AS3.0动画教程知识点汇总 #### 一、ActionScript动画基础 **1.1 什么是动画** - **定义**: 动画是通过连续播放一系列图像来产生视觉效果的技术,使静止的图像看起来像在移动或发生变化。 - **原理**: ...
在本节中,我们将深入探讨事件侦听的概念及其在编程中的应用。事件侦听是ActionScript(特别是Flash和Flex)中一个重要的交互处理机制。它允许我们对用户的行为或者对象的状态变化做出响应,例如,当用户点击一个...
"Flash ActionScript 3.0 事件传递-打枪小游戏的制作" 本文档主要介绍了 Flash ActionScript 3.0 事件传递机制的应用,在小游戏的制作中如何使用事件来传递状态变化。事件传递机制是程序设计中的一种重要机制,它...
在MATLAB代码生成的上下文中,事件侦听器和Simulink Signal Viewer的结合应用可以帮助开发者优化代码执行,通过实时反馈来调整模型参数,从而提高仿真效率和结果精度。事件侦听器可以捕获模型运行过程中的关键事件,...
接下来,我们讨论Dojo的事件侦听器方法——`dojo.connect`。这个方法允许我们将一个函数连接到另一个函数上,形成事件监听。例如,`dojo.connect(object, "method", context, "handler")`,其中`object`是目标对象,...
### ActionScript 3.0 开发人员指南精要解析 #### 第 1 章: 使用日期和时间 **管理日历日期和时间** ActionScript 3.0 提供了强大的日期和时间处理功能,主要通过`Date`类实现。这个类支持多种日期和时间格式的...
在这个假设的`EventTools`类中,`addEventListenerToMultipleElements`方法接收元素的ID数组、事件类型以及事件处理函数,然后批量为这些元素添加事件侦听器,节省了编码时间。 此外,考虑到"其它杂项"的标签,这个...
在as3.0中,侦听器是处理事件的核心机制。它允许程序员为特定的事件目标(如按钮点击)注册回调函数,从而在事件触发时执行预定义的代码。这极大地增强了交互性,使开发者能够响应用户的输入或其他环境变化。 #####...
JavaScript事件侦听器是JavaScript中处理用户交互或DOM(文档对象模型)变化的关键机制。它允许程序员注册回调函数,以便当特定的事件发生时,这些函数会被调用。事件可以是用户的行为,如点击按钮、鼠标移动,或者...
在这个主题下,我们将深入探讨“Vu3 事件侦听和抛送模式”,特别是关于跨模板使用的事件模式。 1. **事件绑定(Event Binding)**: 在Vue 3中,我们可以使用`.emit`方法来触发事件,而`.on`用于监听事件。相比于...