home > 投稿 > CS3のAS3のUIコンポーネントの初期化タイミング
2007/11/12

CS3のAS3のUIコンポーネントの初期化タイミング


ようやくCS3のAS3を触りつつあります。今日はコンポーネントでつまづきました。

ステージ上にUIコンポーネントを配置した時、

そのコンポーネントを保持しているクラスのコンストラクタでモロモロのパラメータを設定しても、

「コンポーネントインスペクタ」で設定されているパラメータで上書きされてしまう。

ように思われるのですが、これは当然の挙動なのでしょうか。


これを回避するには、

・1フレーム待って、「コンポーネントインスペクタ」の設定が終了してからさらに上書きする。

・コンポーネントをステージに配置せず、スクリプトでnewして生み出す。

という2つの方法がある気がします。

前者はコーディングが複雑になってしまうし、後者はせっかくFlashなのにスクリプトでレイアウトする必要がでてきて面倒です。


どうしたらいいのでしょうか。

トラックバックURL

http://faces2.bascule.co.jp/mt/mt-tb.cgi/543

コメント一覧

AS2 時代も同じでしたので、恐らく仕様だと思います。 その時は対策として doLater() メソッドがあったのですが、今回はないようなので 1 フレーム待ちというのは推奨されてないのかなという気もしました。 推奨されている方法はちょっと分からないのですが、とりあえず Event.RENDER もしくは Event.ADDED_TO_STAGE が発生した際に初期化する方法で問題なく動作するようです。
おお、なるほど。ここでイベントを利用するのですね。 そうとは知らず、一度フラッシュ上でコンポーネントをレイアウトしたものをガイドレイヤーにし、スクリプトでコンポーネントを生成しなおして座標とか指定してました。。。 一気にすっきりしました。ありがとうございます!

コメントを投稿

(コメントには承認が必要になることがあります。承認されるまではコメントは表示されません。)