<?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>