使用 ActionScript 2.0 组件 |
|
|
|
| 处理组件事件 > 使用侦听器处理事件 > 使用侦听器函数 | |||
与 handleEvent 语法不同,有几个侦听器函数可以处理不同的事件。因此,您可以不在 myHandler 中使用 if 和 else if 检查,而只需为 change 事件定义 myChangeHandler,为 scroll 事件定义 myScrollHandler,然后注册它们,如下所示:
myList.addEventListener("change", myChangeHandler);
myList.addEventListener("scroll", myScrollHandler);
要使用侦听器函数,必须先定义一个函数:
functionmyFunction:Function(evtObj:Object){// 此处是您的代码}
|
提示 |
|
然后,从广播事件的组件实例调用 addEventListener() 方法。addEventListener() 方法采用两个参数:一个是指示事件名称的字符串,另一个是对函数的引用。
componentInstance.addEventListener("eventName",myFunction);
您可以从任何组件实例调用 addEventListener();它包含在每一个源自 EventDispatcher 类的 UI 组件中。有关详细信息,请参阅《ActionScript 2.0 组件语言参考》中的"EventDispatcher.addEventListener()"。
有关组件广播的事件的信息,请参阅《ActionScript 2.0 组件语言参考》中每个组件的条目。
若要在 Flash (FLA) 文件中注册侦听器对象,请执行以下操作:
// 声明变量
var myList:mx.controls.List;
var myHandler:Function;
// 将项目添加到列表
myList.addItem("Bird");
myList.addItem("Dog");
myList.addItem("Fish");
myList.addItem("Cat");
myList.addItem("Ape");
myList.addItem("Monkey");
// 定义 myHandler 函数
function myHandler(eventObj:Object){
// 使用 eventObj 参数
// 捕获事件类型
if (eventObj.type == "change"){
trace("The list changed");
} else if (eventObj.type == "scroll"){
trace("The list was scrolled");
}
}
// 向 myList 注册 myHandler 函数。
// 当选中一个项目(触发 change 事件)或
// 滚动列表时,执行 myHandler。
myList.addEventListener("change", myHandler);
myList.addEventListener("scroll", myHandler);
|
注意 |
事件对象 |
|
小心 |
在侦听器函数中,关键字 |
|
|
|
|