ActionScript 2.0/事件处理简介
关键概念
- 事件
- 事件处理程序
- 事件处理程序声明
- Key 和 Mouse 类
- 监听器
- 轮询
一个事件是一个不可预测的事件;你永远不知道它何时发生,尽管你知道如何对其做出反应。许多事件都基于最终用户计算机的输入设备,例如鼠标点击。其他事件可能与应用程序中的对象有关。在本节中,我们将学习如何处理事件。
一个事件处理程序是一个函数,它显示在事件发生时该做什么。[1] 它被声明如下
objectName.eventHandlerName = function(){ Statements to execute when the event occurs; }
代码 | 结果 |
---|---|
//Assume there's a MovieClip with the instance name 'apple' on the stage.
apple.onPress = function(){
trace("That's one tasty apple, all right!");
}
|
|
每个类都有自己的事件。MovieClip 类中的事件示例包括 onPress(当鼠标按钮按下而光标位于 MovieClip 上方时)、onRelease(当鼠标按钮释放而光标位于 MovieClip 上方时)、onLoad(当 MovieClip 加载时)等等。我们将在 MovieClip 章中详细介绍这些内容。
Key 和 Mouse 类是仅包含事件、静态方法和静态属性的类。你无法创建这两个类的实例。(静态方法和属性将在下一章中简要介绍,并在第三部分中详细介绍)。Key 和 Mouse 类包含许多事件处理程序,不出所料,这些事件处理程序分别与键盘和鼠标相关。在本章的其余部分,我们将使用以下事件处理程序
- Mouse.onMouseDown(当按下鼠标左键时)
- Key.onKeyDown(当按下任何键时)
既然我们无法创建鼠标和键盘类的实例,我们应该如何使用它们内部的实用事件呢?答案是:监听器。
假设我们想要一个苹果实例在舞台上的任何地方按下鼠标时缩小。以下是它的代码
代码 | 结果 |
---|---|
//Assume there's a MovieClip with the instance name 'apple' on the stage.
Mouse.addListener(apple);
apple.onMouseDown = function(){
this._width -= 2;
this._height -= 2;
}
|
|
在这个例子中,apple 被添加到 Mouse 类的监听器列表中。当在舞台上的任何地方按下鼠标时,会向 apple 发送一个通知,使其缩小。
使用监听器的策略称为回调通知。
轮询是指计算机重复检查以查看事件是否已发生。从某种意义上说,事件处理也是轮询,尽管这种轮询策略内置于 ActionScript 中。还有一种自己轮询的方法。这种策略作为事件处理的替代方案,将在我们稍后对 Key 类的详细讨论中介绍。
既然我们已经学习了 ActionScript 的所有基础知识,现在我们可以近距离地查看每个内置类,并学习如何使用它们来创建功能强大且动态的 Flash 应用程序。
- ↑ 从技术上讲,事件处理程序是一个包含函数的属性。