AS3启动和停止(2);在帧第二次运行时导致1009错误



免责声明:我对AS3非常陌生/非常糟糕,所以这可能是一件非常愚蠢的事情,永远不应该发生

好吧,当我第一次运行主菜单框时,它运行得很好,当我按下按钮时,它会将我发送到游戏框。游戏完成后,它会返回到菜单框,并运行良好,直到我按下之前的相同按钮,这称为此错误:。

TypeError: Error #1009: Cannot access a property or method of a null object reference.
at Main_fla::MainTimeline/frame2()[Main_fla.MainTimeline::frame2:6]
at flash.display::MovieClip/gotoAndPlay()
at Main_fla::MainTimeline/easyPress()[Main_fla.MainTimeline::frame3:83]
at Main_fla::MainTimeline/mClickE()[Main_fla.MainTimeline::frame3:45]

我的按钮代码如下:

buttEasy.addEventListener(MouseEvent.CLICK, mClickE);
buttHard.addEventListener(MouseEvent.CLICK, mClickH);
stage.addEventListener(MouseEvent.MOUSE_MOVE, mMove);

function mClickE(e:MouseEvent){

easyPress();
trace("easyP");
menuUsed = true;
}

function easyPress(){
trace("Waited for press and release"); 
sTime = 0;
sTempo =  (6) ;
sBall = 0;
ballSpeed = 7;
gameIsOver = false;
menuUsed = true;
lvlArray0= new Array(1,0,0,2,0,0,1,0,0,3,0,0,1,0,0,2,0,0,1,0,0,3,0,01,0,0,2,0,0,1);
init2 = false;
buttEasy.removeEventListener(MouseEvent.CLICK, mClickE);
stage.removeEventListener(MouseEvent.MOUSE_MOVE, mMove);
gotoAndPlay(2);

}

老实说,我不知道为什么会发生这种事。我用鼠标事件而不是按键事件之类的,因为我的电影开始消失、闪烁和其他无法解释的东西。。。

是的。。。

我刚刚注册,所以我不能将其作为评论发布。无论如何,错误发生在第2帧,而不是您提供的脚本中(在第3帧)。您可以在错误消息中看到这一点:"在Main_fla::MainTimeline/frame2()[Main_fla.MainTimeline::frame2:6]"->第2帧第6行。你正在访问一个已经不存在的东西。(->现在为空的东西)也许是舞台上的一个物体被移走了。(但还有很多其他的可能性,所以不要坚持这个解决方案)将您的脚本张贴在第3帧上以获得进一步的帮助。

由于这个错误,闪光和其他无法解释的事情发生了。它中止脚本并正常运行flash。(这意味着例如stop();方法将不会执行->玩家运行所有的帧->舞台上的对象似乎在闪烁)

您可能只是在给出引用之前处理"阶段"。开始你的代码:

addEventListener(Event.ADDED_TO_STAGE, init);

以及该侦听器的处理程序

private function init(e:Event):void
{
    removeEventListener(Event.ADDED_TO_STAGE, init);
    // write your code after this
}

如果你在编写框架脚本(在一个框架中编写AS3代码),这实际上不是你的问题。但正如问题所述,您正在调用一些对象,属性或方法witch为null。调试器将能够指向您试图在第2帧上调用的null对象。

相关内容

最新更新