flash as3 代码画线问题,有a b两点,鼠标可拖动a点移动,过程中实时显示ab线段

如果只是水平移动a呢,不能用StartDrag了,怎么办?... 如果只是水平移动a呢,不能用StartDrag了,怎么办? 展开
 我来答
FlashASer

2013-12-12 · Animate,Photoshop,职场经验,人生感悟!
FlashASer
采纳数:14298 获赞数:18657

向TA提问 私信TA
展开全部

var shape:Shape=new Shape();//定义画线容器

var temp_x:Number=0;//记录也鼠标的相对坐标

this.addChild(shape);

this.addEventListener(Event.ENTER_FRAME,DrawLineEvent);//帧频事件,用于画线

function DrawLineEvent(e:Event):void

{

shape.graphics.clear();//画线前先清空之前画的内容

shape.graphics.lineStyle(1, 0x000000);//定义线的宽度和颜色

shape.graphics.moveTo(a_mc.x,a_mc.y);

shape.graphics.lineTo(b_mc.x,b_mc.y);

shape.graphics.endFill();

}

a_mc.addEventListener(MouseEvent.MOUSE_DOWN,StartDragEvent);//添加鼠标拖动的功能

a_mc.addEventListener(MouseEvent.MOUSE_UP,StopDragEvent);

b_mc.addEventListener(MouseEvent.MOUSE_DOWN,StartDragEvent);

b_mc.addEventListener(MouseEvent.MOUSE_UP,StopDragEvent);

function StartDragEvent(e:MouseEvent):void

{

var obj:Object=e.currentTarget;

temp_x=this.mouseX-obj.x;

obj.addEventListener(Event.ENTER_FRAME,FollowMouseEvent);

}

function StopDragEvent(e:MouseEvent):void

{

var obj:Object=e.currentTarget;

obj.removeEventListener(Event.ENTER_FRAME,FollowMouseEvent);

}

function FollowMouseEvent(e:Event):void

{

var obj:Object=e.target;

obj.x=this.mouseX-temp_x;//通过相对坐标计算

}

追问
好了,谢谢
追答
不客气
来自:求助得到的回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式