我正在使用Main.as编写程序,需要在另一个类文件(GetColor.as)中监听函数(getColor)。我在GetColor.as中有以下内容:
public class GetColor
{
public function getColor(event:MouseEvent):void
{
//doing stuff here
this.dispatchEvent(new Event("changeColor") );
}
}
然后在Main.as我有:
var getPicColor:GetColor = new GetColor();
getPicColor.addEventListener("changeColor",changeColorNow);
function changeColorNow(e:Event):void
{
//do stuff here
}
然而,我收到一个错误:
1061: Call to a possibly undefined method dispatchEvent through a reference
with static type GetColor.
这是什么意思?我没有宣布任何静态。我应该创建一个dispatchEvent()实例,而不是使用“this”吗?
答案 0 :(得分:2)
您无法使用(隐式)扩展Object
- >类的类调度事件这就是你遇到错误的原因 - >在哪里" dispatchEvent()"方法来自?它从哪里继承? (回答:不是!)
你的GetColor
类(那里有可怕的名字!:))必须扩展一个显示对象 - 在你的情况下它不是真正正确的解决方案,扩展EventDispatcher
或实现IEventDispatcher
。
然后您可以使用方法dispatchEvent
。