2010/01/20 15:09

独り言

  

Tweenerメモ ~引数を渡したり色々したい~

今更ですが、とても便利なTweenerに関してメモ。

何が便利って、面倒な時とても便利。
結局は色々と不便だったり制御しきれない箇所もあるので、もちろん万能とは言えないですが、手っ取り早く処理したい箇所や、ここでしか使わないから他への影響を考える必要もないなど、とにかくプログラムを書くのが面倒な時に便利。

そんなTweenerは、色々なパラメータを操作してアニメーションをするだけではなく、アニメーション後に関数を呼んだりとにかく便利。

例)
Tweener.addTween(this, { x:800, time:1, delay:1, transition:”easeInCubic”, onComplete:func, onCompleteParams:[this] } );
要約すると、「これを一秒後に一秒かけてx座標800のところまで徐々に加速しながら移動させて、それが終わったらfuncっていう関数にこれを引数として渡して呼び出せ」ってこと。

これをたった一行で完結させて、かつアニメーションの仕方を書く必要がないというのは本当に便利。
もちろん、x座標のみならず複数のパラメーターを操ることも出来ますし、拡張すればフィルタまで操作可能。

ただし、注意も必要です。
まず、関数に引数を渡す必要がない場合はonCompleteParamsは不要。
基本的に、Tweenerは連想配列形式で引数を渡すような設計で、かつ記入がなければ無視されるという賢い設計なので不要なものは書く必要なし。
また、onCompleteParamsを使用して引数を私体場合は、上記してあるように配列形式で渡す必要があります。

ちなみに、わざわざファンクションを書くっていうことすら面倒という人は、無名関数を使用することによってさらに省略可能。
例)
Tweener.addTween(mc, { alpha:0, onComplete:function(){this.visible = false;} } );
要約しますと、「mcを即アルファ0にして見えなくして、それが完了したらmcのvisibleをfalseにしてPCの負担を軽減してあげて」ということ…かなり意訳ですがw

しかし、上記を見たら何故わざわざこれを書いたのかが分かるはず。

mcをターゲットにしているのに、無名関数ではthisを用いてアクセスする…つまり、(以下は書き方が適当です。プログラマぶって他人にかっこつけて言わない方がいいと思われます)Tweenerはターゲットを引数として渡され、かつ無名関数を使用して関数を呼ぶと、その無名関数はターゲットのクラスが所有している関数として処理するわけです。
当然のことながら、Tweenerを呼んだクラスへは自らをターゲットとしない限りthisを使用してもアクセスできません。

ちなみに、無名関数を使用せずに普通に既存の関数名を書くとそれはちゃんと適切に処理してくれます。

ここらへんをきちんと押さえておけば、より幸せな手抜きライフが遅れるのではないでしょうか?

最後に、transitionで引き渡すことが出来るモーションの種類はこちら

TrackBack :

Comments






使用可能タグ: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>