1

免责声明:我在 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);


}

老实说,我不知道为什么会这样。我正在使用鼠标事件而不是按钮按下事件等等,因为我的电影剪辑开始消失和闪烁以及其他无法解释的东西......

是的...

4

2 回答 2

0

在给出参考之前,您可能只是在解决“阶段”。开始你的代码:

addEventListener(Event.ADDED_TO_STAGE, init);

和这个监听器的处理程序

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

如果您正在编写框架脚本(在框架中编写 AS3 代码)这不是您的问题。但正如问题所述 - 您正在调用某些对象的属性或方法,女巫为空。您的调试器将能够指向您尝试在第 2 帧调用的空对象。

于 2013-08-19T00:39:25.413 回答
0

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

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

于 2013-08-18T18:21:11.137 回答