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」ぽい。

とりあえずそんな感じ。もうちょっとちゃんと分かってきたら解説します。

この記事を評価する

星1つ星2つ星3つ星4つ星5つ (No Ratings Yet)
Loading ... Loading ...

関連記事

    None Found

Comments (1)

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

Post a comment

Comments links could be nofollow free.