forked from: forked from: forked from: 図形を描こう(放射状の線)

by umhr forked from forked from: forked from: 図形を描こう(放射状の線) (diff: 22)
...
@author umhr
♥0 | Line 41 | Modified 2012-03-17 20:15:26 | MIT License
play

ActionScript3 source code

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

// forked from umhr's forked from: forked from: 図形を描こう(放射状の線)
// forked from umhr's forked from: 図形を描こう(放射状の線)
package 
{
    import flash.events.MouseEvent;
    import flash.display.Sprite;
    import org.libspark.betweenas3.BetweenAS3;
    import org.libspark.betweenas3.easing.*;
    import org.libspark.betweenas3.tweens.ITween;
    /**
     * ...
     * @author umhr
     */
    public class Main extends Sprite 
    {
        
        private var _dummy:Sprite = new Sprite();
        private var _line:Sprite = new Sprite();
        public function Main():void 
        {
            
            _dummy.graphics.beginFill(0xFF0000, 0.5);
            _dummy.graphics.drawRect(0, 0, 10, 10);
            _dummy.graphics.endFill();
            addChild(_dummy);
            
            _line.x = 232;
            _line.y = 232;
            this.addChild(_line);
            
            stage.addEventListener(MouseEvent.CLICK,onClick);
            
            onClick(null);
        }
        
        private function onClick(event:MouseEvent):void{
            var t:ITween;
            t = BetweenAS3.tween(_dummy, { x:100 },{x:0}, 5 , Elastic.easeOut);
            t.onUpdate = onUpdate;
            t.play();
        }
       
        private function onUpdate():void {
            _line.graphics.clear();
            _line.graphics.lineStyle(0, 0xFF00FF);
            
            var length:Number = _dummy.x + 100;
            var n:int = 36;
            for (var i:int = 0; i < n; i++) {
                _line.graphics.moveTo(0, Math.sin(10 * i * Math.PI / 180) * _dummy.x);
                _line.graphics.lineTo(Math.cos(10 * i * Math.PI / 180) * length, Math.sin(10 * i * Math.PI / 180) * length);
            }
            
        }
        
    }
    
}