ActionScript和JavaScript的事件处理机制处理机制几乎完全相同,所不同的主要是ActionScript的事件处理机制还提供了一个 事件对象。
在ActionScript中,所有的事件的起点都是一个通用的事件对象,其他事件通过继承该通用的事件对象添加其它的信息。
事件对象提供的信息一般都会包括:
下面是示例程序:
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600">
<fx:Declarations>
<!-- 将非可视元素(例如服务、值对象)放在此处 -->
</fx:Declarations>
<fx:Script>
<![CDATA[
import mx.controls.Alert;
//事件处理函数
public function clickHandler(
clickEvent:Event //事件对象
):void {
Alert.show("EventType:"+clickEvent.type +" came from " + clickEvent.currentTarget.id);
}
]]>
</fx:Script>
<s:Panel x="0" y="0" width="390" height="218">
<s:Button id="leoxu" label="HELLO WORLD!!!" fontSize="40" x="23" y="10" width="353"
click="clickHandler(event)"/>
</s:Panel>
</s:Application>
事件对象具有 可重用的优点,事件处理程序只要使用它,就能访问到触发事件的组件,以及事件的类型。