如何将自定义事件重新调度到Flash中的另一个类(而不是父类)?

时间:2011-04-09 20:12:38

标签: flash actionscript-3

我无法冒泡这个事件,因为我想发送到另一个甚至不是movieclip而是简单类的类。

所以我在这里转换以前的源代码 <{p}}

private function onCustomEventType(e:CustomEvent):void
{
    trace(e.value);
    //redispatch
    this.dispatchEvent(e as CustomEvent);

}// end function

错误是

  

将flash.events转换为CustomEvent不可能

虽然我已经投放到CustomEvent以确保!

2 个答案:

答案 0 :(得分:8)

在您的事件处理程序中,您可以再次调度该事件。但是接下来发生的事情是Flash Player克隆收到的新事件。当您创建自己的自定义事件时,应始终覆盖clone()函数。否则,您将收到运行时错误,例如您提到的错误。

在您的情况下,您的CustomEvent类应具有此方法

    override public function clone():Event
    {
        return new CustomEvent(type, bubbles, cancelable);
    }

如果您的构造函数需要其他参数,请确保将它们放在那里。

答案 1 :(得分:1)

事件的冒泡不会发生在接收事件的对象中,而是发生在发送事件的对象中。或者确切地说,事件正在通过调度对象的所有祖先冒泡。所以你不必担心。

此外,您已经在CustomEvent - 函数中收到了onCustomEventType,因此无需进行投射。