In case Flash no longer exists; a copy of this site is included in the Flashpoint archive's "ultimate" collection.

Dead Code Preservation :: Archived AS3 works from wonderfl.net

[WebCam] あれ、映像が、遅れて、ますよ

webカメラ持ってないと見れません。
ブラウザだとカメラのFPSが大分落ちる不思議
もっとギュンギュン動かせないかな
滑らか重視なので小さいままにしときます
拡大してみたいときは右クリからどうぞ
Get Adobe Flash player
by shikata 04 Sep 2009
/**
 * Copyright shikata ( http://wonderfl.net/user/shikata )
 * MIT License ( http://www.opensource.org/licenses/mit-license.php )
 * Downloaded from: http://wonderfl.net/c/uyzQ
 */

package {
    import flash.media.Camera;
    import flash.media.Video;
    import flash.display.Bitmap;
    import flash.display.BitmapData;
    import flash.display.Sprite;
    import flash.geom.Matrix;
    import flash.geom.ColorTransform;
    import flash.geom.Rectangle;
    import flash.events.Event;

    [SWF(width = "465", height = "465", frameRate = "60")]
    
    //webカメラ持ってないと見れません。
    //ブラウザだとカメラのFPSが大分落ちる不思議
    //もっとギュンギュン動かせないかな
    //滑らか重視なので小さいままにしときます
    //拡大してみたいときは右クリからどうぞ

    public class FlashTest extends Sprite {

        private var camera:Camera;
        private var _w:uint = 180;
        private var _h:uint = 120;
        private var _fps:uint = 30;
        private var video:Video;
        private var bmd:BitmapData = new BitmapData(_w,_h,false,0);
        private var bmp:Bitmap = new Bitmap(bmd,"auto",true);
        private var spr:Sprite = new Sprite();
        private var spr2:Sprite = new Sprite();

        public function FlashTest() { 

            addChild(spr);
            spr.addChild(bmp);
            //spr.scaleX = spr.scaleY = 2;
            
            addChild(spr2);
            //spr2.scaleX = spr2.scaleY = 2;
            spr2.y = _h*spr.scaleY

            camera = Camera.getCamera();
            camera.setMode(_w,_h,_fps)
            if (camera != null) {
                video = new Video(camera.width,camera.height);
                video.attachCamera(camera);
                spr2.addChild(video);
                addEventListener(Event.ENTER_FRAME,effect)
            }

            var bmps:Array = [];

            function effect(e:Event):void{
                var temp:BitmapData = new BitmapData(_w,_h,false,0)
                temp.draw(video)
                bmps.unshift(temp)
                if(bmps.length >= _h) bmps.pop()
                var i:uint
                var end:uint = bmps.length
                for(i=0;i<end;i++){
                    bmd.draw(bmps[i],null,null,"normal",new Rectangle(0,i,_w,1))
                }
            }
        }
        //Wonderfl.capture_delay( 10 );
    }
}