
Код AS3:
package
{
import flash.display.Bitmap;
import flash.display.BitmapData;
import flash.display.Sprite;
import flash.events.Event;
import flash.display.StageScaleMode;
import flash.filters.DisplacementMapFilter;
import flash.geom.Point;
/**
* ...
* @author Ksoo
*/
public class Main extends Sprite
{
[Embed(source = 'image.jpg')]
private var waterImage:Class;
private var water_mc:Bitmap;
private var myfilters:Array;
private var myBitmap:BitmapData;
private var i:int;
public function Main():void
{
if (stage) init();
else addEventListener(Event.ADDED_TO_STAGE, init);
}
private function init(e:Event = null):void
{
removeEventListener(Event.ADDED_TO_STAGE, init);
// entry point
filters = new Array();
stage.scaleMode = StageScaleMode.NO_SCALE;
addEventListener(Event.ENTER_FRAME, anim);
myBitmap = new BitmapData(390,293,false,0);
var pt:Point = new Point(0,0);
var mpoint :Point = new Point(0,0);
var myDispl:DisplacementMapFilter = new DisplacementMapFilter(myBitmap, mpoint, 1, 2, 10, 50);
water_mc = new waterImage();
myfilters = new Array();
myfilters.push(myDispl);
water_mc.filters = myfilters;
addChild(water_mc);
i = 1;
}
private function anim(e:Event):void {
var filterList:Array = water_mc.filters;
var offset:Array;
offset = new Array();
offset.push(new Point(0, 0));
offset.push(new Point(i,i/4));
myBitmap.perlinNoise(50, 5, 2, 50, true, false, 7, true, offset);
//myBitmap.perlinNoise(
filterList.mapBitmap = myBitmap;
water_mc.filters = filterList;
i++;
}
}
}