flash on 2011-3-3
♥0 |
Line 88 |
Modified 2011-03-03 00:15:29 |
MIT License
archived:2017-03-20 09:24:13
ActionScript3 source code
/**
* Copyright x10der ( http://wonderfl.net/user/x10der )
* MIT License ( http://www.opensource.org/licenses/mit-license.php )
* Downloaded from: http://wonderfl.net/c/yoTP
*/
package {
import flash.display.Sprite;
public class FlashTest extends Sprite {
private var field:Sprite;
public function FlashTest() {
// write as3 code here..
field = new Sprite();
var skyDust:Dust = new Dust(this,800,600,200);
addChild(skyDust);
}
}
}
import flash.display.Sprite;
import flash.events.Event;
class Dust extends Sprite
{
protected var targetObj:Object;
protected var global:Object;
public var fieldWidth:int;
public var fieldHeight:int;
public var points:Array = [];
public var counter:int;
private var oldX:int;
private var oldY:int;
public function Dust(gh:Object=null,w:int=50000,h:int=50000,count:int=100)
{
super();
global=gh;
fieldWidth=w;
fieldHeight=h;
counter=count;
}
public function build():void{
resize();
for(var i:int=0; i<counter; i++){
var deep:Number = Math.random()*10;
var pointEl:Sprite = new Sprite;
pointEl.graphics.lineStyle(.1,0xFFFFFF);
pointEl.graphics.drawCircle(0,0,.2);
pointEl.x=Math.random()*fieldWidth;
pointEl.y=Math.random()*fieldHeight;
pointEl.alpha=1/(deep+1);
addChild(pointEl);
var el:Object = {
point:pointEl,
deep:deep
};
points.push(el);
}
scaleX=1;
scaleY=1;
oldX=Math.round(global.field.x*100)/100;
oldY=Math.round(global.field.y*100)/100;
addEventListener(Event.ENTER_FRAME, calc);
}
public function resize():void{
width=fieldWidth;
height=fieldHeight;
x=-fieldWidth/2;
y=-fieldHeight/2;
}
protected function calc(event:Event):void{
var deltaX:int=(Math.round(global.field.x*100)/100)-oldX;
var deltaY:int=(Math.round(global.field.y*100)/100)-oldY;
if(!deltaX && !deltaY)return;
//deltaX=deltaX/delim;
//deltaY=deltaY/delim;
for each(var el:Object in points){
var dX:Number=deltaX/el.deep;
var dY:Number=deltaY/el.deep;
el.point.x+=dX;
el.point.y+=dY;
if(el.point.x>fieldWidth){
el.point.x=0;
el.point.y=Math.random()*fieldHeight;
}else if(el.point.x<0){
el.point.x=fieldWidth;
el.point.y=Math.random()*fieldHeight;
}
if(el.point.y>fieldHeight){
el.point.y=0;
el.point.x=Math.random()*fieldWidth;
}else if(el.point.y<0){
el.point.y=fieldHeight;
el.point.x=Math.random()*fieldWidth;
}
}
oldX=(Math.round(global.field.x*100)/100);
oldY=(Math.round(global.field.y*100)/100);
}
}