package { import flash.display.Sprite; import flash.display.Bitmap; import flash.display.BitmapData; import flash.display.Loader; import flash.display.LoaderInfo; import flash.events.Event; import flash.net.URLRequest; import flash.system.LoaderContext; import flash.events.MouseEvent; [SWF(width="465", height="465", backgroundColor="0xFFFFFF", frameRate="60")] public class LiquidFx extends Sprite { private var main:Sprite; private var sub:Sprite; // private var w:int = 480; private var h:int = 480; // private var mainmask:Sprite; private var submask:Sprite; // private var count:Number=0 private var speed:Number=4; // public function LiquidFx() { var loader:Loader = new Loader(); loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onImageLoaded); loader.load(new URLRequest('http://www.k3lab.com/wonderfl/test.jpg'), new LoaderContext(true)); } private function onImageLoaded(e:Event):void { var loader:Loader = Loader(LoaderInfo(e.target).loader); var original:BitmapData = Bitmap(loader.content).bitmapData; //表示用スプライト main = addChild(new Sprite()) as Sprite; main.graphics.beginBitmapFill(original, null, false) main.graphics.drawRect(0, 0, w, h); main.graphics.endFill(); //エフェクト用スプライト sub = addChild(new Sprite()) as Sprite; sub.graphics.beginBitmapFill(original, null, false) sub.graphics.drawRect(0, 0, w, h); sub.graphics.endFill(); sub.scaleX=100 //各マスクセット mainmask = addChild(new Sprite()) as Sprite; submask = addChild(new Sprite()) as Sprite; main.mask = mainmask sub.mask = submask // stage.addEventListener(MouseEvent.MOUSE_DOWN, _down) addEventListener(Event.ENTER_FRAME,update) } private function _down(e:Event):void { count=0 } private function update(e:Event):void { count +=speed sub.x = (0 - count) *sub.scaleX submask.graphics.clear(); submask.graphics.beginFill(0x0); submask.graphics.moveTo(count, 0) submask.graphics.lineTo(w, 0) submask.graphics.lineTo(w, h) submask.graphics.lineTo(count, h) submask.graphics.lineTo(count, 0) submask.graphics.endFill() mainmask.graphics.clear(); mainmask.graphics.beginFill(0); mainmask.graphics.moveTo(0, 0) mainmask.graphics.lineTo(count, 0) mainmask.graphics.lineTo(count, h) mainmask.graphics.lineTo(0, h) mainmask.graphics.lineTo(0, 0) mainmask.graphics.endFill() } } } LiquidFx