progression:ハマったのでメモ

2008年12月6日 (土曜日) - 12:59:25 by decama

これまで気になってたけど触れる余裕がなかった Progression を使ってみてる。プロジェクトの生成を3回くらい繰り返してやっと見えてきた。

せっかくのフレームワークなので、動的にシーンの生成をしてやろうと思ってコードを書いてたんだけども、うまくいかない。
何が原因なのかさえ見えないまま1日程時間を費やしてしまったのだけれど、キチンと動作するシンプルなコードから少しずつ機能を実装してて、やっと問題が見えてきた。同じことを繰り返さないようにするためにメモしとく。

とりあえずの結論:AddChildでコンテンツをシーンに追加する際に、そのコンテンツを別のコマンドで定義したりすると、ダメみたい。

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

そんな流れをそのまま SceneObject の _onInit に書いてたんだけど、これだとAddChildしたときに

TypeError: Error #2007: パラメータ child は null 以外でなければなりません。

って弾かれちゃう。コマンド初期化の時点ではまだコンテンツが未定義だってことなんだな。(ちゃんとソース読め<俺)
ってことは、上記の場合だと、2と3を同じコマンドで処理してやる必要があるってことなんだろうけど、そうすると今度は別の問題が起きちゃうで頭抱え中。生成されるコンテンツは、 _onCastAdded にコンテンツのロードやら tween やらを書いてるので、普通にコンテナのaddChildメソッドだとこの処理が起こされない。

うーん、どうしたもんだか。

ちょっとAddChildのソース見て勉強してきます。

途中経過:
Func コマンドでCAST_ADDEDのイベント発行してやりゃいいってことなんだな、きっと。で、どうやるんだ?

そのあと:
とりあえず今回は上記1と2をコマンド使わずにやることで逃げとくかな。美しくないよなぁ、これじゃ。<宿題残すな

結論:
_onLoad で1と2を処理するってことで良かったみたい。こんなことで騒ぐな<俺

Leave a Reply

XHTML: You can use these tags:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>