/** * BetweenAS3 でなにか動かしてみたサンプル * * 1. しこたま ITween のインスタンス作る (NUM_BALLS の数と同じ) * 2. それを parallel につっこむ * 3. parallel したやつと、それの reverse したやつを serial につっこむ * 4. stopOnComplete なフラグを false にして無限ループ */ package { import flash.display.BlendMode; import flash.display.Graphics; import flash.display.Shape; import flash.display.Sprite; import flash.events.Event; import com.flashdynamix.utils.SWFProfiler; import frocessing.color.ColorHSV; import org.libspark.betweenas3.BetweenAS3; import org.libspark.betweenas3.tweens.ITween; import org.libspark.betweenas3.easing.*; [SWF(width=465, height=465, frameRate=30, backgroundColor=0x000000)] public class Main extends Sprite { public static const NUM_BALLS:uint = 120; public static const CIRCLE_RADIUS:uint = 170; private var centerX:Number; private var centerY:Number; public function Main() { addEventListener(Event.ADDED_TO_STAGE, initialize); } private function initialize(evt:Event):void { removeEventListener(Event.ADDED_TO_STAGE, initialize); setup(); var i:uint, cAngle:Number, nAngle:Number, s:Shape, g:Graphics, hsv:ColorHSV, t:ITween, tweens:Array; cAngle = 0; nAngle = Math.PI * 2 / NUM_BALLS; hsv = new ColorHSV(0, 1, 1); tweens = []; for (i=0; i<NUM_BALLS; i++) { s = new Shape(); s.x = centerX; s.y = centerY; s.blendMode = BlendMode.ADD; hsv.h = Math.sin(cAngle) * 180 / Math.PI; g = s.graphics; g.beginFill(hsv.value, hsv.a); g.drawCircle(0, 0, 3); g.endFill(); addChild(s); // ITween を作って t = BetweenAS3.tween(s, { x: (centerX + Math.cos(cAngle) * CIRCLE_RADIUS) >> 0, y: (centerY + Math.sin(cAngle) * CIRCLE_RADIUS) >> 0 }, null, 4, Elastic.easeOut); // 配列につっこんどく tweens.push(t); cAngle += nAngle; } // parallel な ITween を作って t = BetweenAS3.parallel.apply(null, tweens); // parallel な ITween と、それを reverse したやつを serial につっこむ t = BetweenAS3.serial( t, BetweenAS3.reverse(t) ); // 無限ループに設定して t.stopOnComplete = false; // アニメーションスタート t.play(); } private function setup():void { centerX = stage.stageWidth >> 1; centerY = stage.stageHeight >> 1; SWFProfiler.init(this); } } } ITween を parallel して serial