<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" 
    layout="absolute" applicationComplete="onAppComplete()" viewSourceURL="srcview/index.html">
    <mx:Script>
        <![CDATA[
            import mx.events.VideoEvent;
            import mx.binding.utils.BindingUtils;
            import mx.core.UIComponent;
            [Embed("image_over_video.pbj", mimeType="application/octet-stream")]
            private var TestFilter:Class;

            
            [Embed("joker_s.png")]
            private var myImg:Class;
            var myBmp:Bitmap;
                
            private var shader:Shader;
            private var filter:ShaderFilter;
            import flash.display.*;
            
            
            private function onAppComplete():void {
                shader = new Shader(new TestFilter() as ByteArray);

                  myBmp = Bitmap(new myImg()); 
                shader.data.oImage2.input = myBmp.bitmapData;
                shader.data.area.value = [0,0,myBmp.width,myBmp.height];
                filter = new ShaderFilter(shader);
                animate.toValue = myBmp.width;

            }    

            
            private function onProgress(event:VideoEvent):void {
                if ((event.playheadTime > 1) && !played) {
                    played = true;
                    animate.play([this]);
                }
                
            }
            
            var played:Boolean = false;
            public function set myProp(time:Number) {
                    shader.data.distort.value = [time*2];
                    var amplitude:Number = Math.sin(time/myBmp.width * Math.PI * 6)*10;
                    var waveL:Number = 1 + Math.sin(time/myBmp.width * Math.PI * 6 + Math.PI/2)*10;
                    shader.data.amplitude.value = [amplitude,amplitude]
                    video.filters = [filter];
            }
            

        ]]>
    </mx:Script>

    <mx:AnimateProperty id="animate" fromValue="0" 
        toValue="{myBmp.width}" duration="2000" property="myProp" />
    <mx:VideoDisplay x="34" y="41" autoPlay="true" 
        playheadUpdate="onProgress(event)" 
        id="video" source="mcorlan.flv"/>
    
</mx:Application>