0

ボールがムービークリップオブジェクトに当たるフラッシュゲームをコーディングしています。これにより、ユーザーは新しいシーンに移動します。私には3つの主要なメソッドがあります: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);  
              }
              
}
4

1 に答える 1

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);  
    }    
}
于 2013-01-16T08:07:28.913 に答える