TweenerのTips [Object型を利用する。]

2011/11/13  as3.0

Tweenerを利用する時によく、

Tweener.addTween(_mc,{x:stage.stageWidth,time:0.6})

みたいな感じでステージのサイズに合わせて位置を移動させる場合があります。

 

= ■

 

この移動中にサイズを変えられてしまう(ウインドウをリサイズする)と、到達する位置がずれてしまう事などがよくあります。

 

そういう時には、カンタンに思いつく対処は

 

stage.addEventListener(Event.RESIZE,_func);
function _func(){
Tweener.addTween(_mc,{x:stage.stageWidth,time:0.6})
}

のようにすればTweenerは上書きの機能があるのですが、残りの距離に対して、イージングのかかり方が思ったのと違うようになってしまう可能性があります。

 

解決方法としては、

Objectを作成して、それにpercentを指定します。

var _obj = new Object();
_obj.percent= 0;

次に、このObjectをTweenerで動かします。

Tweener.addTween(_obj,{percent:100,time:0.6});

こうすると、通常のTweenerのようにイージングがかかった状態で、_objのpercentが100になります。

 

この時に、onUpdateと言うパラメータをつかって各階に関数を実行する事ができます。

Tweener.addTween(_obj,{percent:100,time:0.6,onUpdate:function(){
//function
}})

ここで、percentを0から100までの現在の進捗として考える事ができるので、

_mcのxの値が最初0だったとすると、

Tweener.addTween(_obj,{percent:100,time:0.6,onUpdate:function(){
_mc.x = stage.stageWidth*_obj.percent/100;
}})

とすると、ステージ幅との割合を考えてくれるので、リサイズの対応を考えないで、目的地まで到達する事ができます。