forked from: forked from: Drawing Circle by Draging Mouse
forked from forked from: Drawing Circle by Draging Mouse (diff: 1)
ActionScript3 source code
/**
* Copyright fukt ( http://wonderfl.net/user/fukt )
* MIT License ( http://www.opensource.org/licenses/mit-license.php )
* Downloaded from: http://wonderfl.net/c/68Rl
*/
// forked from Kitosan1986's forked from: Drawing Circle by Draging Mouse
package{
import flash.display.Sprite;
import flash.events.*;
[SWF(backgroundColor="#FFFFFF",width='600',height='600', frameRate=60)]
public class DrawCircle extends Sprite {
private var Balls:Array = new Array();
private var Num:uint = 0;
private var ball:Ball;
private var MouseSw:Boolean = false;//
private var OverSw:Boolean = false;//
//押下時マウスの座標
private var pre_mx:Number;
private var pre_my:Number;
//マウスを放したときの座標
private var mx:Number;
private var my:Number;
//ボールのアルファ値
private var xalpha:Number = 0.7;
//半径
private var radius:Number = 15; //半径はみんな同じ。つまりmassも同じで属性的に全く同じ
//コンストラクタ
public function DrawCircle(){
stage.addEventListener(MouseEvent.MOUSE_DOWN, MouseDown);
}
private function MouseDown(event:MouseEvent):void{
if(OverSw == false){
MouseSw = true;
var cx:Number = stage.mouseX;
var cy:Number = stage.mouseY;
pre_mx = cx;
pre_my = cy;
trace(cx);
trace(cy);
MakeBall(cx,cy);
stage.addEventListener(MouseEvent.MOUSE_MOVE, MouseMove);
}
}
private function MouseMove(event:MouseEvent):void{
//for(var i:uint=0;i<Num;i++){
var dx:Number = ball.x - stage.mouseX;
var dy:Number = ball.y - stage.mouseY;
var radius:Number = Math.sqrt(dx*dx + dy*dy);
ball.scaleX = radius;
ball.scaleY = radius;
//}
stage.addEventListener(MouseEvent.MOUSE_UP, MouseUp);
}
private function MouseUp(event:MouseEvent):void{
MouseSw = false;
stage.removeEventListener(MouseEvent.MOUSE_MOVE, MouseMove);
}
private function MakeBall(cx:Number,cy:Number):void{
ball = new Ball(20,Math.random()*0xffffff,0.5);
addChild(ball);
ball.x = cx;
ball.y = cy;
Num += 1;
ball.buttonMode = true;
ball.addEventListener(MouseEvent.MOUSE_OVER,MouseOverd);
ball.addEventListener(MouseEvent.MOUSE_OUT,MouseOut);
ball.addEventListener(MouseEvent.CLICK,DClicked);
Balls.push(ball);
}
private function DClicked(event:MouseEvent):void{
var target:Ball = event.currentTarget as Ball;
removeChild(target);
}
private function MouseOverd(event:MouseEvent):void{
OverSw = true;
}
private function MouseOut(event:MouseEvent):void{
OverSw = false;
}
}
}
/*-------------------------------------
パッケージ外クラス定義
---------------------------------------*/
import flash.display.*;
import flash.events.*;
class Ball extends Sprite
{
public var sw:Boolean = false;
//x
function Ball(rd:Number,cl:Number,al:Number){
this.graphics.beginFill(cl,al);
this.graphics.drawCircle(0, 0, 1);
this.graphics.endFill();
}
}