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

いまさらWEBカメラ

いまさらWEBカメラを使ってみる
使うだけだと芸がないのでモザイク処理みたいなのをやっつけでつける
黒っぽいとこだけ映ります映るといいな
Get Adobe Flash player
by tak0294 05 Apr 2011
    Embed
/**
 * Copyright tak0294 ( http://wonderfl.net/user/tak0294 )
 * MIT License ( http://www.opensource.org/licenses/mit-license.php )
 * Downloaded from: http://wonderfl.net/c/2NUB
 */

//いまさらWEBカメラを使ってみる
//使うだけだと芸がないのでモザイク処理みたいなのをやっつけでつける
//黒っぽいとこだけ映ります映るといいな
package {
    import flash.geom.Rectangle;
    import flash.display.BitmapData;
    import flash.display.Bitmap;    
    import flash.display.Sprite;
    import flash.media.Camera;
    import flash.media.Video;
    import flash.events.*;
    import flash.utils.*;
    
    public class WebCamera extends Sprite
    {
        public var cam:Camera;    
        public var video:Video;
        public var cameraTimer:Timer = new Timer(100);
        
        public var frameBitmapData:BitmapData;
        public var frameBitmap:Bitmap;
        public const BLOCKSIZE:uint = 3;
        public function WebCamera()
        {
            // write as3 code here..
            cam = Camera.getCamera();
            if ( cam != null )
            {
                // ビデオオブジェクト配置:サイズ指定
                video = new Video( 400 , 320 );
                // カメラ設定
                video.attachCamera( cam );
                // addChildで表示
                //addChild( video );
           }
           
           //bitmapData準備.
           frameBitmapData = new BitmapData(video.width, video.height, true, 0x00FFFFFF);
           frameBitmap = new Bitmap(frameBitmapData);
           addChild(frameBitmap);
           
           cameraTimer.addEventListener(TimerEvent.TIMER, cameraTimerHandler);
           cameraTimer.start();
        }
        
        private function cameraTimerHandler(e:TimerEvent):void
        {
            var bitmapData:BitmapData = new BitmapData(video.width, video.height, true, 0x00FFFFFF);
            bitmapData.draw(video);
            
            //frameBitmapData初期化.
            frameBitmapData.fillRect(new Rectangle(0,0,video.width,video.height), 0x00FFFFFF);
            
            for(var ii:uint=0;ii<video.width;ii+=BLOCKSIZE)
            {
                for(var jj:uint=0;jj<video.height;jj+=BLOCKSIZE)
                {
                    var color:uint = bitmapData.getPixel32(ii,jj);
                  
                    if(color < 0xFF444444)
                        color = 0xFFFF0000;
                    else
                        color = 0;
                        
                    frameBitmapData.fillRect(new Rectangle(ii,jj,BLOCKSIZE,BLOCKSIZE), color);
                    
                }

            }
            
            bitmapData.dispose();

        }

    }
}