Beautifl - Flash Gallery

Preview

Sakotsu Camera
Saqoosha 2009年8月30日 MIT License
?
from zk_diary 2007-08-20 http://d.hatena.ne.jp/zk3/20070820
      // from zk_diary 2007-08-20 http://d.hatena.ne.jp/zk3/20070820
package {
    
    import flash.display.Bitmap;
    import flash.display.BitmapData;
    import flash.display.Sprite;
    import flash.events.Event;
    import flash.media.Camera;
    import flash.media.Video;

    [SWF(width=465, height=465, frameRate=30)]
    
    public class FlashTest extends Sprite {
        
        private static const BUFFER_LEN:int = 16;
        
        private var _camera:Camera;
        private var _video:Video;
        private var _buffer:Array = [];
        private var _index:int = 0;
        
        private var _current:Bitmap;
        
        public function FlashTest() {
            
            this._camera = Camera.getCamera();
            if (!this._camera) {
                return;
            }
            this._camera.setMode(320, 240, 30);
            this._video = new Video(320, 240);
            this._video.attachCamera(this._camera);
            
            for (var i:int = 0; i < BUFFER_LEN; i++) {
                var bm:BitmapData = new BitmapData(320, 240, false, 0);
                this._buffer.push(bm);
                var b:Bitmap = new Bitmap(bm);
                b.x = (i % 4) * 100;
                b.y = int(i / 4) * 100;
                b.width = 100;
                b.height = 100;
                this.addChild(b);
            }
            
            
            this._current = this.addChild(new Bitmap()) as Bitmap;
            this.addEventListener(Event.ENTER_FRAME, this._update);
        }
        
        private function _update(e:Event):void {
            BitmapData(this._buffer[this._index]).draw(this._video);
            if (++this._index == 16) {
                this._index = 0;
            }
            
            this._current.bitmapData = this._buffer[int(Math.random() * BUFFER_LEN)];
        }
    }
}