Progressionコトハジメ メモ。
投稿者: | カテゴリ FLASH, Tips | 2009 年 6 月 25 日
とりあえず暑くなってきたので、冷麺の代わりに
Progression始めました。
(CakePHPは少し放置プレイ、またそのうち返ってきます)
でもまだ記事にするほどのノウハウもないので
備忘録的メモ。コメント不要。
まずProgression概念メモ。(多くは技評の記事 http://gihyo.jp/dev/feature/01/progressionを参考)
- ProgressionはFlash用フレームワーク。
- HTMLのページのようにシーンを用意して、それらを入れ替えることで簡単にページベースのサイトが作れる。
- ページ固有のURLや右クリック対応やマウスホイール対応など、めんどいことを勝手にやってくれる。
- 固有の概念として「シーン」「キャスト」「コマンド」がある。
- 「シーン」はHTMLでいうところの「ページ的概念」、映画で例えたら「舞台」。
- 「キャスト」はHTMLでいうところの「画像や文字などの要素」、映画で例えたら「俳優」。
- 「コマンド」はHTMLでいうとなんだろ?「ソース+JSなどの処理文?」、映画で例えたら「台本」。
- とりあえず舞台(シーン)を必要な分、俳優(キャスト)を必要な分、用意する(自動的に吐き出されるテンプレートをコピーして準備)。
- それぞれの舞台にいつ誰が登場し、どんな時に場面転換するか(コマンド)を書き込む。また俳優(キャスト)に登場したときにどんな振る舞いをするか、どのように去るか(コマンド)を書き込む。
- 開発スタイルには「クラス」「コンポーネント」「タイムライン」があるが、がっつりフル機能でやるなら「クラス」で開発。
んでスクリプトのお作法的メモ。
- 結構お作法を覚える必要あり。
- Progression用関数山盛り出てくる。でも普段のActionscript ももちろん併用できる。
- コマンドは書いた順に実行していってくれる(非同期処理)。この辺はタイマーやトゥイーンなどの処理のとき、めーちゃ楽。例えばタイマーコマンドの後に別 のコマンドを書けば、タイマー経過後、別のコマンド処理が始まる。わざわざTimerEventListenerを書いてイベントを見張る必要なし。
- この順番に実行するコマンドを「シリアルコマンド」という。別に同時に複数のコマンドを実行したいときは[]でコマンドをくくってやる。すると[]でくくられたコマンドが同時に実行する。これを「パラレルコマンド」という。
- シーンにどのタイミングでどんなキャストが出てきて、どのタイミングでキャストが去っていくか、何をされたときにシーンが変わるのか、という処理が基本、な気がする。
- XMLを読み込んだりできる。
- XMLから自動でシーンを作ったりもできる。
- new Trace(”hogehoge”)でトレース
- new Wait(1000)で1秒待ち
- new DoTweener(some,{ x:100, transition:” easeOut “,time:1 });でsomeをトゥイーン。などなど。
んでシーンのメモ。
- 最初のシーンとして「IndexScene」が用意されている。これがサイトのrootとなる。
- シーンは通常のHTMLページのように階層を持てる。
- それぞれのシーンには「onLoad」、「onInit」、「onGoto」、「onUnload」という状況が用意されている(onDescendとかonAscendもあるが今は無視)。その状況ごとにどのように振る舞うかをコマンドで記述する。
- 「onLoad」はそのシーン自身に到着、もしくはそのシーンの子階層に到着したとき。
- 「onInit」そのシーン自身に到着したとき。
- 「onUnload」はそのシーンから移動(ただし親階層方向への移動、つまり戻る的ニュアンス)したとき。
- 「onGoto」はそのシーンから移動したとき。
- 基本的には「onLoad」に登場させるキャストやらを記述する。
- 「onUnload」に消すキャストやらを記述する
- その2つ以外はあんまり使わないって「むらけん」さんが言ってる。
キャストのメモ。
- シーンやキャストは「クラス」という概念で作られている。必要な場合、手作業でテンプレートからコピーして用意するが、スクリプトで作る(複製する)こともできる。
- キャストは「ボタン型」「スプライト型」「ムービークリップ型」「ビットマップ型」などよく使うものがテンプレートとして用意されている。
- Index.flaにあるライブラリにある要素(ムービークリップなど)をキャストに関連づけてやる(リンケージする)とライブラリの要素を自由に扱える。
- テンプレートをコピーしてクラスを用意した場合は、状況に応じてパッケージ名の修正、およびファイル名、クラス名、コンストラクタを共通に修正する。
- キャストは登場するシーンのコンストラクタ内でインスタンス化しておき、必要な状況(まぁOnLoad)でnew AddChild(addChildしたいコンテナ,addChildしたいキャスト)する。
- ルートとなる表示オブジェクトのコンテナは「progression.container」ぽい。
とりあえずそんな感じ。もうちょっとちゃんと分かってきたら解説します。
この記事を評価する
関連記事
- None Found



「シーン」「キャスト」「コマンド」を映画で例えてもらってるので、非常にわかりやすかったです
こういう概念的な部分ってうまく書けないので参考になります!