-1

私はこれを何日も解決しようとしてきましたが、何が着ているのかわからないので、「キャラクター」と「キャンディー」の間にhitTestを追加しただけです。動作を開始すると、エラー#1009が発生します。nullオブジェクト参照のプロパティまたはメソッドにアクセスできません。「キャンディ」49行目

「キャンディー」クラス

public class Candy extends MovieClip
{
    public var leadingMover:Mover;
    public var mainColliderCandy:Character;
    public var hit:MovieClip;
    public var hitParent:*;
    public var candy:MovieClip;


    public function Candy()
    {
        addEventListener(Event.ADDED_TO_STAGE, allLoaded);
    }

    private function allLoaded(event:Event):void
    {
            hitParent = event.currentTarget.parent;
            candy = MovieClip(this.parent.getChildByName(this.name));
            hit = hitCandy_mc;
            addEventListener(Event.ENTER_FRAME, update);
    }

    private function update(event:Event):void
    {
        if(leadingMover)
        {
            y +=leadingMover.speed;
        }
        else
        {
            leadingMover = Mover(parent.getChildByName("bg_mc"));
        }

        if(mainColliderCandy && candy)
        {
            if(hit.hitTestObject(mainColliderCandy))
            {

            //mainColliderCandy.collidedWithCandy(this);

                if(candy)
                {
                    //mainColliderCandy = null;
                    this.parent.removeChild(candy);
                }   
            removeEventListener(Event.ENTER_FRAME, update);
            }
        }
        else
        {
            mainColliderCandy = Character(parent.getChildByName("character_mc"));
        }
    }

}

}

ありがとう!

4

1 に答える 1

0

エラーが行にある場合

this.parent.removeChild(candy);

this.parentですnull。追加したほうがいいと思います

candy.removeEventListener(Event.ENTER_FRAME, update);

中括弧の内側、50行目。コードが何をすべきかよくわかりませんが、行でやりたかったことかもしれません

removeEventListener(Event.ENTER_FRAME, update);

thisただし、削除されたキャンディーの代わりにリスナーを削除します。

于 2013-02-25T19:57:53.867 に答える