MotionBlur風Camera
重い・・・
/**
* Copyright 178ep3 ( http://wonderfl.net/user/178ep3 )
* MIT License ( http://www.opensource.org/licenses/mit-license.php )
* Downloaded from: http://wonderfl.net/c/lbFV
*/
//重い・・・
package
{
import flash.display.Bitmap;
import flash.display.BitmapData;
import flash.display.Sprite;
import flash.events.Event;
import flash.geom.ColorTransform;
import flash.geom.Matrix;
import flash.media.Camera;
import flash.media.Video;
import net.hires.debug.Stats;
public class MotionBlurCamera extends Sprite
{
private var _bmdList:Vector.<BitmapData> = new Vector.<BitmapData>();
private var _bmd:BitmapData;
private var _bmp:Bitmap;
private var _camera:Camera;
private var _video:Video;
public function MotionBlurCamera()
{
if(!stage)addEventListener(Event.ADDED_TO_STAGE,init);
else init();
}
private function init(e:Event=null)
{
_camera = Camera.getCamera();
_camera.setMode(465,465,30);
_video = new Video(465,465);
_video.attachCamera(_camera);
_bmd = new BitmapData(465,465,true,0);
_bmp = addChild(new Bitmap(_bmd))as Bitmap;
addChild(new Stats());
addEventListener(Event.ENTER_FRAME,loop);
}
private function loop(e:Event):void
{
var bmd:BitmapData = new BitmapData(465,465,true,0);
bmd.draw(_video);
_bmdList.unshift(bmd);
if(_bmdList.length>30)_bmdList.pop();
var i:int = 0;
var len:uint = _bmdList.length;
for(i=0; i<len; i++)
{
_bmd.draw(_bmdList[i],null,new ColorTransform(1,1,1,(30-i)/30));
}
}
}
}