In case Flash no longer exists; a copy of this site is included in the Flashpoint archive's "ultimate" collection.

Dead Code Preservation :: Archived AS3 works from wonderfl.net

Circle002

円運動を描画する
* ステージをクリックすると始点が変更される
Get Adobe Flash player
by galapagos 22 May 2009
/**
 * Copyright galapagos ( http://wonderfl.net/user/galapagos )
 * MIT License ( http://www.opensource.org/licenses/mit-license.php )
 * Downloaded from: http://wonderfl.net/c/zf8O
 */

/**
 * 円運動を描画する
 * ステージをクリックすると始点が変更される
 */
package {
    import flash.display.Sprite;
    import flash.events.Event;
    import flash.events.MouseEvent;
    import frocessing.FC;
    import frocessing.core.F5Graphics;
    import frocessing.math.FMath;
    
    [SWF(frameRate="60", backgroundColor="#000000")]
    public class Circle002 extends Sprite {
        private var fg:F5Graphics;
        
        private var centerX:Number = stage.stageWidth / 2;
        private var centerY:Number = stage.stageHeight / 2
    
        private var degree:Number = 0;
        private var radius:Number = 100;
        
        public function Circle002():void {
            fg = new F5Graphics(graphics);
            fg.colorMode(FC.HSB, 100);
            fg.noStroke();

            stage.addEventListener(MouseEvent.MOUSE_DOWN, onMouseDown);
            addEventListener(Event.ENTER_FRAME, draw);
        }
        
        private function draw(e:Event):void {
            if (degree >= 360) {
                degree = 0;
            }
            
            var radians:Number = FMath.radians(degree);
            var x:Number = centerX + (radius * Math.cos(radians));
            var y:Number = centerY + (radius * Math.sin(radians));
            
            var hue:Number = FMath.map(mouseX, 0, stage.stageWidth, 0, 100);
            var saturation:Number = FMath.map(mouseY, 0, stage.stageHeight, 0, 100);
            
            fg.fill(hue, saturation, 99);
            fg.ellipse(x, y, 5, 5);
            
            degree++
        }
        
        private function onMouseDown(e:MouseEvent):void {
            var x:Number = mouseX - centerX;
            var y:Number = mouseY - centerY;
            var radians:Number = Math.atan2(y, x);
            
            radius = Math.sqrt(x * x + y * y);
            degree = FMath.degrees(radians);
        }
    }
}