0

コンテナ内でアニメーションを中央に配置する方法について質問があります。

これはコンテナーまたはローダーです。

    public function Main():void
    {
        trace("Constructor...");

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

    public function addEvent(e:Event):void
    {
        trace("AddedToStage");

        this.stage.scaleMode = StageScaleMode.NO_SCALE;
        this.stage.align = StageAlign.TOP_LEFT;

        var url = new URLRequest("testfile.swf");
        movie = new Loader();
        movie.contentLoaderInfo.addEventListener(Event.COMPLETE, this.eventComplete);
        this.stage.addChild(movie);
        movie.load(url);
    }

    public function eventComplete(e:Event):void
    {
        trace("Complete...");

        movie.x = (this.stage.stageWidth - movie.width) * 0.5;
        movie.y = (this.stage.stageHeight - movie.height) * 0.5;
    }

これは、シーンにあるオブジェクトでは完全に機能しますが、actionscript で追加されたオブジェクトでは機能しません...次のように:

    public function Main():void
    {
        trace("Constructor of included file!");

        stage.scaleMode = StageScaleMode.NO_SCALE;

        var movieclip = new symbol_an();
        stage.addChild(movieclip);
    }

解決策はありますか?

よろしくお願いします。

4

1 に答える 1

0

それが機能していないとはどういう意味ですか、2番目の関数はあまり表示されません...コードの2番目の部分では、最初の関数と同じように実行できます。基本的に、コンテナーとその子の幅を取得し、減算します。次に、結果を2で割ります。それが機能するためには、幅または高さのプロパティが実際に値を持っていることを確認する必要があります。これは特定のアプリケーションに依存するため、詳細情報がないと役に立ちません。

2番目の部分では、ADDED_TO_STAGEイベントリスナーがありません。ステージ値がnullになる可能性があるため、エラーがスローされる可能性があります。

于 2010-08-13T16:19:30.607 に答える