1009错误Flash游戏CS4 AS3

时间:2013-01-16 01:08:18

标签: actionscript-3 flash

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

它运行正常但是当我执行changeFrame方法(球击中影片剪辑)转到新框架时,我得到整页1009错误:

  

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

     

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

     

TypeError:错误#1009:无法访问空对象引用的属性或方法。   
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);  
              }

}

1 个答案:

答案 0 :(得分:1)

问题是你在第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);  
    }    
}