/**
* Copyright mrklein ( http://wonderfl.net/user/mrklein )
* MIT License ( http://www.opensource.org/licenses/mit-license.php )
* Downloaded from: http://wonderfl.net/c/xlE8
*/
package {
import flash.geom.Point;
import flash.geom.Rectangle;
import flash.display.Sprite;
import flash.display.Bitmap;
import flash.display.BitmapData;
import flash.events.Event;
public class FlashTest extends Sprite {
public var spriteToScramble:Sprite;
public var bitmapToScramble:Bitmap;
public var scrambledBitmap:Bitmap;
public var perlinInfo:Bitmap;
public var perlIndex:Number = 0;
public var scrambleTo:Number = 1;
public var toCopyTo:BitmapData = new BitmapData(120, 100, false);
public var myParentSquareContainer1:Bitmap = new Bitmap(toCopyTo);
public function FlashTest() {
// write as3 code here..
spriteToScramble = createSpriteToScramble();
this.addChild(spriteToScramble);
bitmapToScramble = createBitmapToScramble(spriteToScramble);
this.addChild(bitmapToScramble);
perlinInfo = createPerlinNoise();
this.addChild(perlinInfo);
scrambledBitmap = createScrambledBitmap(bitmapToScramble);
this.addChild(scrambledBitmap);
this.addEventListener(Event.ENTER_FRAME,doCopy);
}
public function doCopy(event:Event):void {
createScrambledBitmap(bitmapToScramble);
perlIndex = perlIndex + scrambleTo;
if (perlIndex == 99) {
scrambleTo = -1
}
if (perlIndex == 0) {
scrambleTo = 1
}
}
public function createSpriteToScramble():Sprite {
var circle:Sprite = new Sprite();
circle.graphics.beginFill(0xaaaaaa);
circle.graphics.drawRect(0,0,100,100);
circle.graphics.endFill();
circle.graphics.lineStyle(3,0xff0000);
circle.graphics.drawCircle(50,50,45);
return circle;
}
public function createBitmapToScramble(toBitmap:Sprite):Bitmap {
var toCopyTo:BitmapData = new BitmapData(100, 100, false);
toCopyTo.draw(toBitmap);
var myParentSquareContainer1:Bitmap = new Bitmap(toCopyTo);
myParentSquareContainer1.x = 150;
return(myParentSquareContainer1);
}
public function createPerlinNoise():Bitmap {
var perline:BitmapData = new BitmapData(100, 100, false, 0xaaaaaa);
perline.perlinNoise(87, 190, 2, 37, false, false, 0, true);
var perlineContainer:Bitmap = new Bitmap(perline);
perlineContainer.y = 200;
return perlineContainer;
}
public function createScrambledBitmap(toScramble:Bitmap):Bitmap {
toCopyTo.fillRect(new Rectangle(0,0,toCopyTo.width,toCopyTo.height), 0xffffff);
myParentSquareContainer1.x = 300;
for (var i:Number=0;i< toScramble.height ;i=i+2) {
var perlColor:uint = perlinInfo.bitmapData.getPixel(perlIndex,i);
var offsetX:Number = -5 + (10 / (perlColor /1600000 ));
toCopyTo.copyPixels(toScramble.bitmapData, new Rectangle(0,i,toScramble.width,1), new Point(10 + offsetX,i));
}
return myParentSquareContainer1;
}
}
}