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

by Tamanegi_kenshi forked from コードを短くするにはどうすればよいですか? (diff: 76)
♥0 | Line 60 | Modified 2010-02-20 05:52:50 | MIT License
play

ActionScript3 source code

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

package{
 import flash.display.Sprite;
 import flash.events.Event;
 import flash.display.GradientType;
 import flash.geom.Matrix;
 
 
 public class sp extends Sprite{
 	private var ball:Sprite;
 	private var spring:Number = 0.04;		
    private var vx:Number =0;
 	private var gravity:Number = 0;
    private var vy:Number =0;
 	private var friction:Number =.95;
 	private var speed:int =5;
 	
 	private var balls:Array;
 	
 	private var angle:int =0;
 	private var radius:int =50;
 	
 	public function sp(){
 		init();
 		
 		}
 	private function init():void{
 		
 		balls =new Array();
 		for(var i:int =0; i<8;i++){
 		
 		var color:Array =[0x000000,0x000000];
 		var alpha :Array =[0.3,1];
 		var ration:Array =[0,255];
 		var mat:Matrix =new Matrix();
 		mat.createGradientBox(30,30,0,-20,-20);
 		
 		 ball = new Sprite();
 		 ball.graphics.beginGradientFill(GradientType.RADIAL,color,alpha,ration,mat);
 		  ball.graphics.drawCircle(0,0,20);
 		  ball.graphics.endFill();
 		addChild(ball);
 		
 		
 		balls.push(ball);
 		}
 		
 		addEventListener(Event.ENTER_FRAME,onEnterFrame);
 		}
 		
 	private function onEnterFrame(event:Event):void{
 		
 	  if(balls[0].x>400 || balls[0].x<0){
 	  	speed *=-1;
 	  	}
 	    
 	    angle +=10;
 	    var radi:Number=angle*Math.PI/180;
 	    
 	    balls[0].x =200+Math.cos(radi)*100;
 	    balls[0].y =200+Math.sin(radi)*100;
 	    
 	
 	    
 	    
 	  for(var i:int =0; i<8;i++){ 
 	  
 	  
 	    var dx:Number =(balls[i].x-balls[i+1].x);
 	    var dy:Number =(balls[i].y-balls[i+1].y);
 	    var ax:Number =dx*spring;
 	    var ay:Number =dy*spring;
 	    vx +=ax;
 	    vx*=friction+i/100;
 	    vy+=ay;
 	    vy *=friction+i/100;
 	    
 	    vy +=gravity;
 	    balls[i+1].x +=vx;
 	    balls[i+1].y +=vy;
 	    
 	    }
 	    
 	    
 		
 		
 		}


 	}
		
}

Forked