通过静态类型GetColor的引用调用可能未定义的方法dispatchEvent

时间:2015-05-07 15:05:39

标签: actionscript-3 flash dispatchevent

我正在使用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”吗?

1 个答案:

答案 0 :(得分:2)

您无法使用(隐式)扩展Object - >类的类调度事件这就是你遇到错误的原因 - >在哪里" dispatchEvent()"方法来自?它从哪里继承? (回答:不是!)

你的GetColor类(那里有可怕的名字!:))必须扩展一个显示对象 - 在你的情况下它不是真正正确的解决方案,扩展EventDispatcher或实现IEventDispatcher

然后您可以使用方法dispatchEvent