この単純なクラスを作成しました(パッケージディレクティブとインポートがありません)
public class Viewer extends Sprite {
public function Viewer():void {
trace(stage);
}
}
次に、Flash IDEで、最初のフレームにこのASをインポートします。
import Viewer
var viewer = new Viewer();
stage.addChild(viewer);
trace(viewer.stage);
これは期待どおりに機能します。コンストラクターで呼び出された最初のトレースは、DisplayObjectContainerにビューアをまだ追加していないため、ステージが「null」であると言います。2つ目は、ステージオブジェクトを出力します。
そこで、AXDT eclipseプラグインを使用してプロジェクトを作成し、最初のクラスのみを再作成してコンパイルし(FlashIDEで使用されているASinitスクリプトは不要なため破棄しました)、最初のトレースで...すごい...ステージはステージオブジェクトでいっぱい。
AXDT(Flex4 SDKオープンソース)で使用されるコンパイラーは、ステージに既に接続されているDisplayObjectContainerにクラスを構築する前に(!?)..クラスを追加しているように見えます。
構築中のStageに直接アクセスできるように、FlashIDEのコンパイラを使用してこの動作を再現する方法を理解したいと思います。