うむるむ

うむるむ は主に flash 周りの話と美少女ゲーム系の話の二本立てで構成されています。



[ GreenSock ] これだけ覚える(ろ) TweenMax - 09/02/27 17:03 by um

Tweensy が早いとか、Progression に組み込まれてるからやっぱり Tweener だよね、とか、やっぱり Between でしょ。
など色々あるけど、俺はやっぱり TweenMax
だって Max だよ! Max!。控えめな日本人の感覚じゃ Max なんて怖くてネーミングできねって。このインパクトは自分の中で結構デカかった。
というのはどうでもよくて、タイトル通り、TweenMax でこれだけ覚えておけば後は力技と知ったかぶりで何とかなるレベルの事を下に書くよ。初心者もこれだけ覚えれば何とかなるよ。たったの4つ。

● TweenMax.to()
基本中の基本。これに説明はいらないっしょ。

● TweenMax.killTweensOf()
引数に指定したオブジェクトのトゥイーンを終了させる。
delayを指定した時に意図しない動きになるのを避けられる。下にボタンのロールオーバー / アウトの例をば。

private function overAction(mEvt:MouseEvent):void
{
  //ロールオーバー
  TweenMax.to(this, 0.5, {scaleX:1.5, scaleY:1.5} );
  TweenMax.to(this, 0.5, {delay:0.5, scaleX:1.2, scaleY:1.2} );
}
 
private function outAction(mEvt:MouseEvent):void
{
  //ロールアウト
  TweenMax.killTweensOf(this);
  TweenMax.to(this, 0.2, {scaleX:1, scaleY:1} );
}

オーバーで Back.easeOut のような動きをして、アウトでもとに戻る。
TweenMax.killTweensOf の行をコメントアウトした場合、オーバーしてすぐアウトした場合に、overAction の2つ目のトゥイーンが実行されてしまう。
この問題を解決してるのが TweenMax.killTweensOf()。
delay を使っているトゥイーンを打ち消すときによくお世話になる。例えば、登場アクションが終わらないうちに退場させたい時なんかね。

● TweenMax.delayedCall()
一定時間遅らせて、引数にした関数を実行する。
TweenMax.delayedCall(1, func); は TweenMax.to(this, 0, {delay:1, onComplete:func} ); と同じ様なもの。コードが短くなって便利ね。

● TweenMax.killDelayedCallsTo()
TweenMax.delayedCall を打ち消す。
先に書いた TweenMax.killTweensOf と同じ様なもので、実行をキャンセルしたい関数を引数に指定する。
TweenMax.delayedCall を使うときは常にペアでこいつがいる。注意としては、「To」を打ち忘れてエラーが出る事くらい。

以上4つ。
俺はこれで何とかする。相方も一途に TweenMax とのこと。バージョン10になって互換性の問題がどーのこーど言ってたが、何とかなるレベルらしい。3.6から10.09にアップしても上に書いてある事しか使ってなければ大丈夫だそうだ。
もう sequence が無くなってるので、delay や TweenMax.delayedCall を使うケースがあるのでこの2つのkillは非常に使えるよ。というか無いとキャンセル処理の追加でスパゲッティが出来上がるよ。

Tweensy は TweenMax より早い(軽い)結果が Tweensy のパフォーマンスチェックからわかるけど、TweenMax のパフォーマンスチェックでは TweenMax 最強と結果が出る。この辺は実際に自分が使う際に比べて決めるのだけど、とりあえず TweenMax で作ってるから、一部だけ Tweensy にするってのが嫌なんだよね。TweenMax では敷居が高いエフェクトが欲しい時は Tweensy も考えますがね。

« [ wonderfl ] 互いに縛られる2点 | ブログトップ | [ web ] web系の制作会社は年中忙しい? »

トラックバックURL :




管理人 um(うむ)@web界の底辺労働者
連絡先 umroom@gmail.com
twitter http://twitter.com/umroom