actionscript 3-1009错误Flash游戏CS4 AS3



我正在编写一个flash游戏,在这个游戏中,球击中了一个电影剪辑对象,这将用户带到一个新的场景。我有三种主要方法:movePaddle、moveBall和changeFrame。

它工作得很好,但当我执行changeFrame方法(球击中电影剪辑(转到一个新的帧时,我得到了一整页1009个错误:

TypeError:错误#1009:无法访问null对象引用的属性或方法。
at FlashGameNEW_fla::MainTimeline/changeFrame()

TypeError:错误#1009:无法访问null对象引用的属性或方法。
at FlashGameNEW_fla::MainTimeline/movePaddle()

TypeError:错误#1009:无法访问null对象引用的属性或方法。
at FlashGameNEW_fla::MainTimeline/moveBall()

这种情况重复了很多次。

如有任何帮助,我们将不胜感激。谢谢

编辑:代码低于

function beginCode():void{
mcPaddle.addEventListener(Event.ENTER_FRAME, movePaddle);
mcBall.addEventListener(Event.ENTER_FRAME, moveBall);
mcBall.addEventListener(Event.ENTER_FRAME, changeFrame);
}
function movePaddle(event:Event):void{
mcPaddle.x = mouseX - mcPaddle.width / 2;
if(mouseX < mcPaddle.width / 2){
    //Keep the paddle on stage
    mcPaddle.x = 0;
}
if(mouseX > stage.stageWidth - mcPaddle.width / 2){
    mcPaddle.x = stage.stageWidth - mcPaddle.width;
}
}
function changeFrame(event:Event):void{
if (mcBall.hitTestObject(Northcote)) {  
    this.gotoAndPlay(3);  
              }
              
}

问题是在第3帧中没有mcPaddle和mcBall的实例(例如,它们现在没有创建,稍后将创建(。检查现有实例:

function movePaddle(event:Event):void {    
    if (!mcPaddle)
        return;
    mcPaddle.x = mouseX - mcPaddle.width / 2;
    if(mouseX < mcPaddle.width / 2){
        //Keep the paddle on stage
        mcPaddle.x = 0;
    }
    if(mouseX > stage.stageWidth - mcPaddle.width / 2) {    
        mcPaddle.x = stage.stageWidth - mcPaddle.width;
    }
}
function changeFrame(event:Event):void{
    if (mcBall && Northcote && mcBall.hitTestObject(Northcote)) {  
        this.gotoAndPlay(3);  
    }    
}

最新更新