forked from: forked from: Pendulum from: nengafl

by hacker_cif_rxsb
タイトル:振り子
♥0 | Line 85 | Modified 2010-01-07 19:54:30 | MIT License
play

ActionScript3 source code

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

// forked from hacker_vp_munwv's forked from: Pendulum from: nengafl
// forked from cybernet's Pendulum from: nengafl
// forked from nengafl's nengafl
//タイトル:振り子
package {
	//import flash.accessibility.Accessibility;
	import flash.text.*;
	//import flash.text.TextField;
    //import flash.display.Sprite;
    
    import flash.display.*;
    import flash.events.*;
    
    
    [SWF(backgroundColor="#000000",frameRate=10)]
    public class Pendulum extends Sprite {
    		    	
        public function Pendulum() {
            var tf:TextField = new TextField();
            tf.x = 0;
            tf.y = 20;
            tf.width = 230;
            tf.height = 50;
            tf.textColor = 0xCCCCCC;
            tf.text = "画面上でクリックする度に\n"+
            "色とりどりの振り子が現れて振動します。\n"+
            "何回か振れたあと順次消えていきます。\n";
            
            stage.addChild(tf);
            stage.addEventListener(MouseEvent.CLICK,onRun);
        }
        private function onRun(evt:MouseEvent): void {
        		var yureru:Sprite = new Yureru();
        		addChild(yureru);
        }
    }
}

import flash.display.*;
import flash.events.*;

class Furiko extends Sprite {
	public function Furiko(){
		var box:Sprite = new Sprite();
		var bg:Graphics = box.graphics;
		
		bg.lineStyle();
		var col:Number = 0xFFFFFF*Math.random();
		bg.beginFill(col,1.0);
		
		var ito:Number = 100 + 150*Math.random();
		bg.drawRect(0,0,1,ito);
		bg.beginFill(col,1.0);
		
		bg.drawCircle(0,ito,5+20*Math.random());
		
		bg.endFill();
		addChild(box);
	}
}

import flash.display.*;
import flash.events.*;

class Yureru extends Sprite {
	private var count:Number = 0;
	private var t:Number = 0;
	private var tm:Number = 20;
	private var direct:int = 0;
	private var kk:Number = 0;
	
	private var rb:Furiko = new Furiko();
	private var sp:Number = 0.5 + 3.5*Math.random();
	private var kai:Number = 1 + 2*Math.random();
	
	public function Yureru(){
		addChild(rb);
		addEventListener(Event.ENTER_FRAME,onLoop,false,0,true);
	}
	
	private function onLoop(ev:Event): void {
		count++;
		rb.x = 100;
		rb.y = 70;
		kk += 0.005;
		if(direct == 0){
			if(t < tm){
				t += 1;
			}
			else {
				direct = 1;
			}
		}
		if(direct == 1){
			if(t > -tm){
				t += -1;
			}
			else {
				direct = 0;
			}
		}
		rb.rotation = sp*t;
		
		if(count >= 90*kai){
			removeEventListener(Event.ENTER_FRAME,onLoop);
			removeChild(rb);
		}
	}
}