Home > fuse kit > Fuseアニメーションの実行順序

Fuseアニメーションの実行順序

Fuseアニメーションの実行順を簡単にまとめておきます。
大事なのは「FuseはArray(配列)である」ということです。基本、Arrayの要素順に実行されます。あとは別途用意されたテクニックをおぼえていけばよいかと思います。

今回は「Fuse Kit」サイト中段の「PDF: "Using Fuse" 」に掲載されているコードを元に、アニメーションの発動順を色分け表示しておきます。
黄色の順に発動します。RSSリーダーの方は色分けとサンプルswfが見えないかもしれませんのでご注意下さい。)

尚、サンプルのコードのコピペのみでは実際には動きません。ステージ上にbox_mc、場合によってはbox1_mc, box2_mcを配置し、以下のコードをフレームスクリプトの先頭に記述、続けて、各サンプルのコードを挿入してください。

import com.mosesSupposes.fuse.*;
ZigoEngine.simpleSetup(Shortcuts, PennerEasing, FuseItem, FuseFMP);
//simpleSetupでは、必要なクラスだけを選択すれば、ファイルサイズの軽量化ができます。

fusePDF_1_1.swf
var f:Fuse = new Fuse({_x:'100', controlY:'-50'},
					{_y:'100', controlX:'50'},
					{_x:'-100', controlY:'50'},
					{_y:'-100', controlX:'-50'});
f.target = box_mc;
f.start();

前述の通り、FuseはArrayを拡張したものです。上の例では、先頭の要素のアニメーションの終了後、次の要素に記述されたアニメーションが開始されます。参考までに、上記コードではトゥイーン方法と時間が未設定なので、デフォルト値の'easeOutQuint'を1秒で実行されます。


fusePDF_4_1.swf
var f = Fuse.open();
	box1_mc.tween("_y", "10", .5);
	Fuse.openGroup();
		box1_mc.tween("_x", "40", .5, "easeInOutBack");
		box2_mc.tween("_x", "50", .5, "easeInOutBack", .1);
	Fuse.closeGroup();
	box2_mc.tween("_y", "20", .5);
Fuse.closeAndStart();

クラスメソッドFuse.open()を使っています。openとcloseで囲まれた命令が、リファレンスとして一旦保存されます。ここではcloseAndStartを使って、閉じると同時にスタートしています。発動順序は、上段のアニメーション完了後、次の行のアニメーションが発動します。さらにこのサンプルではopenGroupメソッドを使用しています。openGroupとcloseGroupで囲まれた命令はグループ化され、同時に発動します。グループ内のアニメーション全てが完了後(ここではbox2_mcが0.1秒待機した分、後に完了する)、次の命令(緑)が発動します。よって上のサンプルでは全てのアニメーションが終了するまでに1.6秒(0.5+Math.max(0.5,0.6)+0.5)かかります。


fusePDF_6_1.swf
var f = new Fuse();
f.push({target:box_mc, start_scale:0, delay:.5});//このアニメーション終了後、
f.push({target:box2_mc, brightOffset:100});//このアニメーションがスタートします。
f.start();

これも1つ目のサンプルと同じ考え方です。startされる時点での、配列の順番が重要なのです。
もう一つ注意点があります。
1つ目のアイテム中"start_scale"とありますが、"start_+(プロパティ名)"で、初期状態のプロパティ値を設定できます。そして、このサンプルではscaleトゥイーンの目的値(例えば"scale:300")が設定されていません。そのような場合、scaleのデフォルト値:100が自動的に設定され、トゥイーンアニメーションします。このように、start_値を設定し、目的の値を設定しない場合、x,y座標は相対位置(0,0)に、alphaやscaleは100に向かってトゥイーンします。


fusePDF_6_2.swf
var f = new Fuse();
f.label = "examplefuse";
f.autoClear = true;
f.scope = this;
f.target = box_mc;

