如何从事件处理程序内部调度不同的事件?

时间:2010-06-10 20:18:11

标签: flash actionscript-3

我有一个自定义事件类型的事件监听器。此自定义事件会根据需要覆盖克隆方法。

在这个事件监听器中,我想调度一个不同类型事件的实例......一个不同的自定义事件实例。它还根据需要覆盖了克隆方法。

问题是我遇到类型强制错误:TypeError: Error #1034: Type Coercion failed: ...

我不知道是什么尝试进行施法。我的代码是:

/* elsewhere in a method */
addEventListener(GestureEvent.GESTURE_SCALE, handlePinched);

/* the event handler */
private function handlePinched(e:GestureEvent):void
{
    dispatchEvent(new BezelEvent( BezelEvent.PINCH, e ));
}

BezelEvent.PINCH评估为"__bezel_event_pinch",这是一个不与其他事件发生冲突的唯一字符串。

然而,我得到了这种类型的强制......是的,它是在处理事件的“dispatchEvent循环”中,但基于某些事件调度不同的事件看起来像是一个超常常和琐碎的场景。任何人都可以弄清楚为什么它试图将我的新BezelEvent实例转换为GestureEvent实例?

1 个答案:

答案 0 :(得分:0)

傻傻傻......

答案:确保监听新事件的eventHandlers期望正确的事件类型。

我对BezelEvent事件的处理程序被定义为期待一个GestureEvent。更改处理程序以期望BezelEvent解决问题。

让我愚蠢地为你节省一些时间。

叹息