flash on 2011-10-2
/**
* Copyright dyun ( http://wonderfl.net/user/dyun )
* MIT License ( http://www.opensource.org/licenses/mit-license.php )
* Downloaded from: http://wonderfl.net/c/cWYr
*/
package {
import flash.display.Bitmap;
import flash.display.BitmapData;
import flash.display.Sprite;
import flash.events.Event;
import flash.events.MouseEvent;
import flash.filters.BlurFilter;
import flash.filters.DropShadowFilter;
public class FlashTest extends Sprite {
private var _c:Sprite;
private var _canvas:BitmapData;
private var _blur:BlurFilter = new BlurFilter(5, 5, 3);
private var _dsh:DropShadowFilter = new DropShadowFilter();
private var _ySign:int = 1;
public function FlashTest() {
graphics.beginFill(0x000000);
graphics.drawRect(0, 0, stage.stageWidth, stage.stageHeight);
addEventListener(Event.ENTER_FRAME, onEnterFrame);
addEventListener(MouseEvent.MOUSE_DOWN, onMouseDown);
_c = new Sprite();
_canvas = new BitmapData(stage.stageWidth, stage.stageHeight, true, 0x000000);
var bitmap:Bitmap = new Bitmap(_canvas);
addChild(bitmap);
}
private function onEnterFrame(e:Event):void {
var circle:Sprite = createCircle();
_c.addChild(circle);
var i:int = _c.numChildren;
while(i--) {
circle = _c.getChildAt(i) as Sprite;
circle.alpha -= 0.015;
if (circle.alpha <= 0) {
_c.removeChild(circle);
continue;
}
circle.x = circle.x + getXMove();
circle.y = circle.y + getYMove(circle);
}
addChild(_c);
}
private function getXMove():int {
var i:int = Math.floor (Math.random () * 2) + 1
var sign:int = i == 1 ? 1 : -1;
return sign;
}
private function getYMove(circle:Sprite):int {
var w:Number = circle.width;
var sign:int = (w > 15) ? _ySign : _ySign * (-1);
return sign * Math.random() * 30 * (1 - circle.alpha);
}
private function createCircle():Sprite {
var c:Sprite = new Sprite();
c.graphics.beginFill(0xff0000 * Math.random(), 0.3);
c.graphics.drawCircle(Math.random() * 30 + 20, Math.random() * 30 + 20, Math.random() * 20);
c.x = mouseX + getXMove() * Math.random() * 100;
c.y = mouseY;
c.filters = [_blur, _dsh];
return c;
}
private function onMouseDown(e:Event):void {
_ySign *= -1;
}
}
}