Exemple en image :



Le code (pas très optimisé !) :
import flash.display.BitmapData;
import flash.geom.Rectangle;
import flash.geom.Point;
System.showSettings(0);
localCamera = Camera.get();
maCam.attachVideo(localCamera);
trame = new flash.display.BitmapData(425, 320, true, 0xff000000);
trame2 = new flash.display.BitmapData(425, 320, true, 0xff000000);
var clip:MovieClip = this.createEmptyMovieClip("clip", this.getNextHighestDepth());
var clip2:MovieClip = this.createEmptyMovieClip("clip", this.getNextHighestDepth());
clip.attachBitmap(trame, 10, "auto", true);
clip2.attachBitmap(trame2, 11, "auto", true);
clip.blendMode = 4;
clip2.blendMode = 4;
run = function () {
i += 1;
z = Math.random()*6;
t = Math.random()*3;
trame.perlinNoise(t, z, 1, 1+i, false, false, 2, false, null);
trame2.perlinNoise(200, t, 1, 1+i, false, false, t, false, null);
maCam._x = Math.random()*0.5;
maCam._y = Math.random()*1;
};
var filterObj = new flash.filters.ColorMatrixFilter();
filterObj.matrix = new Array(1/3, 1/3, 1/3, 0, 0, 1/3, 1/3, 1/3, 0, 0, 1/3, 1/3, 1/3, 0, 0, 0, 0, 0, 1, 0);
intervalId = setInterval(this, "run", 50);
tv_mc.swapDepths(16000);
this.filters = [filterObj];