Progressionレクチャーメモ
Progression Framework のレクチャー@ nium さんメモ。
とりあえずな定義として、一般的なコンテンツでの表示パターンは大まかにはこんな感じ。
- 常に表示される 例)グローバルナビゲーション等
- 特定階層以下で表示される 例)ローカルナビゲーション等
- 特定のページのみで表示される 例)各ページの内容
- その他、特定の条件下で表示される
4はどう考えても汎用化は無理なので、ココでは無視する。 例えばゲーム的なコンテンツを作るとして、
- 1は、最初に表示させてそのまま放置すればOK
- 2は、例えば product ページに行ったら詳しい製品情報が出る感じで それ以下でずっと表示、それより上の階層に戻った場合は消去 という感じなので、n 階層のページ以上・以下で分岐する処理
- 3は、該当ページに移動してきた場合のみ処理すればOK
で、ココからが本題。2のパターンを実装したい場合、 特定の階層以下でずっと表示、それより上で消去ということは 階層を移動した瞬間が分かれば、そこに処理を書けば自動的に流れがつながるようになる。 Progression のイベントの流れで説明すると、1階層目のシーンから2階層目への移動は、
// 1階層目から2階層目へ移動
onGoto -> onLoad -> onInit
という感じでコールされていく。 コレだけ見ると、 onLoad と onInit 同じなんじゃ?いう感じな訳ですが、 これが1階層目から3階層目までダイレクトに飛んだ場合には、
// 1階層目から3階層目へ移動
onGoto -> onLoad -> onLoad -> onInit
となるらしく、なんと2階層目の onInit が実行されません!
で、基本的に onLoad と onUnload が、 onInit と onGoto がそれぞれ対になっているので、 onLoad で表示したものは onUnload で消去して onInit で表示したものは onGoto で消去すれば破綻なく処理出来るみたい。
上の例で言うと、第3階層から第1階層にダイレクトに移動した場合、
// 3階層目から1階層目へ移動
onGoto -> onUnload -> onUnload -> onInit
というイベントフローになるので、第2階層目の onGoto は実行されない。
ココまでの流れの中で、実はちょっと省略したところがあって、 本当は第1階層から第3階層に行く時には、
// 間にonDEscendなイベントがコールされる
onGoto -> onLoad -> onDescend -> onLoad -> onInit
になるよ。
onDescend の使い道としては、 例えば第2階層以下で表示したい内容を、 第2階層に遷移してきた場合にはエモーショナルなアニメーションで表示して、 2階層目を飛ばしてさらに下にダイレクトに飛んだ場合は省略アニメーションをしたい場合、 onDescend に省略アニメーションを仕込んでおく事で実装出来るよ。
ココらへんは、 nium さんもあまり使わないぐらいの応用編らしく、
とりあえずは「スルーしたよ。」というのも検知できると、
どこからどこに飛んでも確実に、かつドラマティックに画面を再現できるようになるよ!って事らしい。
実際にそれをやる場合には、 onLoad の処理と onDescend の処理が重複しないように、
Progression クラスが持っている destinedSceneId とかで判別してやる必要がある訳ですが、
それでも、個々の画面をほとんど意識しないで実装出来るってのは素敵!
onGoto と onUnload も同じ感覚で出来ちゃうと思うよ ![]()
- Posted at:
- 2008/04/05 05:15:15
- 0 Comments
- 1 TrackBack
- Trackback:
- http://humming.via-kitchen.com/2008/04/05/progression-lecture-memo/trackback/
TrackBacks
[CSS][HIGE][その他]巡回 - 常山日記
Subversion Repository checker - Commit Monitor Designing the Digg Header: How To & Download 100 Photo Effects Photoshop Tutorials BB Petie Boy Original Font from Bittbox かっこいいメニューボタンの作り方 Progressionレクチャーメモ ブラウザのCSS対応状況が一
- Created at:
- 2008/04/05 17:28:07
Comments
まだ登録されていません。