ripple
▼元ネタ
* ActionScript3.0入門ノート
♥0 |
Line 49 |
Modified 2009-05-17 04:58:02 |
MIT License
archived:2017-03-09 13:04:13
ActionScript3 source code
/**
* Copyright chimanaco ( http://wonderfl.net/user/chimanaco )
* MIT License ( http://www.opensource.org/licenses/mit-license.php )
* Downloaded from: http://wonderfl.net/c/1ocD
*/
/**
* ▼元ネタ
* ActionScript3.0入門ノート
*/
package {
import flash.display.Sprite;
import flash.events.Event;
import flash.events.MouseEvent;
[SWF(width = "465", height = "465", frameRate = "60", backgroundColor = "#000000")]
public class Ripple extends Sprite {
private var _num:uint = 7;
private var _alpha:Number = 1;
private var _pScale:Number = 2.5;
private var _mAlpha:Number = .04;
public function Ripple() {
stage.addEventListener(MouseEvent.MOUSE_MOVE, makeRipple);
stage.addEventListener(MouseEvent.MOUSE_DOWN, makeRipple);
}
//波紋を作成
private function makeRipple(e:MouseEvent):void {
for (var i:uint = 1; i < _num; i++) {
var sp:Sprite = makeSprite();
drawRing(sp)
}
}
private function makeSprite():Sprite {
var sp:Sprite = new Sprite();
addChild(sp);
sp.x = stage.mouseX;
sp.y = stage.mouseY;
sp.addEventListener(Event.ENTER_FRAME, onEnterFrame);
return sp;
}
//円を描く
private function drawRing(sp:Sprite):void {
var thickness:uint = Math.random() * 4;
var color:uint = Math.random() * 0xFFFFFF;
var r:Number = 1 + Math.random() * 2;
sp.graphics.lineStyle(thickness, color, _alpha, true, "none");
sp.graphics.drawCircle(0, 0, r);
}
private function onEnterFrame(e:Event):void {
var sp:Sprite = e.target as Sprite;
if (sp.alpha > 0) {
sp.scaleX = sp.scaleY += _pScale;
sp.alpha -= _mAlpha;
}else {
sp.graphics.clear();
sp.removeEventListener(Event.ENTER_FRAME, onEnterFrame);
removeChild(sp);
sp = null;
}
}
}
}