限制将影片剪辑拖动到遮罩,使用舞台& mc缩放

时间:2012-09-27 23:45:17

标签: actionscript-3

我想将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;
}

1 个答案:

答案 0 :(得分:1)

Sprite.startDrag函数接受第二个参数,特别是对于拖动区域约束,DisplayObject.getBounds函数返回一个矩形,其中包含在参数DisplayObject的上下文中应用对象的边界。所以,基本上,你需要做的是:

mapcontainer.themap.startDrag(false /*or true*/, themapmask.getBounds(mapcontainer));

你可以完全放弃整个约束地图功能。