0

ステージにオブジェクトを追加しようとしています。ドキュメント クラスでは、次のコードを使用します。

public function StartGame()
{
    gameClass = new GameClass(this);
    this.addChild(gameClass);
}

ゲームで、ステージの一番下にオブジェクトを追加したいと考えています。その後、画面の外に出るまで上に移動する必要があります。次のコードを追加しました。

public function GameClass(main:MainClass) {
        this.main = main;
        viruslist = new Array();

        this.addEventListener(Event.ADDED_TO_STAGE, init);
    }

    private function init(e:Event):void {
        addVirus(75);
    }

    public function addVirus(xcoor)
    {
        trace("Creating virus");
        var v:Virus = new Virus(this.main, this, xcoor);
        this.addChild(v);
        viruslist.push(v);
    }

次に、Virus クラスで、次のことを行います。

public function Virus(main:MainClass, gameKlasse:GameClass, x:Number) {
        this.main = main;
        this.game = gameKlasse;
        this.xcoor = x;
        this.addEventListener(Event.ADDED_TO_STAGE, init);
    }

    private function init(e:Event):void {
        this.y = main.height;
        trace("Height: " + y);
        trace("Stage height: " + main.height);
        this.addEventListener(Event.ENTER_FRAME, runTime);
        trace("Virus created");
    }

問題は、私のステージがスクリーンの高さくらいだということです。しかし、ウイルスはほぼ一番上に配置されます。私のログは次のとおりです。

ウイルス作成高さ:86 ステージ高さ:156.5 ウイルス作成高さ:156.5 ステージ高さ:227 ウイルス作成

何がうまくいかないのですか?2回作成されるのはなぜですか?ステージの高さが変わるのはなぜですか?オブジェクトが画面の下部に表示されないのはなぜですか?

編集: を使用しstage.stageHeightても同じ結果が得られます。

4

1 に答える 1

1

main.height と stage.height を使用していますが、main と stage には何かを追加するまで高さがありません。したがって、ウイルスを追加すると、高さはゼロより大きくなります。

探しているのは、使用可能な高さを示す stageHeight プロパティです。次の方法で、ステージに追加された任意のオブジェクトでアクセスできます。

stage.stageHeight

幸運を!

于 2013-03-17T19:41:43.580 に答える