外部swfをよみこんだときに、stageがnullな件

2008/06/24

お陰さまでいいのか悪いのか。ドキュメントクラスを書いて、ドキュメントクラスをタイムライン上から呼ぶことがなくしてコンテンツを作れるようになったわけです。

それで、この間はまったわけです。外部swfをロードすると初期化でエラーが出る。調べてみるとどうやらstageの参照がnullらしい。ネットで検索かけてみると、niumさんが書いていました。
→通常読み込みと外部SWF読み込みの処理の違い

HTML上などに貼り付けたswf表示 :
・自身のEvent.ADDEDは発生しない。
・コンストラクタでstageやloaderInfoなどの参照が可能(=自身はADDED済み)。

別swfからLoaderを使用して読み込まれたswf表示 :
・自身のEvent.ADDEDが発生する前にコンストラクタが呼び出される。
・コンストラクタでstageやloaderInfoなどを参照するとnullが返る。
・Event.ADDED発生後は、通常通りstageやloaderInfoなどの参照が可能。

ああ、これなのか。と合点がいったわけです。仕方なく、読み込まれるSWFのコンストラクタで初期化するのはやめて、いったん読み込まれた後、そいつの初期化を読み込み側からたたくことにしました。なので、読み込まれ側は単体では動かなくなりました。デバッグのときはちょっとかきかえるだけでいいから特に問題ないんだけど、誰かいい解決方法ご存じないでしょうか?

それと、niumさんはprogressionの開発をしているだけあってやはりすごい!さきほどの記事書いているのって、CS3なんか出る前なわけでどうやって探ったのかと思うとすごいです。

※以下脱線
今まで書籍とかの情報出揃ってから、勉強始めてたんだけど、もう一歩すすめてBeta版とかさわっていってみようかと思う。Astroとかできるかわかんないけど。

ていうのは、私はかなりのゲームっ子だったんです。今は飽きちゃったのと、時間がないからやらないんですが。それで、次世代ゲーム機とか新しいソフトが出るとかいうとわくわくしてたんです。それらを開発していた人って次世代機だったらソフトでいうBeta版を使って開発して、次世代機の発表と同時にリリースすると。そんなことを今となっては思うわけです。遊んでた当時はわくわくしてただけで、作ってた人たちのことは全然考えてなかった。

それとか、次世代機が出る直前の現役のゲーム機だと、そのハードの機能の限界まで使って使ったゲームとかがあって、当時それを遊ぶと「すげえ!」とかになったわけです。それでやっぱり心に残るゲーム(決して、「感動!」だけでなく「かなり遊んでのめりこんだ」とかそういうの)になりました。そんなものを自分が作れるのかどうかはわかりませんが、Flash界隈のすごい人たちを見習って、そういう姿勢はしていたいなぁと思う今日このごろ。

LINEで送る
Pocket

自作iPhoneアプリ 好評発売中!
フォルメモ - シンプルなフォルダつきメモ帳
ジッピー電卓 - 消費税や割引もサクサク計算!

ページトップへ戻る