続いてSceneに色々貼り付けるのに”jp.progression.casts”系を使用してみます。
まずは”AboutScene”。前回で作成した適当なMovieClip”div_scene1″とJPG画像をcast系に変更。bmは以前は”name”を指定していたものを”id”に変更。(一応nameもありますが、getInstanceByIdを検証するためidにしておく)
で、とりあえずコンパイルしてみると”AboutScene”を表示させるタイミングでエラーが発生。
TypeError: Error #1009: null のオブジェクト参照のプロパティまたはメソッドにアクセスすることはできません。
さてこれは何が原因かいな?ということで、考えると”as CastMovieClip”はちと強引だったかしら?ということで、ライブラリの”div_scene1″のリンケージ設定で、基本クラスを”jp.progression.casts.CastMovieClip”に設定。
これでOK。
さて続いて”AboutScene”で生成されて、”ContactScene”で削除される画像のオブジェクトの処理をするために”ContactScene”の中を設定。”_onInit”の中で
としてコンパイル。
“AboutScne”を表示後、”ContactScene”を表示すると、きちんとbm(id=face)が削除される。
ここまではOK。
ただし、その後他のシーンに遷移してまた”ContactScene”に戻ったり、いきなり”ContactScene”に入ったり、用はCastBitmapオブジェクトが存在しない状態だとエラーが出る。
ArgumentError: Error #2025: 指定した DisplayObject は呼び出し元の子でなければなりません。
“if (bm)”では駄目っぽい。
ちと
で何が戻ってきているのか?みてみると
[CastBitmap id=”face” name=”instance26″ group=”null”]
な感じ。addChildされているかどうか?は戻り値には関係ないっぽい。
ちなみに”getChildByName”だとremoveChildしたObjectは”null”で戻ってくる。
なので、addChildされているか否かを判定する必要がある・・。
さて・・・。ちょっとひとまずここで休憩。
added 2008/10/20 22:20
さて続き。”getInstanceById”でaddChildされているか否か?をどう判定するか?
ま、簡単に
としてみる。
ひとまずこれでOK。これがスマートなやり方なのか?は良く分からないけれど・・・。
休憩するほどのことは無かった・・・汗
さて、今後は
- Sceneに関係ないSpriteなどの制御。
- progressionの階層化
- autoLockの解除をして制御できるか?
- 複雑な非同期処理を含んだMovieClip等をSceneに設定しての制御
- 音の制御
- SceneObjectへのアクセスの確認
辺りを検証していければ・・・。