画椭圆工具

 

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);//移除鼠标移动事件完成画的总过程,

}

posted on 2012-10-18 00:34  笔墨丹青  阅读(936)  评论(0)    收藏  举报

导航