画椭圆工具

import flash.display.Sprite;
import flash.events.MouseEvent;
import flash.events.Event;
var sp:Sprite = new Sprite ;
var qidianX:int = 0;//定义两个变量用来记录鼠标按下一瞬间的坐标,用来确定椭圆的坐标和计算其宽高
var qidianY:int = 0;
stage.addEventListener(Event.ENTER_FRAME,onEnter);//为了确保画图的流畅性定义一个ENTER_FRAME事件,每帧都侦听,不过不定义也可以画出来
function onEnter(e:Event):void
{
stage.addEventListener(MouseEvent.MOUSE_DOWN,onDown);
stage.addEventListener(MouseEvent.MOUSE_UP,onUp);
}
function onDown(e:MouseEvent):void
{
qidianX = mouseX;
qidianY = mouseY;
stage.addEventListener(MouseEvent.MOUSE_MOVE,onMove);
}
function onMove(e:MouseEvent):void
{
sp.graphics.clear();//清除未释放鼠标画的不必要的椭圆
sp.graphics.beginFill(0x00ff00,1);//开始填充颜色,并设置透明度
sp.graphics.lineStyle(5,0x654235,0.8,true);//边框线的样式
sp.graphics.drawEllipse(qidianX,qidianY,mouseX-qidianX,mouseY-qidianY);//开始画一个椭圆
sp.graphics.endFill();//结束填充
stage.addChild(sp);
}
function onUp(e:MouseEvent):void
{
//为了实现可以画多个椭圆,在鼠标释放时赋值给另一个变量,并添加到舞台
var sp1:Sprite=new Sprite();
sp1.graphics.copyFrom(sp.graphics);//把画的椭圆复制给sp1
addChild(sp1);
stage.removeEventListener(MouseEvent.MOUSE_MOVE,onMove);//移除鼠标移动事件完成画的总过程,
}
浙公网安备 33010602011771号