f.push({delay:2, func:"trace", args:"First item done."});//2秒後、トレースを実行
f.push({start_scale:0, delay:.5});//0.5秒後、scaleを0から100までトゥイーン
f.push({brightOffset:100});//明度を100に

f.addEventListener("onComplete", myListenerObject);
f.traceItems();
f.start(true);

Fuse配列の2つ目の要素に注目です。1つ目の要素の命令後、scale0になるのではなく、start時点で既にscaleは0になった状態で始まります。前述のように、目的値が未設定なので、scaleは100に向かってトゥイーンします。


fusePDF_6_4.swf
var f:Fuse = new Fuse(
[//ブラケットを使って3つのアクションをグループ化します
	{start_x:"-100", seconds:1, delay:.25, ease:"easeOutQuint"},
	{scope:FuseFMP, func:"writeFilter", args:[box_mc, "Blur", {blur:0}]},
	{Blur_blurX:20, seconds:.5, ease:"easeInQuad", trigger:true}
],//グループを閉じる
//次のアクションは、前のグループのトリガーが設定されたアクションの完了後に実行されます
{Blur_blurX:0, seconds:.3, ease:"easeOutQuad"}
);
f.target = box_mc;
f.start();

openGroup, closeGroupを使わなくても、Fuse配列を使う場合は、上記のようにブラケット"[ ]"で囲えば、その中のアイテムはグループ化され、同時にスタートします。この時、通常はグループ内で一番時間のかかるアクション(ここでは_xのアニメーション)の後、次のアイテム(0.3秒でブラーを0に戻す)に移行するのですが、triggerを使えば、そのアイテムのアニメーションが完了したら、次のアイテムを開始するように設定できます。


本家ドキュメントを翻訳したものは、FuseKitの次のバージョンアップ後の予定ですが、自分の備忘録も兼ねて、気づいた点をメモしてみました。一応サンプル動作を確認して記事を書いていますが、おかしな点などありましたらコメントいただけると助かります。

追記:数週間以内にFuseKit2.1にバージョンアップする予定だそうです。大幅な仕様変更はないと思うのですが(mxpとコンポーネントが用意されるぐらい?)、ご注意下さい。

Comment:0

Comment Form

コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。

Remember personal info

Trackback:0

TrackBack URL for this entry
http://www.trick7.com/blog/mt-tb.cgi/373
Listed below are links to weblogs that reference
Fuseアニメーションの実行順序 from trick7.com blog

Home > fuse kit > Fuseアニメーションの実行順序

持っている Flash & ActionScript 関連本の中から、自分的おすすめの読む順番をご紹介。各書籍のレビューは books カテゴリからご覧頂けます。
この順番でどう?(AS3.0)
  • Adobe Flash CS3 詳細! ActionScript 3.0 入門ノート (DVD付)
    Adobe Flash CS3 詳細! ActionScript 3.0 入門ノート (DVD付)

    デザイン方面からFlashデビューして、そのままAS2.0を使うようになった人が、難しいと評判のAS3デビューする時の最初の1冊として、とにかく目を通しておくと良いかと思います。プログラミング経験の少ない方でも、サンプルをじっくり読めば、ゼロからのAS3デビュー可。
  • ActionScript 3.0 アニメーション
    ActionScript 3.0 アニメーション
    洋書「Making Things Move!」の日本語訳本。ActionScript3.0で数学的アニメーションを作ることがメインテーマなのですが、前半部分でAS3.0の基礎を分かり易く解説されています。後半の重力, IK, 3D表現等のアニメーション解説も楽しい。僕はこれのAS2.0洋書版を読んでFlashの面白さに気付きました。
  • Essential ActionScript 3.0 (Essential)
    Essential ActionScript 3.0 (Essential)

    900ページ以上ある相当分厚い本。基礎からOOPまでを解説。ほぼ網羅しているので、これを抑えておけばAS3博士になれそう。
  • Actionscript 3.0 Cookbook
    Actionscript 3.0 Cookbook

    ActionScript3.0のリファレンス本。問題とその解決法が1ページぐらいで細分化されているので空いた時間にちょっとずつ読み進められる。WebでAS3のソースを見て勉強する時の字引としても使う。ただ、時期的に初期の本なので、AS3自体が仕様変更してたりするので正誤表は必読。
  • Object-Oriented Actionscript 3.0
    Object-Oriented Actionscript 3.0

    7/23に発売されたFlash&OOP本。AS2.0版は持っているのだけど、オブジェクト指向の初歩的な解説から入って、後半は僕の理解を超える難度になっていきました。今度こそ理解できるか?
