1

さて、ここにあります、私はレンガブレーカーゲームを作っています。コードを使用する代わりに手動でステージにレンガを追加できるように、それを構築しようとしています。

ステージ上には、今のところマウスの動きを追っているボール( "Ball")と、ヒットテストコードが入ったレンガのムービークリップがあります。

メインフレームコードは次のとおりです。

import flash.events.Event;

addEventListener(Event.ENTER_FRAME,moveBall);

function moveBall (e:Event):void{
Ball.x = mouseX;
Ball.y = mouseY;
}

レンガのムービークリップ内に書いたコードは次のとおりです。

addEventListener(Event.ENTER_FRAME,checkHit);

function checkHit (e:Event):void{
    if(this.hitTestObject(Ball)){
    trace ("HIT!!");
}
}

それはすべてのコードであり、ボールとレンガはすでにステージ上にあります。これを実行すると、「Symbol'brick'、Layer'Layer 1'、Frame 1、Line 6 1120:Access of undefinedpropertyBall」が表示されます。

6行目は次のとおりです。

if(this.hitTestObject(Ball)){

これを修正する理由と方法を教えてください..オブジェクトをstage.Ballに変更しようとしましたが、それでもエラーが発生します:(

前もって感謝します

4

1 に答える 1

1

どのブリックのスコープにも含まれていないため、エラーが発生Ballします(Ballについて知らない別のタイムラインです)。

parentキーワードを使用してボールにアクセスできます。例:MovieClip(parent).Ballおそらく機能します。

より効率的な提案:ENTER_FRAMEの代わりにaddEventListener(Event.ENTER_FRAME,moveBall);使用するようにこれを変更します。MouseEvent.MOUSE_MOVEそうすれば、マウスが動いている場合にのみ起動します。

于 2012-11-09T18:40:58.463 に答える