1

メソッドを使用してメイン ステージにオブジェクトを追加しようとしていますaddChild()。通常、FLA 自体で作業する場合は、 を使用しaddChild(myObject)ても問題なく動作します。ただし、外部 AS クラス内では機能しません。

私が見つけた他のすべてのチュートリアルは、このようなことを行う方法を教えてくれましたが、これは私が必要としているものではありません:

var myMovieClip:MovieClip = new MovieClip();
myMovieClip.addChild(myObject); // Works great, but not what I need

外部 AS クラスを介してメイン ステージにオブジェクトを追加する方法を教えてください。

お時間をいただきありがとうございます。

4

3 に答える 3

2

これがドキュメントクラスまたは有効なステージ参照を持つクラスである場合は、次を使用できます。

stage.addChild(myObject);

編集-例を追加しました。

これは、EventDispatcherを拡張し、「ステージ」のパラメーターを渡すクラスの例です。

まず、クラス:

package {

    import flash.display.MovieClip;
    import flash.display.Stage;
    import flash.events.EventDispatcher;

    public class MyClass extends EventDispatcher {

        private var _stage:Stage;

        public function MyClass(stage:Stage) {
            _stage = stage;

            var mc:MovieClip = new MovieClip();
            _stage.addChild(mc);
        }
    }
}

そして使用法(これが'stage'への参照を持つクラスからのものであると仮定して):

var obj:MyClass = new MyClass(null, this.stage);
于 2011-05-31T20:37:32.430 に答える
0

すでに次のことを試しましたか?

stage.addChild(myObject)
于 2011-05-31T20:37:41.557 に答える
0

コーリーの方法は機能します。彼の例のように EventDispatcher を拡張する必要はありません。

彼の例で重要なことは次のとおりです。

private var _stage:Stage;
public function MyClass(stage:Stage) {
_stage = stage;

var mc:MovieClip = new MovieClip();
 _stage.addChild(mc);
}

彼がそれを参照する _stage 変数をどのように使用しているかに注目してください。

于 2013-09-01T09:31:04.830 に答える