この順番でどう?(AS2.0)
  • Foundation Actionscript Animation: Making Things Move (Foundation)
    Foundation Actionscript Animation: Making Things Move (Foundation)

    スクリプトでアニメーションさせる方法を学べる。プログラムの知識というよりも数学や物理の知識が必要。バネの表現や3D表現など、汎用性の高いテクニックを身に付けられ、個人の表現力をレベルアップするのに最適。参考までに、僕が調べた英単語リスト。2007年4月に、AS3対応版も発売されました。
  • ゲーム開発のための数学・物理学入門 Beginning Math and Physics for Game Programmers
    ゲーム開発のための数学・物理学入門  Beginning Math and Physics for Game Programmers

    「Making Things Move!」の世界を突き詰めたい人用のステップアップのための本。行列や物理運動、2D/3D表現。Flashの本ではなく、じっくり読むタイプの本なので、あとまわしにしてもいいかも。
  • Flash 8 Essentials
    Flash 8 Essentials

    Flash8の新機能を紹介。全10章が独立した構成で、興味のある部分から読めます。フィルタやビットマップ、ビデオの使い方とかを、基礎から順を追って理解していけるので、ゼロからスクリプティングできるようになる。僕はビットマップ関連の作業の際のリファレンスとして常用しています。
  • .fla―Idea of Flash Creation
    .fla―Idea of Flash Creation

    上の本でFlash8の基本を身に付けて、それをどう面白い表現に落とし込むかを学べます。深津さんの、試行錯誤・実験しやすいスクリプティング、クラス設計に凄さを感じました。YouTubeやFlickrのAPI、PHPとの連携記事も。
  • FLASH ActionScript 2.0入門完全ガイド+実践サンプル集 [CD-ROM付]
    FLASH ActionScript 2.0入門完全ガイド+実践サンプル集 [CD-ROM付]

    ここまでで表現力が付き、テンションが上がるので、その勢いで難解なオブジェクト指向に挑戦。プログラム経験のない人がいきなり英語のOOP本を読むのは厳しい。この本で継承とかインターフェースとかポリモーフィズムとかの用語を理解しておくといいかも。
  • オブジェクト指向でなぜつくるのか―知っておきたいプログラミング、UML、設計の基礎知識―
    オブジェクト指向でなぜつくるのか―知っておきたいプログラミング、UML、設計の基礎知識―

    Flashの本ではありませんが、OOPの概念を気軽に読めるボリュームで解説してくれます。英語と日本語のOOP用語の対応を図るためにも「Object-oriented Actionscript for Flash 8」と併読するのがおすすめ。なんとなく読んでおくだけでも結構違うのでは。
  • Object-oriented Actionscript for Flash 8
    Object-oriented Actionscript for Flash 8

    前半はOOPの利便性や基本の紹介。デザインパターンやMVCの理解。13章からグッと難しくなって大変。Flash8対応。
  • Essential Actionscript 2.0
    Essential Actionscript 2.0

    上の本よりもさらにOOPプログラマ向け。同じOOP本ということでやや重複しており、こちらはMX2004時代の本なので見送ってもいいかも。分かりやすい英語で良著。この本のAS3版が出たら間違いなく買い。

Page Top