UIEventDispatcher.addEventListener()

可用性

Flash Player 6.0.79。

版本

Flash MX 2004 和 Flash MX Professional 2004。

用法

componentInstance.addEventListener(event, listener)

参数

event 表示事件名称的字符串。

listener 对侦听器对象或函数的引用。

返回

无。

描述

方法;在播放事件的组件实例上注册侦听器对象。事件触发时,将通知侦听器对象或函数。您可以从任何组件实例调用此方法。例如,下列代码将侦听器注册到组件实例 myButton

myButton.addEventListener("click", myListener);

在调用 addEventListener() 将侦听器注册到组件实例之前,您必须先将该侦听器定义为对象或函数。如果侦听器是对象,则必须定义一个回调函数,当触发该事件时,将会调用该回调函数。通常,回调函数与注册侦听器所使用的事件同名。如果侦听器是函数,则触发事件时,将调用该函数。有关详细信息,请参阅使用组件事件侦听器

您可以将多个侦听器注册到一个组件实例,但必须为每个侦听器单独调用 addEventListener()。而且,也可以将一个侦听器注册到多个组件实例,但必须为每个实例单独调用
addEventListener()。例如,下列代码定义一个侦听器对象,并将它分配给两个 Button 组件实例:

lo = new Object();
lo.click = function(evt){
  if (evt.target == button1){
    trace("button 1 clicked");
  } else if (evt.target == button2){
    trace("button 2 clicked");
  }
}
button1.addEventListener("click", lo);
button2.addEventListener("click", lo);

事件对象作为参数传递给侦听器。事件对象具有包含有关所发生事件的信息的属性。您可以在侦听器回调函数内使用事件对象来访问有关所发生的事件类型的信息,以及哪个实例广播该事件的信息。在上面的范例中,事件对象是 evt(您可以将任何标识符用作事件对象名称),它在 if 语句内使用,用于确定单击了哪个按钮实例。有关详细信息,请参阅事件对象

范例

下面的范例定义了一个侦听器对象 myListener,并定义了回调函数 click。然后,它调用 addEventListener()myListener 侦听器对象注册到组件实例 myButton。要测试该代码,请将实例名为 myButton 的按钮组件放在舞台上,并将下列代码置于第一帧中:

myListener = new Object();
myListener.click = function(evt){
  trace(evt.type + " triggered");
}
myButton.addEventListener("click", myListener);