package { import flash.display.Bitmap; import flash.display.BitmapData; import flash.display.BitmapDataChannel; import flash.display.GradientType; import flash.display.SpreadMethod; import flash.display.Sprite; import flash.display.MovieClip; import flash.filters.BitmapFilter; import flash.events.Event; import flash.events.MouseEvent; import flash.filters.DisplacementMapFilter; import flash.filters.DisplacementMapFilterMode; import flash.geom.Matrix; import flash.geom.Point; import flash.text.TextField; public class DisplacementMapFilterExample extends Sprite { private var m:mymap; private var img; private var mycover; private var bitmapData; private var displaceFilter; private var strengthX:Number = 70; private var strengthY:Number = 40; public function DisplacementMapFilterExample() { // draw(); m = new mymap(); img = new test(); mycover = new cover(); bitmapData = new BitmapData(img.width, img.height); var mapPoint = new Point(0, 0); displaceFilter = new DisplacementMapFilter(bitmapData, mapPoint, BitmapDataChannel.RED, BitmapDataChannel.BLUE, strengthX, strengthY, DisplacementMapFilterMode.CLAMP); addChild(m); addChild(img); addChild(mycover); //addEventListener(MouseEvent.MOUSE_MOVE, moveDisplacer); img["dot"].addEventListener(MouseEvent.MOUSE_DOWN, startDotDrag); // img["dot"].addEventListener(MouseEvent.MOUSE_UP, stopDotDrag); // addEventListener(Event.ENTER_FRAME, moveDisplacer); var t } private function addDrop(e:Event=null){ var r = new raindrop(); r.x = rand(0, 550); r.y = rand(0, 400); m.addChild(r); } private function rand(minVal:int, maxVal:int):int { return minVal + Math.floor(Math.random() * (maxVal + 1 - minVal)); } private function startDotDrag(e:Event=null){ addEventListener(MouseEvent.MOUSE_MOVE, dragDot); stage.addEventListener(MouseEvent.MOUSE_UP, stopDotDrag); } private function stopDotDrag(e:Event=null){ removeEventListener(MouseEvent.MOUSE_MOVE, dragDot); stage.removeEventListener(MouseEvent.MOUSE_UP, stopDotDrag); } private function dragDot(e:Event=null){ //img["dot"] img["dot"].x = mouseX ; img["dot"].y = mouseY ; } //var bmp = new flash.display.BitmapData(image_mc._width, image_mc._height); private function moveDisplacer(e:Event=null){ //m["displacer"].x = mouseX ; //m["displacer"].y = mouseY ; if( m["displacer"].y < 410){ m["displacer"].y += 10; }else{ m["displacer"].y = -220; } //mycover.x = mouseX ; //mycover.y = mouseY ; bitmapData.draw(m); img.filters = [displaceFilter]; } } }