我不知道为什么但是我无法完成我的头部活动派遣。
以此为例。
someClass():Void{
this.addEventListener("onChange",someObj);
}
我是否正确地假设这意味着someClass正在侦听onChange事件,当它获得它时,它将在someObj上触发onChange方法?
谢谢,Kohan。
附录:
lo = new Object();
lo.click = function(evt){
trace(evt.target.label + " clicked");
}
button1.addEventListener("click", lo);
希望我在这个网站上找到http://www.webwasp.co.uk/tutorials/keywords/addEventListener.php
你可以看到我是如何得出这个假设的。 lo是一个对象,而不是一种方法,我是否正确?
答案 0 :(得分:2)
你弄错了:
someClass():Void {
this.addEventListener("onChange",someObj);
}
将为此onChange侦听器列表添加一个事件侦听器,当事件被触发时,将调用someObj 方法!
您需要将方法本身作为参数传递。所以,使用:
someClass():Void {
this.addEventListener("onChange",someObj.someMethod);
}
* BTW,最好不要使用“onChange”字符串本身,而是使用保存这些字符串的常量(例如Event。ENTER_FRAME)。
答案 1 :(得分:0)
addEventListener
的第二个参数是捕获该事件时将被调用的函数的函数名。
答案 2 :(得分:0)
我认为你误解了对象是什么,名称反映了语法的含义:
someMethod():Void {
this.addEventListener("onChange",someOtherMethod);
}
someOtherMethod():Void {
// something happens here when the "onChange" event is triggered
}
语法是this.addEventListener(事件名称,被调用的函数);
obj = new Object();
obj.method = function(evt) {
// something happened
}
otherObject.addEventListener("Event Name", this.obj);
otherObject.dispatchEvent("Event Name")
这就是语法的工作原理。但制作自己的活动有点复杂