ActionScript

progression:ハマったのでメモ

2008/12/06 土曜日 - 12:59:25 by decama

これまで気になってたけど触れる余裕がなかった Progression を使ってみてる。プロジェクトの生成を3回くらい繰り返してやっと見えてきた。
せっかくのフレームワークなので、動的にシーンの生成をしてやろうと思ってコードを書いてたんだけども、うまくいかない。
何が原因なのかさえ見えないまま1日程時間を費やしてしまったのだけれど、キチンと動作するシンプルなコードから少しずつ機能を実装してて、やっと問題が見えてきた。同じことを繰り返さないようにするためにメモしとく。
とりあえずの結論:AddChildでコンテンツをシーンに追加する際に、そのコンテンツを別のコマンドで定義したりすると、ダメみたい。

XMLを読み込んで、
その内容からコンテンツを生成して、
AddChildしてやる

そんな流れをそのまま SceneObject の _onInit に書いてたんだけど、これだとAddChildしたときに
TypeError: Error #2007: パラメータ child は null 以外でなければなりません。
って弾かれちゃう。コマンド初期化の時点ではまだコンテンツが未定義だってことなんだな。(ちゃんとソース読め<俺)
ってことは、上記の場合だと、2と3を同じコマンドで処理してやる必要があるってことなんだろうけど、そうすると今度は別の問題が起きちゃうで頭抱え中。生成されるコンテンツは、 _onCastAdded にコンテンツのロードやら tween やらを書いてるので、普通にコンテナのaddChildメソッドだとこの処理が起こされない。
うーん、どうしたもんだか。
ちょっとAddChildのソース見て勉強してきます。
途中経過:
Func コマンドでCAST_ADDEDのイベント発行してやりゃいいってことなんだな、きっと。で、どうやるんだ?
そのあと:
とりあえず今回は上記1と2をコマンド使わずにやることで逃げとくかな。美しくないよなぁ、これじゃ。<宿題残すな
結論:
_onLoad で1と2を処理するってことで良かったみたい。こんなことで騒ぐな<俺

ActionScript:maskって

2008/11/04 火曜日 - 11:44:58 by decama

addChildしてやらないといけないんだよなぁ。(笑)
DisplayObject.maskにSpriteを与えただけじゃダメなんだよ。もっと早く気付け>俺
まだよくわかってないThreadを疑ってしまってゴメンなさい。

ActionScript:getDefinitionByName

2008/11/03 月曜日 - 22:14:47 by decama

絶対忘れる自信があるなぁ、これ。
コンパイルされていないクラスの参照をgetDefinitionByNameで呼び出した時、コンパイラはそのクラスを認識しない。とりあえずの逃げとしては、ダミー変数でクラス宣言しておけば大丈夫。

spark project:そうめん試食中

2008/11/03 月曜日 - 17:53:27 by decama

ActionScript Thread Library 1.0 (そうめん)試食中。
どうも最初っから頭の中はスパゲッティになっちゃってるみたいで、まだ線が繋がってくれない。(笑)