ちょっと前のフレームを並べて表示

こちらにちょっと前のフレームを並べてセンスのいい広告を表示しています。
http://www.shiffman.net/2007/08/25/run-lola-run-lola-run-lola-run/
これに触発されて、Flexでも作成してみました。

http://moeten.info/flex/20080326_videoMultiThum/bin-release/main.html
基本的にバッファさえ取得すればOKです。

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute"
    creationComplete="init()">
<mx:Script>
<![CDATA[
import mx.controls.Image;
import mx.controls.VideoDisplay;
private var video:VideoDisplay = new VideoDisplay();
private var bd:BitmapData = new BitmapData( 100 , 100 );
private var bd_arr:Array = new Array();
private var cnt:int = 100;
private var size:int = 40;
private function init():void{
    //ビデオの作成
    video.width = 100;
    video.height = 80;
    video.source = "test.flv";
    myCanvas.addChild(video);
    //画像をひたすらキャンバスに追加
    for( var i:int = 0 ; i< cnt ; i++ ){
        var image:Image = new Image();
        image.width  = size;
        image.height = size;
        image.x=(i%10) * size;
        image.y=size * int((i/10)) + 100;
        image.name = "myImage" + i;
        myCanvas.addChild(image);
    }
    this.addEventListener(Event.ENTER_FRAME , myTimer );
}
//タイマーイベント
private function myTimer( e:Event ):void{
    bd.draw(video);
    myDraw();
}
private var frame:int = 0;
private var bd2:BitmapData = new BitmapData( 100 , 100 );
private function myDraw():void{
    //画像のクローン作成
    bd2 = bd.clone();
    //配列に現在の画像を追加
    bd_arr[frame] = bd2;
    //バッファたまった?
    if( frame > cnt ){
        //配列の分だけ、画像を表示
        for( var i:int = 0 ; i < cnt ; i++ ){
            var im:Image = myCanvas.getChildByName("myImage"+ i) as Image;
            im.source = new Bitmap( bd_arr[frame-i] );
        }
        bd_arr[frame-cnt] = null;
    }
    frame++;
}
]]>
</mx:Script>
<mx:Canvas x="10" y="10" width="100%" height="100%" id="myCanvas"/>
</mx:Application>