import flash.display.Bitmap;
import flash.display.BitmapData;
import flash.display.BitmapDataChannel;
import flash.geom.Point;
import flash.geom.Rectangle;
var bmd1: BitmapData = new BitmapData(200,
200,
true,
0xFFCCCCCC);
var seed: int = int(Math.random() * int.MAX_VALUE);
var channels: uint = BitmapDataChannel.RED | BitmapDataChannel.BLUE;
bmd1.perlinNoise(100,
80,
12,
seed, false,
true,
channels, false,
null);
var bitmap1: Bitmap = new Bitmap(bmd1);
addChild(bitmap1);
var bmd2: BitmapData = new BitmapData(200,
200,
true,
0xFFCCCCCC);
var pt: Point = new Point(0,
0);
var rect: Rectangle = new Rectangle(0,
0,
200,
200);
var threshold: uint = 0x00800000; //50%的红色通道值
var color: uint = 0x80FF0000; //替换后的颜色
var maskColor: uint = 0x00FF0000; //因为只查找红色通道,所以遮罩仅为纯红色通道
bmd2.threshold(bmd1,
rect, pt, ">",
threshold, color, maskColor, true);
var bitmap2: Bitmap = new Bitmap(bmd2);
bitmap2.x = bitmap1.x + bitmap1.width + 10;
addChild(bitmap2);
addEventListener(Event.ENTER_FRAME, EnterFrameHandler);
function EnterFrameHandler(e: Event): void {
seed = int(Math.random() * int.MAX_VALUE);
bmd1.perlinNoise(100,
80,
12,
seed, false,
true,
channels, false,
null);
bitmap1.bitmapData = bmd1;
bmd2.threshold(bmd1,
rect, pt, ">",
threshold, color, maskColor, true);
bitmap2.bitmapData = bmd2;
}