bimodanqing

自由画矩形工具(主要运用了画矢量图的graphics类)

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.drawRect(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);//移除鼠标移动事件结束画的过程

}

分类:

技术点:

相关文章:

  • 2021-06-10
  • 2022-12-23
  • 2021-04-24
  • 2021-07-28
  • 2022-12-23
  • 2022-12-23
  • 2021-11-19
  • 2021-07-28
猜你喜欢
  • 2021-11-14
  • 2022-12-23
  • 2021-08-23
  • 2022-12-23
  • 2021-10-24
  • 2022-12-23
相关资源
相似解决方案