![]()
Tweenerコード簡易ジェネレーター
「tweenTypeViewer」
tweener でも使われている PennerEasing ですが、個人的に、Back とか Elastic は動きがイメージできますが、Sine, Quad, Cubic, Quart, Quint, Expo(←この順番で強くなってくよ!Circ はまたちょっと別モノ) あたりの動きの差異、順番がなかなか覚えられなかったので簡易ビューアを作りました。
こちらのトゥイーンタイプ一覧表でもいいのですが、一応動きを目視確認できて、だいたいのコードをジェネレートでコピペできるというものぐさ君仕様。
ビューアのソース。ステージ上にインスタンス「ball」、テキストフィールド「tf」を置いておく。ComboBox コンポーネントをライブラリに入れておく。あと要 tweener ですね。
package {
import caurina.transitions.Tweener;
import flash.display.MovieClip;
import flash.display.Sprite;
import flash.events.MouseEvent;
import flash.events.Event;
import fl.controls.ComboBox;
import flash.text.TextField;
public class TweenTypeViewer extends Sprite{
private var cb:ComboBox;
private var cb2:ComboBox;
private var cb3:ComboBox;
private var cbItem:Array = ["linear","easeIn", "easeOut", "easeInOut"];
private var cb2Item:Array = ["Sine", "Quad","Cubic","Quart","Quint","Expo","Circ","Elastic","Back", "Bounce"];
private var cb3Item:Array = [0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1.0,1.5,2.0];
private var easingType:String;
private var easing:String;
private var type:String;
private var time:Number;
public function TweenTypeViewer() {
cb=new ComboBox();
cb.x=10;
cb.y=10;
for (var i:uint=0; i<cbItem.length; i++) {
cb.addItem( {label:cbItem[i]} );
}
addChild(cb);
cb.selectedIndex = 0;
cb.addEventListener(Event.CHANGE, checkBoxHandler);
cb2=new ComboBox();
cb2.x=120;
cb2.y=10;
for (var j:uint=0; j<cb2Item.length; j++) {
cb2.addItem( {label:cb2Item[j]} );
}
addChild(cb2);
cb2.selectedIndex = 0;
cb2.rowCount = cb2Item.length;
cb2.addEventListener(Event.CHANGE, checkBoxHandler);
cb3=new ComboBox();
cb3.setSize(50,24);
cb3.x=230;
cb3.y=10;
for (var k:uint=0; k<cb3Item.length; k++) {
cb3.addItem( {label:cb3Item[k]} );
}
addChild(cb3);
cb3.selectedIndex = 4;
cb3.rowCount = cb3Item.length;
cb3.addEventListener(Event.CHANGE, checkBoxHandler);
stage.addEventListener(MouseEvent.CLICK, clickListener);
checkBoxHandler();
}
private function checkBoxHandler(event:Event = null):void {
easing = cb.selectedItem.label;
type = cb2.selectedItem.label;
time = Number(cb3.selectedItem.label);
if(easing!="linear"){
cb2.visible = true;
easingType = easing + type;
}else {
cb2.visible = false;
easingType = easing;
}
tf.text = "Tweener.addTween(ball, { x:"+stage.mouseX+", y:"+stage.mouseY+", time:"+time+", transition:"+easingType+" } );";
}
private function clickListener(event:MouseEvent):void {
Tweener.addTween(ball, { x:stage.mouseX, y:stage.mouseY, time:time, transition:easingType } );
}
}
}
以上、寺井でした。
