Frame 1
var aaa = 256;
var bbb = 192;
_quality = "LOW";
var lib = flash.display.BitmapData.loadBitmap("flag");
var outputClip = createEmptyMovieClip("outputClip", 0);
var output = (new flash.display.BitmapData(aaa, bbb, true, 0));
outputClip.attachBitmap(output, 0);
outputClip.filters = [new flash.filters.DropShadowFilter(6, 60, 0, 1, 2, 2, 0.5, 3)];
outputClip._x = (((aaa * 1) - aaa) / 2) + 20;
outputClip._y = ((bbb * 1) - bbb) / 2;
var flag = (new de.popforge.wm2006.effect.Flag(lib, output));
flag.appearMoreFabric();
onEnterFrame = function () {
flag.enterFrame();
mc_100.getNextHighestDepth();
removeChild(mc_100);
addChild(mc_100);
};
attachMovie("go", "1", 1, {onRelease:function () {
getURL ("http://wm2006.popforge");
}});
Symbol 2 MovieClip [__Packages.de.popforge.event.EnterFrameListener] Frame 0
interface de.popforge.event.EnterFrameListener
{
}
Symbol 3 MovieClip [__Packages.de.popforge.wm2006.effect.Flag] Frame 0
class de.popforge.wm2006.effect.Flag implements de.popforge.event.EnterFrameListener
{
var source, output, bounds, perlinNoiseOffset, perlinNoiseBitmapData, perlinNoiseSeed, perlinNoiseFallOff, flag, displacement, light, gray, lightContrast, flagOffset, width, height;
function Flag (source, output) {
this.source = source;
this.output = output;
assemble();
}
function enterFrame() {
output.fillRect(bounds, 0);
perlinNoiseOffset[0].x = perlinNoiseOffset[0].x - (0.04 * source.width);
perlinNoiseOffset[1].x = perlinNoiseOffset[1].x - (0.03 * source.height);
perlinNoiseBitmapData.perlinNoise(0.66 * source.width, 0.66 * source.height, 2, perlinNoiseSeed, false, true, 6, false, perlinNoiseOffset);
perlinNoiseBitmapData.copyPixels(perlinNoiseFallOff, bounds, ORIGIN, perlinNoiseFallOff, ORIGIN, true);
output.applyFilter(flag, bounds, ORIGIN, displacement);
light.copyPixels(perlinNoiseBitmapData, bounds, ORIGIN, output, ORIGIN);
light.applyFilter(light, bounds, ORIGIN, gray);
output.draw(light, IDENTITY, lightContrast, "multiply");
}
function update() {
flag.copyPixels(source, source.rectangle, flagOffset);
}
function getFlagBitmapData() {
return(flag);
}
function appearMoreFabric() {
var _local2 = new flash.display.BitmapData(source.width, source.height, false);
_local2.noise(2, 128, 160, 7, true);
var _local3 = new flash.geom.Matrix(1, 0, 0, 1, flagOffset.x, flagOffset.y);
var _local4 = new flash.geom.ColorTransform(1, 1, 1, 0.25, 0, 0, 0, 0);
flag.draw(_local2, _local3, _local4);
}
function assemble() {
width = output.width;
height = output.height;
bounds = output.rectangle;
flag = new flash.display.BitmapData(width, height, true, 0);
flagOffset = new flash.geom.Point((width - source.width) / 2, (height - source.height) / 2);
createGrayFilter();
createPerlinNoiseFallOffGradient();
flag.copyPixels(source, source.rectangle, flagOffset);
perlinNoiseBitmapData = new flash.display.BitmapData(width, height, false, 0);
perlinNoiseOffset = [new flash.geom.Point(), new flash.geom.Point()];
perlinNoiseSeed = Math.floor(Math.random() * 256);
displacement = new flash.filters.DisplacementMapFilter(perlinNoiseBitmapData, ORIGIN, 2, 4, 0.125 * source.width, 0.2 * source.height, "ignore");
light = new flash.display.BitmapData(width, height, true, 0);
lightContrast = new flash.geom.ColorTransform(4, 4, 4, 1, 0, 0, 0, 0);
}
function createGrayFilter() {
gray = new flash.filters.ColorMatrixFilter([0, 0, 0.35, 0, 0, 0, 0, 0.35, 0, 0, 0, 0, 0.35, 0, 0, 0, 0, 0.35, 0.4, 0]);
}
function createPerlinNoiseFallOffGradient() {
perlinNoiseFallOff = new flash.display.BitmapData(width, height, true, 0);
var _local3 = _root.createEmptyMovieClip("shapeCreator", _root.getNextHighestDepth());
_local3._y = -16000;
var _local4 = new flash.geom.Matrix();
_local4.createGradientBox(width - flagOffset.x, height, 0, flagOffset.x, 0);
_local3.beginGradientFill("linear", [32896, 32896], [99, 0], [0, 96], _local4);
_local3.moveTo(0, 0);
_local3.lineTo(width, 0);
_local3.lineTo(width, height);
_local3.lineTo(0, height);
_local3.lineTo(0, 0);
_local3.endFill();
perlinNoiseFallOff.draw(_local3);
_local3.removeMovieClip();
}
static var ORIGIN = new flash.geom.Point();
static var IDENTITY = new flash.geom.Matrix();
}