preloaderを他で作っておき、swfファイルを読み込むと・・・
「TypeError: Error #1009: null のオブジェクト参照のプロパティまたはメソッドにアクセスすることはできません。」
というエラーが出て、ちっとも先に進みませんでした。

先にstageを参照しちゃうと、「ステージに何もないやんけ!!」と怒っているということは判明したのですが、
オブジェクトの位置をstageからの参照で決めていたり、ブラウザをリサイズしたときに、位置や大きさなどを変更かける内容だったので、
どうすればいいんじゃい!と悩み続けていたのですが、このたび解決しましたので、覚え書きです。

まず、コンストラクタ内にEvent.ADDED_TO_STAGE イベントを登録し、
それまでコンストラクタに一気に書いていた内容を、そのイベントハンドラ内に移す。

public function preLoader() {
addEventListener(Event.ADDED_TO_STAGE, init);
}
private function init(e:Event):void{
stage.scaleMode = StageScaleMode.NO_SCALE;
stage.align = StageAlign.TOP_LEFT;
myResize(null);
stage.addEventListener(Event.RESIZE, myResize);
・
・
・
}

これで、最初stageにぽんっと置かれた状態になるので、
その後stageを参照してもnullだnullだといわれずに済むようなんです。

わかれば、そうかそうかと思ったものの、
ここに考えがたどり着くまでにすご〜く時間がかかってしまいましたね。
私は何するのも時間がかかりすぎて嫌になります・・・

詳解 ActionScript 3.0アニメーション ―衝突判定・AI・3DからピクセルシェーダまでFlash上級テクニック

著者/訳者:Keith Peters

出版社:オライリージャパン( 2010-01-25 )

定価:¥ 3,990

Amazon価格:¥ 3,990

大型本 ( 484 ページ )

ISBN-10 : 4873114373

ISBN-13 : 9784873114378


タグ:, , , ,

関連する投稿