Case study of Progression. vol.2

June 2, 2009

はいどうも。前回のvol.1が割と需要あったようなので、vol.2のモチベーションがまだあります。

今回は分かってる人にとっては、当たり前のようなtipsになってしまうかもしれませんが、
ProgressionのコアであるSceneの推移についてのお話です。

難しく考えすぎている方もいらっしゃるようなので、シンプルに考えられるように心がけます。
SceneEventには、onLoad, onDescend, onInit, onUnload, onAscend, onGotoと、6つのイベントが用意されています。
そしてこれをうまく使うことこそがProgressionの利にもつながるわけです。

とはいえ、6つのイベントを覚えなきゃいけないのかぁ。メンドイなぁと思うと思います。
そんな方に朗報。最初は onLoadとonUnload だけ覚えれば大丈夫です。
というか、大概のサイトはこの2つで作れるんじゃないかという位
、その2つが重要です。

まぁでもせっかくあるので使いたいので、わかりやすく図にしてみました↓。

図の中に緑の部分がありますが、これは一旦棚に上げて解説します。赤と黒だけ見てください。

onLoadはそのシーンに親側から来た時に最初に発生するイベントです。
その後、そのシーンで止まる場合はonInit。通過する場合はonDescendが発生します。 

onUnloadはそのシーンから親側へ推移していく時に最後に発生するイベントです。
子供からそのシーンを通過して親へ向かうときはonAscend、そのシーンが出発点で親へ向かう場合はonGotoが発生します。
で、そのあとにonUnload。

というわけで、簡単に言うとonInitとonDescendはonLoadに含まれて、onGotoとonAscendはonUnloadに含まれていると言えます。(※緑は例外)

ですから、プログラミング的には onLoadにonInitとonDescendの共通処理を書き、分岐する必要があるときだけonInitとonDescendを使えばいいわけです。

逆方向で言うと、onUnloadにonGotoとonAscendの共通処理を書き、分岐する必要があるときだけonGotoとonAscendを使えばいいわけです。

というわけで、僕がコーディングするときは、ほとんどonLoadとonUnloadばっかり使います。たまに、onInit、onGoto、onDescend辺りを使う感じです。onAscendに関しては使ったことないです。(onUnloadに書いて終わり)

最後に棚に上げといた緑の部分についてです。

これはもう例外と考えましょう。以下のようにonGotoとonInitは使う時に、以下のように分岐処理を書けば良いです。


protected override function _onGoto():void {
    if (sceneId.contains(progression.destinedSceneId) {
        //緑
    }else {
        //赤
    }
}
protected override function _onInit():void {
    if (sceneId.contains(progression.departedSceneId) {
        //緑
    }else {
        //赤
    }
}

4 Comments »

  1. [...] その2つ以外はあんまり使わないって「むらけん」さんが言ってる。 キャストのメモ。 [...]

    Pingback by | キテレツ荘 — June 25, 2009 @ 12:32 am
  2. [...] 参考になる記事 http://fladdict.net/blog/2008/11/progression_study1.html http://humming.via-kitchen.com/2008/04/05/progression-lecture-memo/ http://www.muraken.biz/blog/2009/06/02/case-study-of-progression-vol2/ [...]

    Pingback by RESOUND — August 1, 2009 @ 10:16 am
  3. [...] あとはMurakenさんのエントリとか、gihyoのnorthprintさんのエントリが分かりやすいです。 だいたいはMurakenさんのエントリの通り、atSceneLoadとatSceneUnloadでいけたりします。atSceneInitとatSceneGoto [...]

  4. [...] しましょう、当たり前ですが。 下記サイトに書かれているとおり基本”onLoad“と”onUnload“という考え方が良さそうです。 http://www.muraken.biz/blog/2009/06/02/case-study-of-progression-vol2/ [...]

    Pingback by Progression備忘録 | TRININE — March 17, 2010 @ 3:33 am

RSS feed for comments on this post. TrackBack URI

Leave a comment

This work is licensed under a Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License.
(c) 2012 Muraken.biz | powered by WordPress with Barecity