forked from: [BetweenAS3]delayの検証

by 1031no
BetweenAS3の遅延使用時における動作検証
* 同一オブジェクトに複数の遅延トゥイーンを設定した場合、
* 2番目以降のトゥイーンで第3引数をnullにすると挙動が怪しいかも…
*
* Test A と Test B はともにボールのx座標を(0→300→0)と
* トゥイーンさせているデモになります。
*
* Test Aではserialを利用。serial利用時には問題はない。
* Test Bで、Ballが右側にいったときに、x座標が飛んでしまう
♥0 | Line 40 | Modified 2009-11-10 17:09:21 | MIT License
play

ActionScript3 source code

/**
 * Copyright 1031no ( http://wonderfl.net/user/1031no )
 * MIT License ( http://www.opensource.org/licenses/mit-license.php )
 * Downloaded from: http://wonderfl.net/c/qntX
 */

// forked from clockmaker's [BetweenAS3]delayの検証
/**
* BetweenAS3の遅延使用時における動作検証
* 同一オブジェクトに複数の遅延トゥイーンを設定した場合、
* 2番目以降のトゥイーンで第3引数をnullにすると挙動が怪しいかも…
*
* Test A と Test B はともにボールのx座標を(0→300→0)と
* トゥイーンさせているデモになります。
*
* Test Aではserialを利用。serial利用時には問題はない。
* Test Bで、Ballが右側にいったときに、x座標が飛んでしまう
*/
package {
    import flash.display.*;
    import flash.events.*
    import org.libspark.betweenas3.BetweenAS3;
    import org.libspark.betweenas3.easing.*;
    import com.bit101.components.*;

    public class FlashTest extends Sprite {
        private var ball:Sprite;
        public function FlashTest() {
            
            ball = createBall();
            addChild(ball);
            
            new PushButton(this, 10, 300, "Test A", testA);
            new PushButton(this, 150, 300, "Test B", testB);
        }
        
        private function testA(e:Event):void {
            BetweenAS3.serial(
                BetweenAS3.delay(
                    BetweenAS3.tween(ball, {x:300}, {x:0}, 1, Expo.easeInOut),
                    0.5),
                
                BetweenAS3.delay(
                    BetweenAS3.tween(ball, {x:0}, null, 2, Expo.easeInOut),
                    1)
                ).play();
        }
        
        
        private function testB(e:Event):void {
            BetweenAS3.delay(
                BetweenAS3.tween(ball, {x:300}, {x:0}, 2, Expo.easeInOut),
                0.5).play();
                
            BetweenAS3.delay(
                BetweenAS3.tween(ball, {x:0}, null, 2, Expo.easeInOut),
                4).play();
        }
        
        private function createBall():Sprite{
            var ball:Sprite = new Sprite();
            ball.graphics.beginFill(0xFF0000);
            ball.graphics.drawCircle(100,100,100);
            return ball;
        }
    }
}