ぐにゃらん
package{
import flash.display.*;
import flash.events.*;
import flash.filters.*;
import flash.geom.Point;
import flash.media.Camera;
import flash.media.Video;
import flash.text.TextField;
import flash.text.TextFieldAutoSize;
import flash.text.TextFormat;
import flash.utils.setInterval;
public class Hoge extends Sprite{
[SWF(width="465", height="465", backgroundColor="0x000000", frameRate="30")]
private var camera:Camera;
private var video:Video;
private var canvas:BitmapData;
private var bm:Bitmap;
private var map:BitmapData;
private var df:DisplacementMapFilter;
private var bf:BlurFilter;
private var k:Number;
private var renderID:Number;
private var maxRenderID:Number;
public function Hoge():void{
camera = Camera.getCamera();
if(!camera) {
throw new Error('No Camera!');
}
camera.setMode(320, 240, 30);
video = new Video(320, 240);
video.attachCamera(this.camera);
video.scaleX = video.scaleY = 465 / 240;
video.width = video.height = 465;
map = new BitmapData(465, 465);
map.perlinNoise(100, 100, Math.floor(Math.random() * 10) + 1, 2, false, false, 7, false);
df = new DisplacementMapFilter(map, new Point(0,0), 1, 1, 30, 30);
bf = new BlurFilter();
k = 0;
addChild(video)
addEventListener(Event.ENTER_FRAME, enterFrameHandler);
}
private function enterFrameHandler(evt:Event):void{
k += 2;
df.scaleX += 30 * Math.cos(k/180*Math.PI);
bf.blurX = bf.blurY = 4 * Math.abs(Math.sin(k/180*Math.PI));
video.filters = [df, bf];
if(k >= 360){
k = 0;
map.perlinNoise(200, 200, 10, 2, false, false, 7, false);
}
}
}
}