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: forked from: flash on 2010-1-13
♥0 |
Line 60 |
Modified 2012-03-13 22:12:50 |
MIT License
archived:2017-03-30 06:01:38
ActionScript3 source code
/**
* Copyright Etienne.Verhote ( http://wonderfl.net/user/Etienne.Verhote )
* MIT License ( http://www.opensource.org/licenses/mit-license.php )
* Downloaded from: http://wonderfl.net/c/qiGZ
*/
// forked from Tamanegi_kenshi's 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
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;
}
}
}
}