+ -
当前位置:首页 → 问答吧 → 拖拽区域问题

拖拽区域问题

时间:2010-11-24

来源:互联网

我想做一个滚动条,拖拽对象是的Rectangle区域有个很怪的问题,我做了测试,做了一个大矩形的MC作为限制区域,再做了一个小矩形MC做为拖拽物体。两个矩形的注册点都在中心。
在把小矩形中心点对齐到大矩形的左上角后,mc3.startDrag(false,new Rectangle(defX,defY,box3.width,box3.height));这样效果是正常的,小矩形只能在大矩形内拖拽。
但想把小矩形完全包含在大矩形内进行拖拽时出问题了,mc3.startDrag(false,new Rectangle(defX,defY,box3.width - mc3.width,box3.height - mc3.height));这样做的话拖拽小矩形到大矩形右边和下边时总会有看上去1像素的边,这个边是怎么产生的啊?哪位解答一下,该怎么做?
defX和defY是小矩形的初始X,Y坐标。

作者: hy1980629   发布时间: 2010-11-24

Rectangle(defX,defY,box3.width - mc3.width + 1,box3.height - mc3.height + 1));这样就刚刚好,这1像素是怎么来的啊?

作者: hy1980629   发布时间: 2010-11-24

“在把小矩形中心点对齐到大矩形的左上角后” 这个是你手动对齐的么,可能问题在这里--手动对齐步一定准。

var defX:Number = box3.x - box3.width / 2;
var defY:Number = box3.y - box3.height / 2;
mc3.startDrag(true,new Rectangle(defX,defY,box3.width - mc3.width /2, box3.height - mc3.height/2));

看看下边和右边,是不是你想要的。

另外有些应用造成大约1个像素的偏差可能是由于矩形的边框造成的。

作者: yaonai2003   发布时间: 2010-11-24