- Tweener : Public Static Method

使った印象として、
削除が重要だったりする。

yajinfusa.jpg















●addTween(scopes:Object , info:Object);

scopes            配列で複数指定可
info             
         * @param        .time    Number
         Time in seconds or frames for the tweening to take (defaults 2)
          デフォルトは2って書いてあるが、ソースを見ると、0だ。

         * @param        .delay    Number    
                 Delay time (defaults 0)
         * @param        .useFramesBoolean
         Whether to use frames instead of seconds for time control (defaults false)

         * @param        .transitionString/Function        
         Type of transition equation... (defaults to "easeoutexpo")
         内部ですべて小文字に変換しているので、大文字小文字を区別しません。

         * @param        .onStartFunction        
         * Direct property, See the TweenListObj class

         * @param        .onUpdateFunction        
         * Direct property, See the TweenListObj class

         * @param        .onCompleteFunction        
         * Direct property, See the TweenListObj class

         * @param        .onOverwrite        Function        
         * Direct property, See the TweenListObj class

         * @param        .onStartParams        Array
         * Direct property, See the TweenListObj class

         * @param        .onUpdateParams        Array    
         * Direct property, See the TweenListObj class

         * @param        .onCompleteParams    Array    
         * Direct property, See the TweenListObj class

         * @param        .onOverwriteParams    Array    
         * Direct property, See the TweenListObj class

         * @param        .roundedBoolean
         * Direct property, See the TweenListObj class

         * @param        .skipUpdates        Number
         * Direct property, See the TweenListObj class
 

●addCaller(scope:Object , param : Object);
タイマー機能みたいなもの
paramのcount回数分だけ、onUpdateに指定した関数を実行してくれる。


●removeTweensByTime(scope , prop , startTime , completeTime):Boolean
追加されているscopeのpropertyが、startTimeとcompleteTime内の場合、tweenListObjを削除します。
addTween内でも、コンフリクト(重複)を避けるため、このメソッドを実行後、
新しいtweenListObjを追加しています。


●removeTweensByIndex(num:Number):Boolean
_tweenList配列に格納されいているnum番目のTweenlistObjを削除します。


●removeTweens(scope , ...args):Boolean
scopeの各argsプロパティのtweenを削除します。
...argsが空の場合は、scopeのすべてのtweenを削除します。


●removeAllTweens
すべて削除します。


下記はremove系を理解すれば、
想像できます。
●pauseTweenByIndex(num:Number);
●pauseTweens(scope:object, ...args);
●pauseAllTweens();
●resumeTweenByIndex(num:Number);
●resumeTweens(scope:object , ...args);
●resumeAllTweens();


●getTweenCount(scope:Object):Number;
scopeのプロパティで追加されているプロパティの数を返却します。
Shortcut用プロパティたとえば_scaleの場合は、
2が返却されます。


●isTweening(scope:Object):Boolean;
scopeオブジェクトに追加した有効なプロパティがあるがどうか返却します。


●getTweens(scope:Object):Array;
scopeのプロパティで追加されている有効なプロパティ名を返却します。
Shortcut用プロパティたとえば_scaleの場合は、
["scaleX" , "scaleY"]が返却します。


●getCurrentTweeningTime(scope:Object):Number
現在のトゥイーン時間を返却します。

Tweener.addTween(a , { param : 1 , time : , delay : 2 ,onUpdate : onUpdated})

function onUpdated():void{
    trace(Tweener.getCurrentTweeningTime(a));
}

出力

2046
.
.
.
.
3051

●splitTweens(num:number , props:Array)
一つのtweenListObjをpropsに指定したプロパティごとにそれぞれ分割します。


●setTimeScale(spd:Number=1);
トランジションのスピードを変更できます。
delay(startTime),time(completeTime)の値が変更され、トランジションのスピードが変更されます。

この値で割り算されるので、
0.5 = 遅い, 1 = 標準, 2 = 早い
て感じです。


●registerTransition(name :String , func : Function);
トランジションを_transitionList配列に登録でき使用可能になります。

@see Equations.as

デフォルトでは、こんなにあるのだ。

Tweener.registerTransition("easenone",easeNone);
Tweener.registerTransition("linear",easeNone);        // mx.transitions.easing.None.easeNone

Tweener.registerTransition("easeinquad",        easeInQuad);    // mx.transitions.easing.Regular.easeIn
Tweener.registerTransition("easeoutquad",        easeOutQuad);    // mx.transitions.easing.Regular.easeOut
Tweener.registerTransition("easeinoutquad",        easeInOutQuad);    // mx.transitions.easing.Regular.easeInOut
Tweener.registerTransition("easeoutinquad",        easeOutInQuad);

