【问题标题】:MouseOver event has TypeError: Error #1009, any helps?MouseOver 事件有 TypeError: Error #1009,有什么帮助吗?
【发布时间】:2019-02-19 01:41:20
【问题描述】:

我正在创建一些涉及鼠标悬停、鼠标悬停和鼠标按下事件的动画。每当我将鼠标按下影片剪辑并转到另一帧时,输出框中将出现常见错误 1009。动画有效,但错误仍然出现,我可以忽略动画有效后的错误吗?或者有什么办法可以解决我的编码问题?任何帮助深表感谢!!!

下面是影片剪辑的编码:

africaMiddleEast.addEventListener(MouseEvent.MOUSE_OVER,mover);
africaMiddleEast.addEventListener(MouseEvent.MOUSE_OUT,moverout);
africaMiddleEast.addEventListener(MouseEvent.MOUSE_DOWN,mdown);


function mover(e:MouseEvent):void{
    africaMiddleEast.gotoAndPlay(2);
}

function moverout(e:MouseEvent):void{
    africaMiddleEast.gotoAndStop(1);
}

function mdown(e:MouseEvent):void{
    gotoAndPlay(2);
}

Screenshot

【问题讨论】:

  • 因为(可能)当您移动到另一个帧时,那个 africaMiddleEast 事物不再在该帧的时间线上,所以当 MouseEvent.MOUSE_OUT点击(它确实是因为鼠标不在了,对吗?)你的代码试图访问一个不存在的东西。如果您在 gotoAndPlay(2); 之前取消订阅所有事件,您可能会修复它
  • 您能指导我如何取消订阅所有活动吗?谢谢你的帮助:)

标签: flash


【解决方案1】:

您可能需要在 gotoAndPlay(2);

之前取消订阅所有事件
africaMiddleEast.addEventListener(MouseEvent.MOUSE_OUT, onOut);
africaMiddleEast.addEventListener(MouseEvent.MOUSE_OVER, onOver);
africaMiddleEast.addEventListener(MouseEvent.MOUSE_DOWN, onDown);

function onOut(e:MouseEvent):void
{
    africaMiddleEast.gotoAndStop(1);
}

function onOver(e:MouseEvent):void
{
    africaMiddleEast.gotoAndPlay(2);
}

function onDown(e:MouseEvent):void
{
    africaMiddleEast.removeEventListener(MouseEvent.MOUSE_OUT, onOut);
    africaMiddleEast.removeEventListener(MouseEvent.MOUSE_OVER, onOver);
    africaMiddleEast.removeEventListener(MouseEvent.MOUSE_DOWN, onDown);

    gotoAndPlay(2);
}

【讨论】:

  • 谢谢,但事件监听器仍然存在,错误仍然存​​在。我已经尝试了另一种方法并已经解决了问题。我尝试使 africaMiddleEast 的帧更长以覆盖所有其他元素,以便动作脚本仍然可以在动画中找到鼠标悬停脚本。它有效! :D
猜你喜欢
  • 2010-11-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-07-29
  • 1970-01-01
  • 2011-08-15
相关资源
最近更新 更多