【问题标题】:AS3 Error 1067 (implicit coercion) when trying to addEventListener尝试 addEventListener 时出现 AS3 错误 1067(隐式强制)
【发布时间】:2013-05-05 14:01:01
【问题描述】:

所以我正在为game jam开发一款排序游戏,而我的AS3技能还有些不成熟。

我有一个 InputManager.as 来确定设备是否具有触控功能,然后在需要它的类中获取该信息。

我遇到的问题是:

C:\GameDev\Progressive Bytes\Dan\Scripts\Screens\Buttons.as, Line 55 1067:将 String 类型的值隐式强制转换为不相关的值 输入函数。

这就是问题所在:

        if(InputManager.isTouch){
            this.addEventListener(TouchEvent.TOUCH_BEGIN, TouchEventHandler);
        } else {
            this.addEventListener(MouseEvent.MOUSE_OVER, over);
        }

这是在 Button 的构造函数中。

我进行了一些搜索,但我似乎无法在与此问题相关的事件侦听器上找到任何关于 1067 的答案。但是,正如我所说,AS3 有点菜鸟。

谢谢!!

【问题讨论】:

  • 你能标出究竟是哪一行导致了错误吗?谢谢
  • 知道了。结果 addEventListener 认为 over 函数是一个字符串,因为(虽然我还没有找到它),一个公共 var over:String 被声明在其他地方。我刚刚将函数的名称更改为 Over(),它现在可以工作了。
  • 处理程序的命名约定使代码简单明了,例如:onTouchBegintouchBeginHandleronMouseOvermouseOverHandler

标签: actionscript-3 addeventlistener


【解决方案1】:

这是有错误的那一行:

this.addEventListener(TouchEvent.TOUCH_BEGIN, TouchEventHandler);

你要明白第一个参数是一个带有事件名称的字符串,第二个参数必须是一个函数并且你传递一个类引用。

我假设第 4 行中的 over 参数是一个函数,对您来说可以正常工作。 另外我假设 TouchEvent.TOUCH_BEGIN 属性是一个字符串。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-06-13
    • 2020-09-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-28
    • 1970-01-01
    相关资源
    最近更新 更多