我想将movieclip的拖动限制为名为themapmask的遮罩。可拖动的mc名称是mapcontainer.themap。它的父级mapcontainer与舞台成比例缩放。如何将拖动的mc约束到蒙版?下面的代码适用于加载,但不适用于缩放阶段。
function constrainMap():void {
leftedge = themapmask.x+mapcontainer.themap.width/2-mapcontainer.x;
rightedge= themapmask.x+themapmask.width-mapcontainer.width/2-mapcontainer.x;
topedge = themapmask.y+mapcontainer.themap.height/2-mapcontainer.y;
bottomedge = themapmask.y+themapmask.height-mapcontainer.height/2-mapcontainer.y;
if (mapcontainer.themap.x>leftedge) mapcontainer.themap.x=leftedge;
if (mapcontainer.themap.y>topedge) mapcontainer.themap.y=topedge;
if (mapcontainer.themap.x<rightedge) mapcontainer.themap.x=rightedge;
if (mapcontainer.themap.y<bottomedge) mapcontainer.themap.y=bottomedge;
}
答案 0 :(得分:1)
Sprite.startDrag函数接受第二个参数,特别是对于拖动区域约束,DisplayObject.getBounds函数返回一个矩形,其中包含在参数DisplayObject的上下文中应用对象的边界。所以,基本上,你需要做的是:
mapcontainer.themap.startDrag(false /*or true*/, themapmask.getBounds(mapcontainer));
你可以完全放弃整个约束地图功能。