/**
* Copyright mutantleg ( http://wonderfl.net/user/mutantleg )
* MIT License ( http://www.opensource.org/licenses/mit-license.php )
* Downloaded from: http://wonderfl.net/c/c5Y3
*/
package {
import flash.events.MouseEvent;
import flash.geom.Matrix;
import flash.events.Event;
import flash.display.BitmapData;
import flash.display.Sprite;
public class FlashTest extends Sprite {
public function FlashTest() {
pic = new BitmapData(16, 16, false, 0);
var i:int;
for (i = 0; i < 64; i++)
{
pic.setPixel(Math.random()*pic.width,
Math.random()*pic.height, 0xFF0000);
pic.setPixel(i, pic.height-1,0xFF0000);
}//nexti
stage.addEventListener(MouseEvent.MOUSE_DOWN, onMdown);
stage.addEventListener(MouseEvent.MOUSE_UP, onMup);
stage.addEventListener(Event.ENTER_FRAME, onEnter);
}//ctor
public function onMdown(e:MouseEvent):void { mdown = 1; }
public function onMup(e:MouseEvent):void { mdown = 0; }
public var mdown:int = 0;
public var pic:BitmapData;
public var mat:Matrix = new Matrix();
public var gt:int = 0;
public function onEnter(e:Event):void
{
graphics.clear();
var cw:Number; var ch:Number;
var mx:Number; var my:Number;
var tx:int; var ty:int;
cw = 32; ch = 32;
mx = stage.mouseX; my = stage.mouseY;
tx = Math.floor(mx/cw); ty = Math.floor(my/ch);
mat.a = cw; mat.d = ch;
if (mdown > 0) { pic.setPixel(tx,ty, 0xFF); }
gt += 1;
if (gt % 4 == 0) { upTile(); }
graphics.beginBitmapFill(pic, mat,false, false);
graphics.drawRect(0,0,465,465);
graphics.endFill();
graphics.lineStyle(2, 0x00FF00,0.5);
graphics.drawRect(tx*cw,ty*ch,cw,ch);
}//onenter
public function upTile():void
{
var i:int; var k:int;
var ei:int; var ek:int;
ei = pic.height;
ek = pic.width;
var c:int;
var uc:int;
for (i = ei-2; i > -1; i -=1)
{
for (k = 0; k < ek; k++)
{
c = pic.getPixel(k, i);
if (c <= 0 || c >= 256) { continue; }
uc = pic.getPixel(k, i+1);
if (uc <= 0)
{
pic.setPixel(k,i+1,c);
pic.setPixel(k,i, 0);
continue;
}
if (k < ek-2)
if (pic.getPixel(k+1, i) <=0&& pic.getPixel(k+1, i+1) <= 0)
{
pic.setPixel(k+1,i+1,c);
pic.setPixel(k,i, 0);
continue;
}
if (k > 1)
if (pic.getPixel(k-1, i) <=0 && pic.getPixel(k-1, i+1)<= 0)
{
pic.setPixel(k-1,i+1,c);
pic.setPixel(k,i, 0);
continue;
}
/*
if (pic.getPixel(k-1, i) == 0xFF)
if (pic.getPixel(k+1, i) <=0)
{
pic.setPixel(k+1,i,c);
pic.setPixel(k,i, 0);
// k+=2;
continue;
}
if (pic.getPixel(k+1, i) == 0xFF)
if (pic.getPixel(k-1, i) <=0)
{
pic.setPixel(k-1,i,c);
pic.setPixel(k,i, 0);
continue;
}
*/
}//nextk
}//nexti
}//uptile
}//classend
}