使用按钮和影片剪辑事件处理函数

可以使用 onClipEvent()on() 处理函数直接将事件处理函数附加到按钮或影片剪辑实例。onClipEvent() 处理函数处理影片剪辑事件,而 on() 处理函数处理按钮事件。也可以将 on() 用于影片剪辑,创建接收按钮事件的影片剪辑。有关更多信息,请参见创建具有按钮状态的影片剪辑

要使用 on()onClipEvent() 处理函数,将它直接附加到舞台上按钮或影片剪辑的实例,并且指定您要为该实例处理的事件。例如,只要用户单击处理函数附加到的按钮,就执行以下 on() 事件处理函数。

on (press) {
  trace("Thanks for pressing me.");
}

您可以为每个 on() 处理函数指定两个或多个事件(用逗号分隔)。当该处理函数指定的任何事件之一发生时执行处理函数中的动作脚本。例如,只要鼠标滚过一个按钮,就执行附加到该按钮的以下 on() 处理函数。

on(rollOver, rollOut) {
  trace("You rolled over, or rolled out");
}

如果您想要在发生不同事件时运行不同的脚本,也可以向一个对象附加多个处理函数。例如,可以将以下 onClipEvent() 处理函数附加到同一影片剪辑实例。当影片剪辑第一次加载时(或者在舞台上出现时)第一个函数执行;在从舞台卸载该影片剪辑时第二个函数执行。

onClipEvent (load) {
  trace("I've loaded");
}
onClipEvent (unload) {
  trace("I've unloaded");
}

要查看 on()onClipEvent() 事件处理函数所支持的事件的完整列表,请参见on()onClipEvent()

通过 on()onClipEvent() 处理事件与通过您定义的事件处理函数方法处理事件并不冲突。例如,假定 SWF 文件中有一个按钮;该按钮可以具有一个通知影片播放的 on(press) 处理函数,并且这个按钮还可以具有一个 onPress 方法,用于定义通知舞台上某个对象旋转的函数。单击该按钮后,该 SWF 文件将播放,并且该对象将旋转。根据您的首选参数,可以使用 on()onClipEvent()、事件处理函数方法或这两种类型的事件处理。但是,on()onClipEvent() 处理函数中变量和对象的范围不同于事件处理函数和事件侦听器中的范围。(请参见事件处理函数的范围。)

只能将 onClipEvent()on() 附加到创作期间已放置于舞台上的影片剪辑实例。不能将 onClipEvent()on() 附加到在运行时(例如,使用 attachMovie() 方法)创建的影片剪辑实例上。要将事件处理函数附加到运行时创建的对象,请使用事件处理函数方法或事件侦听器。(请参见使用事件处理函数方法使用事件侦听器。)