forked from: forked from: flash on 2010-12-13

by asobuno2010 forked from forked from: flash on 2010-12-13 (diff: 57)
♥0 | Line 37 | Modified 2010-12-13 19:22:06 | MIT License
play

ActionScript3 source code

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

package {
    import flash.display.Sprite;
    import flash.geom.Point;
    import flash.utils.setInterval;
    import caurina.transitions.Tweener;

    public class Anime3 extends Sprite {
        // ‘O‰ñ‚̃}ƒEƒX‚̈ʒu‚ð•ۑ¶‚·‚é
        private var prevPos:Point;

        public function Anime3():void {
            prevPos = new Point();

            // 100ƒ~ƒŠ•b‚ɂP‰ñAupdate ƒƒ\ƒbƒh‚ðŒĂяo‚·
            setInterval(update, 100);
        }

        private function update():void {
            // ‰~‚̕\ަˆʒu‚ðŒˆ’肷‚é
            var r:Number = Math.pow(Math.random(), 2) * 50;
            var theta:Number = Math.random() * 2 * Math.PI;

            // ‰~‚ð’ljÁ‚·‚é
            var s:Sprite = new Sprite();
            s.graphics.beginFill(0x808080);
            s.graphics.drawCircle(0, 0, 5 + Math.random() * 5);
            s.graphics.endFill();
            s.x = mouseX + r * Math.cos(theta);
            s.y = mouseY + r * Math.sin(theta);
            s.scaleX = s.scaleY = 0;
            addChild(s);

            // ƒ}ƒEƒX‚̈ړ®—ʂðŒvŽZ‚·‚é
            var curPos:Point = new Point(mouseX, mouseY);
            var d:Number = Point.distance(curPos, prevPos);
            prevPos = curPos;

            // ƒAƒjƒ[ƒVƒ‡ƒ“‚ðs‚¤
            Tweener.addTween(s, {
                time: 3,
                scaleX: d / 15 + 2,   // ƒ}ƒEƒXˆړ®—ʂª‘½‚¢‚قǁA
                scaleY: d / 15 + 2,   // ‰~‚ð‘傫‚­‚·‚é
                alpha: 0,
                onComplete: function():void{
                    removeChild(s);
                }
            });
        }
    }
}

Forked