flash on 2009-5-15
♥0 |
Line 52 |
Modified 2009-05-15 01:36:04 |
MIT License
archived:2017-03-20 06:41:01
ActionScript3 source code
/**
* Copyright kohie_yamashima ( http://wonderfl.net/user/kohie_yamashima )
* MIT License ( http://www.opensource.org/licenses/mit-license.php )
* Downloaded from: http://wonderfl.net/c/ofhc
*/
package {
import flash.display.DisplayObjectContainer;
import flash.display.Sprite;
import flash.display.Graphics;
import flash.events.Event;
import flash.events.MouseEvent;
public class Ripple {
var container:DisplayObjectContainer;
//コンストラクタ
function Ripple(theContainer:DisplayObjectContainer) {
container = theContainer;
container.stage.addEventListener(MouseEvent.MOUSE_DOWN,makeRipple);
container.stage.addEventListener(MouseEvent.MOUSE_MOVE,makeRipple);
}
//リングを4個作る
function makeRipple(event:MouseEvent):void {
for (var i:uint=1; i<=4; i++) {
//リングごとにスプライトを作る
var rippleSprite:Sprite = makeSprite();
//リングを描く
drawRing(rippleSprite);
}
}
//スプライトを作る
function makeSprite():Sprite {
//表示オブジェクトの作成とコンテナへの登録
var sp:Sprite = new Sprite();
container.addChild(sp);
sp.x = container.stage.mouseX;
sp.y = container.stage.mouseY;
//イベント設定
sp.addEventListener(Event.ENTER_FRAME,onEnterFrame);
return sp;
}
//リングを描く
function drawRing(sp:Sprite):void {
var thickness:uint=1;
var color:uint=Math.random()*0x666666;
var alpha:Number=1.0;
var pixelHinting:Boolean = false;
var scaleMode:String = "none";
var cr:Number=1 + Math.random()*2;
sp.graphics.lineStyle(thickness,color,alpha,pixelHinting,scaleMode);
sp.graphics.drawCircle(0,0,cr);
}
//スプライトのアニメーションを行う
function onEnterFrame(event:Event):void {
var sp:Sprite=event.target as Sprite;
if (sp.alpha > 0) {
sp.scaleX+= 2;
sp.scaleY+= 2;
sp.alpha-= 0.05;
} else {
//alphaが0になったので消去
sp.graphics.clear();
sp.removeEventListener(Event.ENTER_FRAME,onEnterFrame);
container.removeChild(sp);
sp = null;
}
}
}
}