forked from: forked from: forked from: Ported from http://actionsnippet.com/?p=2820
♥0 |
Line 52 |
Modified 2011-05-13 19:11:51 |
MIT License
archived:2017-03-20 07:59:25
ActionScript3 source code
/**
* Copyright environmental ( http://wonderfl.net/user/environmental )
* MIT License ( http://www.opensource.org/licenses/mit-license.php )
* Downloaded from: http://wonderfl.net/c/pCEO
*/
// forked from pasier's forked from: forked from: Ported from http://actionsnippet.com/?p=2820
// forked from pasier's forked from: Ported from http://actionsnippet.com/?p=2820
// forked from og2t's Ported from http://actionsnippet.com/?p=2820
package
{
import flash.display.Bitmap;
import flash.display.BitmapData;
import flash.display.BlendMode;
import flash.display.Sprite;
import flash.display.MovieClip;
import flash.events.ActivityEvent;
import flash.events.Event;
import flash.geom.Point;
import flash.geom.Rectangle;
import flash.media.Camera;
import flash.media.Video;
public class FrameDiff extends Sprite
{
private var cam:Camera = Camera.getCamera();
private var sw:Number = 465;
private var sh:Number = 465;
private var pnt:Point = new Point(0,0);
private var rect:Rectangle = new Rectangle(0,0,sw,sh);
private var video:Video = new Video(sw, sh);
private var solouno = 0;
private var canvas:BitmapData = new BitmapData(sw, sh, false, 0x000000);
private var buffer:BitmapData = new BitmapData(sw, sh, false, 0x000000);
private var feed :BitmapData = new BitmapData(sw, sh, false, 0x000000);
private var prev :BitmapData = new BitmapData(sw, sh, false, 0x000000);
private var frame:Bitmap = new Bitmap(canvas, "auto", true);
public function FrameDiff()
{
addChild(frame);
cam.setMode(sw, sh, 12);
video.attachCamera(cam);
cam.addEventListener(ActivityEvent.ACTIVITY, onActivityStart);
}
private function onActivityStart(evt:ActivityEvent):void
{
addEventListener(Event.ENTER_FRAME, onRun);
cam.removeEventListener(ActivityEvent.ACTIVITY, onActivityStart);
}
private function onRun(evt:Event):void
{
buffer.draw(video);
feed.copyPixels(buffer, rect, pnt);
buffer.draw(prev, nu)ll, null, BlendMode.MULTIPLY );
if ( solouno == 0 ) {
prev.draw(video);
solouno = 1;
}
canvas.copyPixels(buffer, rect, pnt);
}
}
}