Button.click

可用性

Flash Player 6.0.79。

版本

Flash MX 2004。

用法

用法 1:

on(click){
  ...
}

用法 2:

listenerObject = new Object();
listenerObject.click = function(eventObject){
  ...
}
buttonInstance.addEventListener("click", listenerObject)

描述

事件;当在按钮上单击(释放)鼠标,或者当按钮具有焦点并按下空格键时,对所有已注册的侦听器进行广播。

第一个用法范例使用一个 on() 处理函数,并且必须直接附加到一个 Button 组件实例。附加到组件的 on() 处理函数内部使用的关键字 this 是指该组件实例。例如,以下代码附加到 Button 组件实例 myButtonComponent,它将“_level0.myButtonComponent”发送到“输出”面板: 

on(click){
  trace(this);
}

请注意,这与附加到常规 Flash 按钮元件的 on() 处理函数内部使用的 this 的行为不同。在附加到按钮元件的 on() 处理函数中使用 this 时,它指的是包含该按钮的时间轴。例如,以下代码附加到按钮元件实例 myButton,它将“_level0”发送到“输出”面板:

on(release){
  trace(this);
}

注意:内置的动作脚本 Button 对象没有 click 事件;最接近的事件是 release

第二个用法范例使用一个调度程序/侦听器事件模型。组件实例 (buttonInstance) 调度一个事件(在本例中为 click),而该事件由附加到您创建的侦听器对象 (listenerObject) 的函数处理。您定义一个与侦听器对象上的事件同名的方法;当该事件被触发时,就会调用该方法。该事件被触发时,它会自动将一个事件对象 (eventObject) 传递到侦听器对象方法。该事件对象有一组属性,这些属性包含有关事件的信息。您可以使用这些属性来编写处理该事件的代码。最后,对广播该事件的组件实例调用 addEventListener() 方法(请参阅 UIEventDispatcher.addEventListener()),以将侦听器注册到实例。当该实例调度该事件时,就会调用该侦听器。

有关事件对象的详细信息,请参阅事件对象

范例

此范例是在时间轴上的某一帧上编写的,当单击名为 buttonInstance 的按钮时,它会向“输出”面板发送一条消息。第一行代码给该按钮设置标签。第二行代码指定该按钮用作切换开关。第三行代码创建一个名为 form 的侦听器对象。第四行代码为侦听器对象上的 click 事件定义一个函数。该函数内部有一个 trace 动作,它使用自动传递到该函数的事件对象(在本例中是 eventObj)来生成消息。事件对象的 target 属性是生成该事件的组件,在本例中是 buttonInstance。从事件对象的 target 属性中可以访问 Button.selected 属性。最后一行代码从 buttonInstance 调用 addEventListener() 方法,并将 click 事件和 form 侦听器对象作为参数传递给该方法,如下所示:

buttonInstance.label = "Click Test"
buttonInstance.toggle = true; 
form = new Object(); 
form.click = function(eventObj){
  trace("The selected property has changed to " + eventObj.target.selected);
} 
buttonInstance.addEventListener("click", form); 

下列代码还会在单击 buttonInstance 时向“输出”面板发送一条消息。必须将 on() 处理函数直接附加到 buttonInstance 上,如下所示:

on(click){
  trace("button component was clicked");
}

另请参见

UIEventDispatcher.addEventListener()