package { import caurina.transitions.Tweener; import flash.display.Sprite; import flash.events.MouseEvent; import flash.text.TextField; import flash.text.TextFormat; [SWF(width=800, height=600, backgroundColor=0xAADDFF)] public class Main02 extends Sprite { // ---------------------------- // メンバ変数 // ---------------------------- private var textFields:Array = []; private var textFieldPoints:Array = []; private var isReset:Boolean = true; // ---------------------------- // 初期化 // ---------------------------- public function Main02() { var word:String = "Hello World!!"; cutWord(word); stage.addEventListener(MouseEvent.CLICK, onClick); } // ---------------------------- // 内部メソッド // ---------------------------- private function cutWord(word:String):void { for (var i:int=0; i<word.length; i++) { var character:String = word.charAt(i); var textField:TextField = new TextField(); textField.defaultTextFormat = new TextFormat(null, 50); textField.text = character; addChild(textField); textField.x = stage.stageWidth/2 - 200 + i*40; textField.y = stage.stageHeight/2; textFields.push(textField); textFieldPoints.push({x:textField.x, y:textField.y}); Tweener.addTween(textField, {x:Math.random()*stage.stageWidth, y:Math.random()*stage.stageHeight, time:1, transition:"easeOutBack"}); } } // ---------------------------- // イベント // ---------------------------- private function onClick(event:MouseEvent):void { for each (var word:TextField in textFields) { if (isReset) { var point:Object = textFieldPoints[textFields.indexOf(word)]; Tweener.addTween(word, {x:point.x, y:point.y, time:1, transition:"easeOutBack"}); } else { Tweener.addTween(word, {x:Math.random()*stage.stageWidth, y:Math.random()*stage.stageHeight, time:1, transition:"easeOutBack"}); } } isReset = !isReset; } } } TweenerでHello World!!