/**
* Copyright hemingway ( http://wonderfl.net/user/hemingway )
* MIT License ( http://www.opensource.org/licenses/mit-license.php )
* Downloaded from: http://wonderfl.net/c/b8gz
*/
package
{
import flash.display.*;
import flash.events.*;
import flash.ui.*;
[SWF(frameRate = 60)]
public class Main extends Sprite
{
public var t :int = 0;//---------?
public var lastX :int;//-------------?
public var lastY :int;//-------------?
public var curBMP :Bitmap;//--------?
public var pageBMD :BitmapData;//----?
public var pageBMP :Bitmap;//--------?
public var curBMD :BitmapData;//----?
public var viewBMD :BitmapData;//----?
protected var mouseDown:Boolean = false;
public function Main()
{
addEventListener(Event.ADDED_TO_STAGE, addedToStage);
}
private function _init() : void
{
var loc_2:* = 0;
var loc_3:* = 0;
var loc_4:* = 0;
pageBMD = new BitmapData(stage.stageWidth >> 2, stage.stageHeight >> 2, false, 0);//--?
viewBMD = new BitmapData(pageBMD.width, pageBMD.height, false, 0);//------------------?
curBMD = new BitmapData(pageBMD.width, pageBMD.height, true, 0);//-------------------?
pageBMP = new Bitmap(viewBMD, "auto", false);
curBMP = new Bitmap(curBMD, "auto", false);
pageBMP.scaleX = 1 << 2;
pageBMP.scaleY = 1 << 2;
var loc_5:* = pageBMP.scaleX;
curBMP.scaleY = pageBMP.scaleX;
curBMP.scaleX = loc_5;
addChild(pageBMP);
addChild(curBMP);
addEventListener(Event.ENTER_FRAME, this.think);
while (loc_2 < 10000)
{
loc_3 = int(Math.random() * pageBMD.width);
loc_4 = int(Math.random() * pageBMD.height);
pageBMD.setPixel32(loc_3, loc_4, int(Math.random() * 200));
loc_2 = (loc_2 + 1);
}
stage.addEventListener(MouseEvent.MOUSE_DOWN, mouseHandler);
stage.addEventListener(MouseEvent.MOUSE_UP, mouseHandler);
}
private function addedToStage($e:Event) :void
{
removeEventListener(Event.ADDED_TO_STAGE, addedToStage);
_init();
}
protected function mouseHandler($e:MouseEvent) :void
{
if ($e.type == MouseEvent.MOUSE_DOWN)
{mouseDown = true;}
else {mouseDown = false;}
}
public function think(param1:uint) : void
{
var loc_5:* = 0;
var loc_6:* = 0;
var loc_7:* = 0;
var loc_8:* = 0;
var loc_9:* = 0;
var loc_10:* = 0;
var loc_11:* = 0;
var loc_12:* = 0;
var loc_13:* = 0;
var loc_14:* = NaN;
var loc_15:* = NaN;
var loc_16:* = 0;
var loc_17:* = 0;
var loc_18:* = 0;
var loc_19:* = NaN;
var loc_20:* = 0;
var loc_21:* = 0;
var loc_22:* = 0;
var loc_23:* = 0;
var loc_24:* = 0;
var loc_25:* = this;
var loc_26:* = t + 1;
loc_25.t = loc_26;
var loc_2:* = (stage.mouseX * 0.25 - lastX);
var loc_3:* = (stage.mouseY * 0.25 - lastY);
if (mouseDown && (Math.abs(loc_2) + Math.abs(loc_3)) > 0)
{
loc_12 = stage.mouseX / 4 - 9;
while (loc_12 < stage.mouseX / 4 + 9)
{
loc_13 = stage.mouseY / 4 - 9;
while (loc_13 < stage.mouseY / 4 + 9)
{
loc_14 = pageBMD.getPixel(loc_12 + loc_2, loc_13 + loc_3);
loc_15 = pageBMD.getPixel(loc_12, loc_13);
pageBMD.setPixel(loc_12, loc_13, 0);
pageBMD.setPixel(loc_12 + loc_2, loc_13 + loc_3, Math.min(loc_14 + loc_15, 2550000));
loc_13++;
}
loc_12++;
}
}
lastX = int(stage.mouseX / 4);
lastY = int(stage.mouseY / 4);
pageBMD.lock();
var loc_4:* = 0;
while (loc_4 < pageBMD.width)
{
loc_16 = 0;
while (loc_16 < pageBMD.height)
{
loc_17 = pageBMD.getPixel(loc_4, loc_16);
loc_18 = pageBMD.getPixel(loc_4, (loc_16 - 1));
var loc_25:* = (loc_17 - loc_18);
loc_19 = (loc_17 - loc_18);
if (loc_25 > 10)
{
pageBMD.setPixel(loc_4, loc_16, loc_17 - loc_19 >> 2);
pageBMD.setPixel(loc_4, (loc_16 - 1), loc_18 + loc_19 >> 2);
loc_17 = loc_17 - loc_19 >> 2;
}
param1 = pageBMD.getPixel((loc_4 + 1), loc_16);
var loc_25:* = (loc_17 - param1);
loc_19 = (loc_17 - param1);
if (loc_25 > 10)
{
pageBMD.setPixel(loc_4, loc_16, loc_17 - loc_19 * 0.33);
pageBMD.setPixel((loc_4 + 1), loc_16, param1 + loc_19 * 0.33);
loc_17 = (loc_17 - loc_19 * 0.33);
}
loc_20 = pageBMD.getPixel((loc_4 - 1), loc_16);
var loc_25:* = (loc_17 - loc_20);
loc_19 = (loc_17 - loc_20);
if (loc_25 > 10)
{
pageBMD.setPixel(loc_4, loc_16, loc_17 - loc_19 >> 1);
pageBMD.setPixel((loc_4 - 1), loc_16, loc_20 + loc_19 >> 1);
loc_17 = loc_17 - loc_19 >> 1;
}
loc_21 = pageBMD.getPixel(loc_4, (loc_16 + 1));
var loc_25:* = (loc_17 - loc_21);
loc_19 = (loc_17 - loc_21);
if (loc_25 > 10)
{
pageBMD.setPixel(loc_4, loc_16, loc_17 - loc_19);
pageBMD.setPixel(loc_4, (loc_16 + 1), loc_21 + loc_19);
}
loc_16 = (loc_16 + 1);
}
loc_4 = (loc_4 + 1);
}
pageBMD.unlock();
curBMD.fillRect(curBMD.rect, 16711680);
viewBMD.lock();
loc_4 = 0;
while (loc_4 < pageBMD.width)
{
loc_16 = 0;
while (loc_16 < pageBMD.height)
{
loc_22 = pageBMD.getPixel(loc_4, loc_16);
if (loc_22)
{
loc_6 = pageBMD.getPixel(loc_4, (loc_16 + 1));
loc_7 = pageBMD.getPixel((loc_4 + 1), loc_16);
loc_8 = pageBMD.getPixel((loc_4 + 1), (loc_16 + 1));
loc_9 = pageBMD.getPixel((loc_4 + 1), loc_16 + 2);
loc_10 = pageBMD.getPixel(loc_4 + 2, (loc_16 + 1));
loc_11 = pageBMD.getPixel(loc_4 + 2, loc_16 + 2);
loc_23 = loc_6 > loc_7 ? (loc_6) : (loc_7);
loc_23 = loc_23 > loc_8 ? (loc_23) : (loc_8);
loc_23 = loc_23 > loc_9 ? (loc_23) : (loc_9);
loc_23 = loc_23 > param1 ? (loc_23) : (loc_10);
loc_23 = loc_23 > loc_11 ? (loc_23) : (loc_11);
loc_5 = Math.min(loc_23 < loc_22 ? (Math.max(180, 230 + loc_23 - loc_22)) : (255), (loc_22 << 2) + 50);
loc_5 = (viewBMD.getPixel(loc_4, loc_16) & 255) + loc_5 >> 1;
loc_5 = (loc_5 >> 1) + 10 + ((loc_5 << 8) + 1) + ((loc_5 << 16) + 1);
viewBMD.setPixel(loc_4, loc_16, loc_5);
loc_24 = 1;
while (loc_24 < (loc_22 >> 5))
{
viewBMD.setPixel(loc_4, (loc_16 - loc_24), loc_5);
if (loc_24 > 10)
{break;}
loc_24++;
}
} else {viewBMD.setPixel(loc_4, loc_16, 2106929)}
if (loc_4 == lastX || loc_16 == lastY)
{
curBMD.setPixel32(loc_4, (loc_16 - loc_24), 2164195328);
}
loc_16 = (loc_16 + 1);
}
loc_4 = (loc_4 + 1);
}
viewBMD.unlock();
return;
}// end function
}
}