forked from: flash on 2010-1-29

by aobyrne forked from flash on 2010-1-29 (diff: 85)
♥2 | Line 92 | Modified 2011-04-01 07:00:03 | MIT License
play

ActionScript3 source code

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

// forked from Altschuler's flash on 2010-1-29
package {
    import flash.geom.ColorTransform;
    import com.bit101.components.HSlider;
    import com.bit101.components.Label;
    import com.bit101.components.NumericStepper;
    import com.bit101.components.PushButton;
    import flash.display.Sprite;
    import flash.events.Event;
    public class FlashTest extends Sprite {
         private var n : Number = 0;
        private const r : Number = 200;
        private var label:Label;
        private var hSlider:HSlider;
        private var _isPlaying:Boolean;
        private var pushButton:PushButton;
        private var step:NumericStepper;
        private var degrees:Label;
        private var d:Number;
        private var fractionOfCircle:Label;
        public function FlashTest() {
             d = 180 / Math.PI;
            label = new Label(this, 0, 0, "");
            new Label(this, 230,0, "degrees");
            degrees = new Label(this, 267, 0,"degrees");
            new Label(this, 290, 0,"fraction");
            fractionOfCircle = new Label(this, 330, 0,"");
            pushButton = new PushButton(this, 40, 0, '', play);
            step = new NumericStepper(this, 145, 0, nsDraw);
            step.minimum = 0;
            step.maximum = Math.PI * 2 * 2;
            step.step = 0.001;
            step.labelPrecision = 3;
            
            hSlider = new HSlider(this, 0, stage.stageHeight - 20, slideDraw);
            hSlider.setSize(stage.stageWidth - 2, hSlider.height);
            hSlider.minimum = 0;
            hSlider.maximum = Math.PI * 2 * 2;
            /*/
            play();
            /*/
            draw(null);
            isPlaying = false;
            //*/
        }
        
        private function nsDraw(e:Event):void 
        {
            n = NumericStepper(e.target).value;
            draw(null);
        }
        
        private function slideDraw(e:Event):void 
        {
            n = HSlider(e.target).value;
            draw(null);
        }
        
        private function play(e:Event):void 
        {
            if (_isPlaying) 
            {
                stage.removeEventListener(Event.ENTER_FRAME, draw);
            }
            else
            {
                stage.addEventListener(Event.ENTER_FRAME, draw);
            }
            isPlaying = !_isPlaying;

        }

        private function draw(event : Event) : void
        {
            var angle:Number ;
            graphics.clear();
            graphics.lineStyle(1,0,0.5);
            graphics.moveTo(r,r);
            for (var i : int = 0; i < r; i += 1) 
            {
                angle= i * (n+1);
                graphics.lineTo(
                r + (i * Math.cos(angle)), 
                r + (i * Math.sin(angle)));
            }
                
            label.text =  n.toFixed(3);
            hSlider.value = n;
            step.value = n;
            degrees.text = int(((n + 1) * d) % 360).toString();
            fractionOfCircle.text = int(360 / int(degrees.text)).toString();
            if (event) 
            {
                n += .001;
            }
        }
        
        public function set isPlaying(value:Boolean):void 
        {
            pushButton.label = value?"stop":"play";
            pushButton.transform.colorTransform = value? new ColorTransform(1,0,0,1):new ColorTransform(0,1,0,1);
            _isPlaying = value;
        }
            
        }
    }