forked from: Sample(クリックでサークル作成)

by hacker_3k53mado forked from Sample(クリックでサークル作成) (diff: 1)
練習
Flash Math & Physics Design:ActionScript 3.0による数学・物理学表現[入門編]
http://www.amazon.co.jp/Flash-Math-Physics-Design-3-0%E3%81%AB%E3%82%88%E3%82%8B%E6%95%B0%E5%AD%A6%E3%83%BB%E7%89%A9%E7%90%86%E5%AD%A6%E8%A1%A8%E7%8F%BE/dp/4797351411
♥0 | Line 46 | Modified 2009-11-06 03:02:28 | MIT License
play

ActionScript3 source code

/**
 * Copyright hacker_3k53mado ( http://wonderfl.net/user/hacker_3k53mado )
 * MIT License ( http://www.opensource.org/licenses/mit-license.php )
 * Downloaded from: http://wonderfl.net/c/A9Np
 */

// forked from mattodesign's Sample(クリックでサークル作成)
//練習
//Flash Math & Physics Design:ActionScript 3.0による数学・物理学表現[入門編]
//http://www.amazon.co.jp/Flash-Math-Physics-Design-3-0%E3%81%AB%E3%82%88%E3%82%8B%E6%95%B0%E5%AD%A6%E3%83%BB%E7%89%A9%E7%90%86%E5%AD%A6%E8%A1%A8%E7%8F%BE/dp/4797351411

package 
{
	import flash.display.Sprite;
	import flash.events.Event;
	import flash.geom.Point;
	import flash.text.TextField;
	import flash.utils.Timer;
	import flash.events.TimerEvent;
	import flash.events.MouseEvent;
	
	public class ClickCircle extends Sprite {
		private var circle:Sprite;
		private var ookisa:Number = 0;
		private var timer:Timer;
		private var randomColor:int;
		private var r_multiplier:Number;
		private var g_multiplier:Number;
		private var b_multiplier:Number;
		private var timerFlg:Boolean;
		private var textFld:TextField = new TextField();
		
		//コンストラクタ
		public function ClickCircle():void {
			stage.addEventListener(MouseEvent.CLICK, makeCircle);
			//1秒間に30回loopを実行
			timer = new Timer(33);
			timer.addEventListener(TimerEvent.TIMER, loop);
			//テキストエリア作成
			textFld.text = "CLICK";
			addChild(textFld);
		}
		//クリックでcircle作成
		private function makeCircle(event:MouseEvent):void {
			var mousePt:Point = new Point(this.mouseX, this.mouseY);
			//ランダムな色を設定
			randomColor = Math.random() * 0xFFFFFF;
			//circle作成
			circle = new Sprite();
			circle.graphics.beginFill(randomColor,0.5);
			circle.graphics.drawCircle(0,0, 1);
			circle.graphics.endFill();
			circle.x = mousePt.x;
			circle.y = mousePt.y;
			stage.addChild(circle);
			//大きさを初期化
			ookisa = 0;
			timer.start();
		}
				
		private function loop(event:TimerEvent):void {
			ookisa += 5;
			circle.alpha -= 0.005;
			circle.scaleX = circle.scaleY = ookisa;
		}
	}
}