Tweener.registerTransition("easeincubic",        easeInCubic);
Tweener.registerTransition("easeoutcubic",        easeOutCubic);
Tweener.registerTransition("easeinoutcubic",    easeInOutCubic);
Tweener.registerTransition("easeoutincubic",    easeOutInCubic);

Tweener.registerTransition("easeinquart",        easeInQuart);
Tweener.registerTransition("easeoutquart",        easeOutQuart);
Tweener.registerTransition("easeinoutquart",    easeInOutQuart);
Tweener.registerTransition("easeoutinquart",    easeOutInQuart);

Tweener.registerTransition("easeinquint",        easeInQuint);
Tweener.registerTransition("easeoutquint",        easeOutQuint);
Tweener.registerTransition("easeinoutquint",    easeInOutQuint);
Tweener.registerTransition("easeoutinquint",    easeOutInQuint);

Tweener.registerTransition("easeinsine",        easeInSine);
Tweener.registerTransition("easeoutsine",        easeOutSine);
Tweener.registerTransition("easeinoutsine",        easeInOutSine);
Tweener.registerTransition("easeoutinsine",        easeOutInSine);

Tweener.registerTransition("easeincirc",        easeInCirc);
Tweener.registerTransition("easeoutcirc",        easeOutCirc);
Tweener.registerTransition("easeinoutcirc",        easeInOutCirc);
Tweener.registerTransition("easeoutincirc",        easeOutInCirc);

Tweener.registerTransition("easeinexpo",        easeInExpo);        // mx.transitions.easing.Strong.easeIn
Tweener.registerTransition("easeoutexpo",         easeOutExpo);        // mx.transitions.easing.Strong.easeOut
Tweener.registerTransition("easeinoutexpo",     easeInOutExpo);        // mx.transitions.easing.Strong.easeInOut
Tweener.registerTransition("easeoutinexpo",     easeOutInExpo);

Tweener.registerTransition("easeinelastic",     easeInElastic);        // mx.transitions.easing.Elastic.easeIn
Tweener.registerTransition("easeoutelastic",     easeOutElastic);    // mx.transitions.easing.Elastic.easeOut
Tweener.registerTransition("easeinoutelastic",     easeInOutElastic);    // mx.transitions.easing.Elastic.easeInOut
Tweener.registerTransition("easeoutinelastic",     easeOutInElastic);

Tweener.registerTransition("easeinback",         easeInBack);        // mx.transitions.easing.Back.easeIn
Tweener.registerTransition("easeoutback",         easeOutBack);        // mx.transitions.easing.Back.easeOut
Tweener.registerTransition("easeinoutback",     easeInOutBack);        // mx.transitions.easing.Back.easeInOut
Tweener.registerTransition("easeoutinback",     easeOutInBack);

Tweener.registerTransition("easeinbounce",         easeInBounce);        // mx.transitions.easing.Bounce.easeIn
Tweener.registerTransition("easeoutbounce",     easeOutBounce);        // mx.transitions.easing.Bounce.easeOut
Tweener.registerTransition("easeinoutbounce",     easeInOutBounce);    // mx.transitions.easing.Bounce.easeInOut
Tweener.registerTransition("easeoutinbounce",     easeOutInBounce);


Tweenerが標準で利用できるtransitionは、すべて下記の引数をとります。

/*
*    オリジナルのトランジションファンクション
* @param t        Current time (in frames or seconds).
* @param b        Starting value.
* @param c        Change needed in value.
* @param d        Expected easing duration (in frames or seconds).
* @return        The correct value.
*/
public static function myTransition (t:Number, b:Number, c:Number, d:Number, p_params:Object = null):Number {
    return -c *(t/=d)*(t-2) + b;
}
   

●その他,特殊プロパティの登録用のメソッドがあります。

registerSpecialProperty
registerSpecialPropertyModifier
registerSpecialPropertySplitter

こちらのメソッドは、
properties/***Shortcuts.asが利用しています。

ColorShortcuts
FilterShortcuts
SoundShortcuts
TextShortcuts
DisplayShortcuts
CurveModifiers

このクラスを参考にすれば、
***Shortcutsクラスを独自に作成し、
特殊プロパティを追加できます。

http://fladdict.net/blog/2008/03/tweenermovieclipmatrix_1.html#more


●まーつかわないだろー
updateTime();
updateFrame();

●これはprivateでいいだろー
onEnterFrame();

Trackback : 0 : Tweener : Public Static Method

http://www.onmyownlife.com/mt/mt-tb.cgi/25

Comment