使用事件对象

事件对象作为参数传递到侦听器。事件对象是一种动作脚本对象,这种对象具有的属性中包含有关所发生的事件的信息。您可以在侦听器回调函数内使用事件对象来访问所广播的事件的名称,或者访问广播该事件的组件的实例名称。

例如,下列代码使用 evtObj 事件对象的 target 属性来访问 myButton 实例的 label 属性,并跟踪该值:

listener = new Object();
listener.click = function(evtObj){
  trace("The " + evtObj.target.label + " button was clicked");
}
myButton.addEventListener("click", listener);

下表列出了所有事件对象公用的属性:

属性

描述

type

指明事件名称的字符串。它是必需的属性。

target

对广播事件的组件实例的引用。一般情况下,不必明确描述该引用对象。

最常见的事件(例如,clickchange)除了 type 外,没有其他必需的属性。

您可以在发送事件之前,明确地构建事件对象,如以下范例所示:

var eventObj = new Object();
eventObj.type = "myEvent";
eventObj.target = this;
dispatchEvent(eventObj);

您还可以使用快捷语法在单行上设置 type 属性的值和发送事件:

ancestorSlide.dispatchEvent({type:"revealChild", target:this});

在上面的范例中,设置 target 属性为可选,因为它是隐式的。

Flash MX 2004 文档中对每个事件的说明列出了可选和必需的事件属性。例如,ScrollBar.scroll 事件除了使用 typetarget 属性外,还使用 detail 属性。有关详细信息,请参阅组件字典中的事件说明。