前の記事でwikiの日本語訳(微妙かも?)もしたことなので、
それとこのASDocを見ながらよく使いそうな事例をもとに
TweensyOriginalを使ってサンプルを作ってみまーす!
Tweensyを使う準備
Tweensy0.2.zipをダウンロード
解凍したファイルの
releases/source/cs3 or cs4/originalフォルダを適当なところに保存。
flashを開いて環境設定でTweensyOriginalのクラスパスを通す。
Tweensyのイージングの感じをシュミレーションするのには
SCRATCHBRAINさん作のこのツール使いました。あーたす!
作った3つのサンプル
三つのサンプルに共通するところ
- mcをクリックしたら一時停止、再クリックで再開する。
- 完了イベントを取得、完了したらマウスイベント削除。
- ムービークリップのサブクラスである。
TweensyOriginalサンプル1
mcが右から左に 移動して、2秒後に完了。
- TweensyTimeline使う
- イージング使用
- トゥイーンの遅延
- プロパティpausedで条件判定して、トゥイーンの一時停止・再開
- トゥイーン完了イベント取得
Sample1.as
- package {
- import com.flashdynamix.motion.*;
- import fl.motion.easing.*;
- import flash.display.MovieClip;
- import flash.text.TextField;
- import flash.events.MouseEvent;
- import flash.events.Event;
- /**
- * ...
- * @author kanariia
- */
- public class sample1 extends MovieClip {
- private var tween:TweensyTimeline;
- private var tf:TextField;
- public function sample1() {
- //テキストフィールドを作成、追加
- tf = new TextField();
- tf.x = 0;
- tf.y = this.height;
- addChild(tf);
- //x軸0から450まで5.0秒かけてQuartic.easeOutで動かす
- tween = Tweensy.fromTo(this, { x:0 }, { x:450 }, 5.0, Quartic.easeOut);
- //目的地についたら一秒待つ
- tween.delayEnd = 2.0;
- //トゥイーンが完了したら、completeTween関数を実行
- tween.onComplete =completeTween;
- //イベントリスナー登録
- addEventListener(MouseEvent.CLICK,pauseTween);
- //オーバー時のマウスカーソルの形状人差し指に
- buttonMode=true;
- }
- public function pauseTween(e:Event) {
- if (tween.paused) {//一時停止してたら再開
- tween.resume();
- tf.text="再開したよ";
- } else {//そうでなければ一時停止
- tween.pause();
- tf.text="一時停止したよ";
- }
- }
- public function completeTween():void {
- tf.text = "完了したよ";
- //イベントリスナー削除
- removeEventListener(MouseEvent.CLICK, pauseTween);
- //オーバー時のマウスカーソルの形状デフォルトに
- buttonMode = false;
- }
- }
- }
TweensyOriginalサンプル2
mcが左右に移動するのを3往復する。
- TweensyTimeline使う
- イージング使用
- トゥイーンの繰り返し(3往復)
- プロパティpausedで条件判定して、トゥイーンの一時停止・再開
- トゥイーン完了イベント取得
Sample2.as
- package {
- import com.flashdynamix.motion.*;
- import fl.motion.easing.*;
- import flash.display.MovieClip;
- import flash.text.TextField;
- import flash.events.MouseEvent;
- import flash.events.Event;
- /**
- * ...
- * @author kanariia
- */
- public class sample2 extends MovieClip {
- private var tween:TweensyTimeline;
- private var tf:TextField;
- public function sample2() {
- //テキストフィールドを作成、追加
- tf = new TextField();
- tf.x = 0;
- tf.y = this.height;
- addChild(tf);
- //x軸0から450まで1.5秒かけてQuartic.easeInOutで動かす
- tween = Tweensy.fromTo(this, { x:0 }, { x:450 }, 1.5, Quartic.easeInOut);
- //トゥイーンの繰り返し
- tween.repeatType = TweensyTimeline.YOYO;
- tween.repeats = 3;
- //トゥイーンが完了したら、completeTween関数を実行
- tween.onComplete =completeTween;
- //イベントリスナー登録
- addEventListener(MouseEvent.CLICK,pauseTween);
- //オーバー時のマウスカーソルの形状人差し指に
- buttonMode=true;
- }
- public function pauseTween(e:Event) {
- if (tween.paused) {//一時停止してたら再開
- tween.resume();
- tf.text="再開したよ";
- } else {//そうでなければ一時停止
- tween.pause();
- tf.text="一時停止したよ";
- }
- }
- public function completeTween():void {
- tf.text = "完了したよ";
- //イベントリスナー削除
- removeEventListener(MouseEvent.CLICK, pauseTween);
- //オーバー時のマウスカーソルの形状デフォルトに
- buttonMode = false;
- }
- }
- }
TweensyOriginalサンプル3
mcがステージを一周する数珠繋ぎトゥイーン。
- TweensySquenceを使う
- イージング使用
- プロパティpausedで条件判定して、トゥイーンの一時停止・再開
- トゥイーン完了イベント取得
Sample3.as
- package {
- import com.flashdynamix.motion.*;
- import fl.motion.easing.*;
- import flash.display.MovieClip;
- import flash.text.TextField;
- import flash.events.MouseEvent;
- import flash.events.Event;
- /**
- * ...
- * @author kanariia
- */
- public class sample3 extends MovieClip {
- private var sequence:TweensySequence;
- private var tf:TextField;
- public function sample3() {
- //テキストフィールドを作成、追加
- tf = new TextField();
- tf.x = 0;
- tf.y = this.height;
- addChild(tf);
- //トゥイーンシーケンスを定義
- sequence= new TweensySequence();
- sequence.push(this, {x:0, y:0}, 1,Quartic.easeInOut);
- sequence.push(this, {x:500, y:0}, 1,Quartic.easeInOut);
- sequence.push(this, { x:500, y:350 }, 1,Quartic.easeInOut);
- sequence.push(this, { x:0, y:350 }, 1, Quartic.easeInOut);
- sequence.push(this, {x:0, y:150}, 1,Quartic.easeInOut);
- sequence.start();
- //トゥイーンが完了したら、completeTween関数を実行
- sequence.onComplete =completeTween;
- //イベントリスナー登録
- addEventListener(MouseEvent.CLICK,pauseTween);
- //オーバー時のマウスカーソルの形状人差し指に
- buttonMode=true;
- }
- public function pauseTween(e:Event) {
- if (sequence.paused) {//一時停止してたら再開
- sequence.resume();
- tf.text="再開したよ";
- } else {//そうでなければ一時停止
- sequence.pause();
- tf.text="一時停止したよ";
- }
- }
- public function completeTween():void {
- tf.text = "完了したよ";
- //イベントリスナー削除
- removeEventListener(MouseEvent.CLICK, pauseTween);
- //オーバー時のマウスカーソルの形状デフォルトに
- buttonMode = false;
- }
- }
- }
試す前にちょっとFlaファイルをいじる
Flashで適当なMCを作成。
ライブラリのリンケージ設定で、作ったmcにのサブクラスを定義。
ステージ上にmcを配置。
パブリッシュ、でOK。
つまづいたとこ
トゥイーンの繰り返しをしようと思って、
自分のブログのトゥイーンの繰り返しの説明のとこから、
Tweensy.YOYO; をコピって
コードにコピーしたら未定義とかいってエラー。。。
なんでなんでと調べるが、しばらく意味わからず。
じゃあ、しょーもないことやった。。
Tweensy使ってるとき→Tweensy.YOYO
TweensyTimeline使ってるとき→TweensyTimeline.YOYO
そらTweensyTimelineやのにTweensy.YOYOって書いたら怒られるよなぁ。。
みなさまコピペには注意ですw(あ、自分だけかw)
感想
Tweensyいい!繰り返しトゥイーンが二行で簡単!
数珠繋ぎトゥイーンもすんなりできました!
今回TweensyじゃなくてTweensyTimeline使った理由は特にないけど、
なんかプロパティとメソッドが充実してたから、こっち使ったほうがいいのかなと。。
あと、呼び名は「トゥイーンジー」に一票ヾ(゚∀゚)ノ
関連する投稿
Comments:2
- scratchbrain 09-02-27 (金) 9:56
-
ツール使って頂いたみたいで、うれしいです!
僕もいろいろ参考にさせて頂いています。 - kanariia 09-02-27 (金) 15:07
-
ツールすごく助かりました!
これからもどんどん使わせていただきますっ★
躓いてばかりのブログですが、
参考にしていただいてるなんて、ありがたいです!
Trackbacks:1
- Trackback URL for this entry
- http://kanariia.com/blog/archives/389/trackback
- Listed below are links to weblogs that reference
- [tweensy]いろいろ試してみる:onComplete、YOYO、TweensySquence from kanariia.com blog
- pingback from [AS3.0] Tweensyを少し試す。 - blog.ao-design 09-02-01 (日) 12:52
-
[...] ・[tweensy]tweensyについてググる、tweensyについて知る ・[tweensy]いろいろ試してみる:onComplete、YOYO、TweensySquence ・[tweensy]いろいろ試してみる:TweensyGroupで特殊プロパティをトゥイーン [...]
