Posts Tagged “progression”

addCommand内でのfunctionについて雑感

Progressionでタイムラインスタイルを使っていて、のaddCommand内で、たとえばこう書いたときの話。
やってることは、p1というシーンを表示したときにp1ページ内のボタンの処理を追加しているんですが、問題はここでの「function()」の使い方。

var p1:SceneObject =new SceneObject()
p1.name ="p1"
p1.onInit =function():void{
this.addCommand(
new AddChild(prog.container.p1Page),
function(){
p1Page._page.btn.addEventListener(MouseEvent.MOUSE_DOWN,function(){
prog.goto(new SceneId("/index/p2"))
//本当はここでif使って、条件によって飛ばすシーンを変えてる
}
);
}
p1.onGoto =function():void{
this.addCommand(
p1Page._page.btn.removeEventListener(MouseEvent.MOUSE_DOWN,arguments.callee);
);
}

addCommand内のfunctionは、無名関数っつーか、関数リテラルとして実行される、と考えると納得できる。こういうのはその場で1回実行される(言い方はわからないけど、クロージャっていうの?)と理解してるんだけど。

javascriptでいう関数リテラルはこんな感じ。↓

(function(v)
{alert(v)}("aho")
);

これだと、jsはすぐに実行されて、画面にアラートが出ます。

今日の発見

  • addCommand内のfunctionは関数リテラル
  • 無名関数でaddEventListenerしたときは、arguments.calleeでremoveできる

ProgressionがFlashプレゼン資料作成に最適な5つのメリット

ふと思い立ったのでメモメモ。

よくFlasherの人がイベントで、凝ったプレゼンを披露して会場が「うおー!!」とテンション上がることがあるんですが、それってよく考えると自作プレゼンクラスを総動員してるんですよね。

それ、Progressionでやったら、超カンタンじゃないすか?

Progressionでプレゼンを作るメリット

  • プレゼンのページをシーンと考えれば、「前へ」「次へ」がコンポーネントで出来る
  • 当然、最初のページに戻るにもルートボタンを使えば一発
  • ページ切り替えは用意されたエフェクトを使える
  • あとでwebで公開するときも簡単
  • つまり、プレゼンの中身だけ作ればいい。

まさに「作りたいものは楽しいところだけ作る」じゃないっすか。

※よく知らずに書いてたんだけど、Slidesっていう拡張を使えばそこら辺もちゃんとカバーしてくれるっぽいですね。さすが!!

cellfusion先生のサンプルを写経しながら1日でProgression(タイムラインスタイル)を学ぶ

※このエントリは、Progression初心者向けです。コマンドって何じゃ? addCommandの中には何を書けばいいんじゃ? というレベルの僕がだいたいの概念を理解したいがために書きなぐるものです。

こちらのサンプルをガン見しながらProgressionのお作法というのを学ぼうと思い立ちました。サンプル自体の紹介記事(cellfusion先生)はこちら。

本当なら「Progressionを使わないとこんな感じになる」という自作サンプルを提示した上で見ていくべきなんですが、とにかくProgressionを把握するためにそのまーんま追っていきます。
さらに言うと、こういうのは頭の中でやってればいいことです。アホ丸出しなので周回遅れの気がします。

構成

・最初のページを表示(overview/news/showcase/supportを読み込むボタンがあるページ)
・画面左にナビゲーションを表示(固定)

構成から考える処理の流れ

・最初のページを表示
・グローバルナビはそれぞれのページのコンテンツリンクと、ブログなどのアンカーリンク
・ナビのボタンを押すとそれぞれのページを表示
・newsではindex.swfと同階層のnews.xmlを読み込んで表示
・showcaseではindex.swfと同階層のshowcase.xmlを読み込んで表示