Ver.2で途中まで手を付けたままで、なかなか先に進めずにいたprogression。
改めてVer.3で最初からやり直してみる。
同じタイミングでtrick7さんもスタートしている。trick7.com blog: やっと Progression3 をさわりはじめたメモ 多分こちらの方がヨタヨタ展開の予感。
まずprogression.jp | ドキュメント | クラス制作ガイドで一通り実装。色々基本的な項目がパッケージ化されていて便利。元のAS3を忘れそうで恐ろしいw
この時点での感想・疑問点としては
- シーンが遷移中にボタンが自動的にKILLされている。これは便利な面もあれば不便な面もある。任意で解除できるのかは追って調べる。(ただ解除したらコマンド系非同期処理になにか破綻が出てくるかもしれない)
- flashVarsにJSONを良く使用するのでindex.htmlにJSONを組み込みたいのだけど、テンプレートをどう修正すれば良いのか良く分からない(SWCの中?)。これも追って調べる。
- データ構造がまだきちんと分かっていない。Indexの中のnew Progressionの第3引数でrootClass(ガイドではindexScene)を定義しているが、ここをnullにした場合どういう状態になるのか?(暗黙的にindex?)
- IndexSceneの中で他のシーン(About,Contact)を生成している理由は?情報構造的にindexSceneの子供という考え方?
- Sceneに複数のcastを割り振りできなくなった?(多分できるけど)
勉強会に行きたいのだけど、いつも都合が合わず欠席している。
次回こそなんとしても行きたい。
4.についてはIndex.asの中でも可能。Progressionオブジェクトに対して
と言う感じで、ただここで”root”と言うのは第3引数のrootClass:SceneObjectのことを意味している。つまり”about”,”contact”は”index”の子供ということ。(まぁハッシュ使ってるんだからそうだわな・・・”#=index”とすれば”#about”はindexの子供ということ。
add 2008/10/20 15:15
IndexでSceneもButtonも一気にまとめて作ってしまう。実制作ではグローバルナビ系(MovieClipになるのか、データ構造になるのかはさておき)のClassの中で定義する形になると思うが・・・。
ここでのTempScene というのはSceneObjectを拡張したもの(シーン名表示だけ追記したもの)。TempButton はCastButtonを拡張したもの。コンストラクタでsceneId = new SceneId( initObject.sid );として、シーンIDを引き渡しているだけ。
これで4)の疑問点はややクリア。(progの参照をどこからでもできるか?を検証)
この状態で階層化しない構造のサイトの設定はまぁできたかな・・・。多分・・・。
次は3),5)辺りの階層化した場合の設定とか・・・。
2008/10/20 15:26
あ、CastButtonへのsceneId の引渡しはinitObjectとか使わずに
tempButton.sceneId = myScene.sceneId;
でよかった。
ただこの場合コンストラクタでボタン名にsceneIdを使うのはできないね。リスナーとあるのかな?
いや、まだ全部プロパティとかメソッド把握して無くって・・・・汗
2008/10/20 15:48
CastButtonでsceneIdが変更されたタイミングは”CastEvent.UPDATE”を用いて取得可能。
このへん
ちとCastEventの構造を把握してないのだけど、通常のEventと同じ構造かしら?
add 2008/10/20 15:59
一応CastButtonで”update”イベントを発動する”_updateProgression”はsceneIdのsetterとProgressionインスタンスがコレクションに登録された”_collectionUpdate”の2つの場合だけで、
ということでTempButtonの中は
とかで良いかしら?(いや別にevent.targetじゃなくてもsceneIdでも良いけど)
まぁ実際はラベルにsceneIdを使うことは無いからここまでやる必要はまったくないのだけど・・。
しかしProgressionの元Classの中に見慣れない記述が結構あって、ドキドキする。
「progression検証 #1」への2件の返信
trick7さんのエントリもそうですが、僕自身手探りで勉強していたので、他人がどうやって使っているのかを見せてもらえるのは、すごく参考になります。感謝です。(TдT)/
いえ、こちらこそ手探りなので役に立つか微妙ですが・・・。