InvertRectangle on 2010-1-31
♥0 |
Line 46 |
Modified 2010-01-31 13:54:58 |
MIT License
archived:2017-03-20 13:00:34
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/zpRl
*/
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 InvertRectangle 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 InvertRectangle() {
baseSprite = new Sprite();
addChild(baseSprite);
bmp = new BitmapData(stw,sth,false,0x0);
bm.bitmapData=bmp;
baseSprite.addChild(bm);
var drawTimer:Timer = new Timer(10);
drawTimer.addEventListener(TimerEvent.TIMER , setRect);
drawTimer.start();
var clearTimer:Timer = new Timer(10000);
clearTimer.addEventListener(TimerEvent.TIMER , clearFunc);
clearTimer.start();
}
private function setRect(evtObj:TimerEvent):void{
var rectSprite:Sprite = new Sprite();
rectSprite.graphics.beginFill(0xFFFFFF);
rectSprite.graphics.drawRect(0,0,Math.random()*200+5,Math.random()*200+5);
rectSprite.x = Math.random()*stw-rectSprite.width/2;
rectSprite.y = Math.random()*sth-rectSprite.height/2;
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;
}
}
}