asteroid belt
// write as3 code here..
package{
import flash.display.*;
import flash.events.*;
import flash.geom.Point;
//
[SWF(width="465", height="465", frameRate="20")]
//
public class one extends Sprite{
/**
**/
private var clips:Array;
private var deg:Number;
/**
**/
public function one():void{
//
graphics.beginFill(0x030303);
graphics.drawRect(0,0,465,465);
graphics.endFill();
//
clips = [];
for(var i:int=0;i<300;i++){
var c:Sprite = new Sprite();
c.graphics.beginFill(0xf0f0f0);
//c.graphics.drawCircle(0,0,3);
c.graphics.drawRect(15,15,1,1)
c.graphics.endFill();
addChild(c);
clips.push({clip:c,deg:Math.random()*10+5,dist:Math.random()*0.1});
}
//
deg = 0;
//
addEventListener(Event.ENTER_FRAME,onEnterHandler,false);
}
/**
**/
public function onEnterHandler(e:Event):void{
for(var i:int=0;i<clips.length;i++){
var sp:Sprite = clips[i].clip as Sprite;
if(sp){
moveClip(sp,clips[i].deg,clips[i].dist);
}
}
}
/**
**/
public function moveClip(target:Sprite,degNum:Number,dist:Number):void{
var mousePt:Point = new Point(stage.mouseX,stage.mouseY);
var clipPt:Point = new Point(target.x,target.y);
var en:Point = Point.interpolate(clipPt,mousePt,0.86+dist);
//
var r:Number = Math.PI/180*target.rotation;
var p:Point = Point.polar(Point.distance(clipPt,mousePt)*0.1,r);
//en = en.add(p);
en.offset(p.x,p.y);
//
target.x = en.x;
target.y = en.y;
//
target.rotation += degNum;
}
}
}