Tweener.registerSpecialProperty(5)
2007/12/20 21:10 - tweener
もうひとつ別のトゥイーンをコーディングして、さらに詳しく registerSpecialProperty を見てみたいと思います。
今回は flash.geom.Matrix を使って実現する表示オブジェクトの歪みをトゥイーンさせてみます。
まずは Matrix.c をトゥイーンさせるサンプル。
100×100 の Shape を作り、それを Matrix でステージ中央に移動。
Matrix.c についてのプロパティ取得・更新メソッドを作成し、registerSpecialProperty で登録。
すると addTween において、あたかも Shape に Matrix を直接操作するプロパティがあるかの如き記述がおこなえる。
構造的には今まで示したテキストフィールドのサイズのトゥイーンとまったく同じですね。
では次に、Matrix.c に加えて Matrix.b を同時にトゥイーンさせたい場合どうすればいいのか。
まずは頭悪いコードから。 Matrix.b、Matrix.c に対して、それぞれ別個にメソッドを用意するパターン。
これはこれでちゃんと期待どおりの動きをしています。
が、しかし! プロパティ取得メソッド _matb_get と _matc_get、プロパティ更新メソッド _matb_set と _matc_set は、ほとんど同じコードであるにも関わらずそれぞれ別個にのメソッドとして存在しているのは如何なものか。
こういう場合、共通部分を抽出し、異なっている部分は引数として外部から読み込むようにコーディングするのがプログラミングというもの。
じゃあ _matb_get と _matc_get、 _matb_set と _matc_set をそれぞれ抽象化し統合するにはどうすんのか。
それは次回の講釈で。
シリーズ
- Tweener.registerSpecialProperty(6)
- Tweener.registerSpecialProperty(4)
- Tweener.registerSpecialProperty(3)
- Tweener.registerSpecialProperty(2)
- Tweener.registerSpecialProperty(1)
関連シリーズ
- Tweener.registerSpecialPropertySplitter(6)
- Tweener.registerSpecialPropertySplitter(5)
- Tweener.registerSpecialPropertySplitter(4)
- Tweener.registerSpecialPropertySplitter(3)
- Tweener.registerSpecialPropertySplitter(2)
- Tweener.registerSpecialPropertySplitter(1)