Ripple butr0s forked:0favorite:0lines:58license : All rights reserved modified : 2009-04-23 03:43:11 Embed Tweet package { import flash.display.Sprite; [SWF(width="465", height="465", frameRate="30", backgroundColor="0x000000")] public class Ripple extends Sprite { public function Ripple():void { main = this; initialize(); } } } import flash.display.Sprite; import flash.display.Graphics; import flash.events.Event; import flash.events.MouseEvent; import flash.text.TextField; import flash.text.TextFormat; var main:Sprite, g:Graphics; var mouseClicked:Boolean; var collection:Array = new Array(); function initialize():void { g = main.graphics; main.stage.addEventListener(MouseEvent.MOUSE_DOWN, function(e:Event):void { mouseClicked = true; }); main.addEventListener(Event.ENTER_FRAME, update); var msg:TextField = new TextField(); msg.text = 'どこでもクリックができる'; //msg.text = 'You can click anywhere.'; msg.x = (465 - msg.width) / 2; msg.y = (465 - msg.height) / 2; msg.textColor = 0xffffff; msg.autoSize = "center"; main.stage.addChild(msg); } function update(e:Event):void { g.clear(); for(var i:int = 0; i < collection.length; i++) if(!collection[i].update()) { collection.splice(i, 1); i--; } if(mouseClicked == true) { mouseClicked = false; collection.push(new ExpandingCircle(main.mouseX, main.mouseY)); } } class ExpandingCircle extends Sprite { public var pos:Object = new Object(); public var speed:int = 5; public var radius:Number = 0; public function ExpandingCircle(x:int, y:int):void { pos.x = x; pos.y = y; } public function update():Boolean { radius += speed; alpha -= 0.05; var lineWidth:Number = (5 / alpha < 10) ? 5 / alpha : 10; // Draw circle! g.lineStyle(lineWidth , 0xffffff, alpha); g.drawCircle(pos.x, pos.y, radius); if(alpha < 0) return false; else return true; } } Code Fullscreen Preview Fullscreen Object splice clear MouseEvent.MOUSE_DOWN MouseEvent.ENTER_FRAME drawCircle Boolean push lineStyle text length Array Number int