InvertCircle on 2010-1-31
♥0 |
Line 46 |
Modified 2010-01-31 14:12:01 |
MIT License
archived:2017-03-20 13:00:31
ActionScript3 source code
/**
* Copyright komatsu ( http://wonderfl.net/user/komatsu )
* MIT License ( http://www.opensource.org/licenses/mit-license.php )
* Downloaded from: http://wonderfl.net/c/c3I4
*/
package {
import flash.display.BlendMode;
import flash.display.Bitmap;
import flash.display.BitmapData;
import flash.events.TimerEvent;
import flash.display.Sprite;
import flash.utils.Timer;
[SWF(backgroundColor="#000000", frameRate=30)]
public class InvertCircle extends Sprite {
private var baseSprite:Sprite;
private var stw:uint = stage.stageWidth;
private var sth:uint = stage.stageHeight;
private var bmp:BitmapData;
private var bm:Bitmap = new Bitmap();
public function InvertCircle() {
baseSprite = new Sprite();
addChild(baseSprite);
bmp = new BitmapData(stw,sth,false,0x0);
bm.bitmapData=bmp;
baseSprite.addChild(bm);
var drawTimer:Timer = new Timer(100);
drawTimer.addEventListener(TimerEvent.TIMER , setCircle);
drawTimer.start();
var clearTimer:Timer = new Timer(10000);
clearTimer.addEventListener(TimerEvent.TIMER , clearFunc);
clearTimer.start();
}
private function setCircle(evtObj:TimerEvent):void{
var rectSprite:Sprite = new Sprite();
rectSprite.graphics.beginFill(0xFFFFFF);
rectSprite.graphics.drawCircle(0,0,Math.random()*200+5);
rectSprite.x = Math.random()*stw;
rectSprite.y = Math.random()*sth;
rectSprite.blendMode = BlendMode.INVERT;
baseSprite.addChild(rectSprite);
bmp.draw(baseSprite);
baseSprite.removeChild(rectSprite);
rectSprite = null;
}
private function clearFunc(evtObj:TimerEvent):void{
bmp.dispose();
bmp = new BitmapData(stw,sth,false,0x0);
bm.bitmapData=bmp;
}
}
}