Drawing Circle by Draging Mouse Kitosan1986 forked:2favorite:0lines:79license : MIT License modified : 2010-02-08 07:44:53 Embed Tweet 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(); } } Code Fullscreen Preview Fullscreen MouseEvent target mouseY mouseX addEventListener MouseEvent.MOUSE_MOVE currentTarget trace buttonMode MouseEvent.MOUSE_OUT MouseEvent.MOUSE_OVER scaleY Boolean scaleX removeChild removeEventListener MouseEvent.MOUSE_UP drawCircle MouseEvent.MOUSE_DOWN MouseEvent.CLICK sort new page view favorite forked pv300 forked from: Drawing Circle by.. Kitosan1986 forked:0 favorite:0lines:79 (diff:75) pv430 forked from: Drawing Circle by.. Kitosan1986 forked:2 favorite:0lines:79 (diff:4)