0

airRaidというフラッシュファイルと2つのクラスを作成しました。それらは同じフォルダにあります。シーンをテストすると、完全に間違ったコードを記述しても、エラーは発生しません。

コードは、movieClipを再生するためのものです。ちゃんとリンクしました。

だから私はairRaidフラッシュファイルを持っています。

VoertuigRaidクラス。コードの半分を削除してもエラーが発生しない場合、表示されるのはブランテストシーンだけです。

package  
{
    import flash.display.*;

    public class VoertuigRaid extends MovieClip
    {

        public function VoertuigRaid()
            {
                var a:Voertuig = new Voertuig("left", 50, 200);
                addChild(a);
            }
    }
}

そしてVoertuigクラス:

package
{
    import flash.display.*;
    import flash.events.*;
    import flash.utils.getTimer;

    public class Voertuig extends MovieClip 
            {
                private var dx:Number;          //Snelheid en richting
                private var lastTime:int;       //Animatie tijd

        public function Voertuig(side:String, speed:Number, altitude:Number)
            {
                if (side == "left")
                    {
                        this.x = -50;       //Start aan de linkerkant
                        dx = speed          //Vlieg naar rechts
                        this.scaleX = -1;   //omdraaien
                    }
                else if (side == "right")
                    {
                        this.x = 50;        //Start aan de linkerkant
                        dx = -speed;        //Vlieg naar links
                        this.scaleX = 1;    //Niet omdraaien
                    }
                this.y = altitude           //Verticale positie van het voertuig

                //Kies een willekeurig vliegtuig
                this.gotoAndStop(Math.floor(Math.random()*5+1));

                //Animatie voorbereiden
                addEventListener(Event.ENTER_FRAME,moveVoertuig);
                lastTime = getTimer();
            }

        public function moveVoertuig(event:Event)
            {
                //Tijd moet passeren
                var timePassed:int = getTimer() -lastTime;
                lastTime += timePassed/1000;

                //Beweeg voertuig
                this.x += dx*timePassed/1000;

                //check to see it off screen
                if ((dx < 0) && (x < -50))
                    {
                        deleteVoertuig();
                    }
                else if ((dx > 0) && (x > 700))
                    {
                        deleteVoertuig();
                    }
            }
        public function deleteVoertuig()
            {
                removeEventListener(Event.ENTER_FRAME,moveVoertuig);
                MovieClip(parent).removeVoertuig(this);
                parent.removeChild(this);
            }
        public function voertuigHit()
            {
                removeEventListener(Event.ENTER_FRAME,moveVoertuig);
                MovieClip(parent).removeVoertuig(this);
                gotoAndPlay(ontploffing);
            }
        }
}
4

1 に答える 1

0

あなたが投稿した詳細は不完全であり、軌道に乗っていないと思います。ただし、ライブラリ内のムービークリップをVoertuigクラスに接続しようとしているようないくつかのことを想定すると、

ライブラリ ムービークリップを使用し、上記の関数で拡張する場合は、ムービークリップのBase ClassではなくClassを設定します。このようなもの:

ここに画像の説明を入力

于 2012-05-28T14:50:17.577 に答える