actionscript 3-AS3如何将边界设置为鼠标向下拖动



我是AS3的新手,我有一个比舞台(200w)大的正方形(1200w)。现在,你可以尽可能地左右拖动它。我如何设置你可以拖动的平方的限制/边界?这样它就不能拖到最大宽度之外了?

这是一张图像

this.addEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler);
this.addEventListener(MouseEvent.MOUSE_UP, mouseUpHandler);
function mouseDownHandler(e:MouseEvent) {
    this.addEventListener(MouseEvent.MOUSE_MOVE, mouseMoveHandler);
}
function mouseMoveHandler(e:MouseEvent) {
    square_mc.x = mouseX;
}
function mouseUpHandler(e:MouseEvent) {
    removeEventListener(MouseEvent.MOUSE_MOVE, mouseMoveHandler);
}

请注意,我不想使用startdrag()方法

根据您的图像,假设mc指的是蓝色方框。

var ox:Number = 0;
mc.addEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler);
function mouseDownHandler(e:MouseEvent):void
{
    ox = mc.mouseX;
    stage.addEventListener(MouseEvent.MOUSE_MOVE, mouseMoveHandler);
    stage.addEventListener(MouseEvent.MOUSE_UP, mouseUpHandler);
}
function mouseUpHandler(e:MouseEvent):void
{
    stage.removeEventListener(MouseEvent.MOUSE_MOVE, mouseMoveHandler);
}
function mouseMoveHandler(e:MouseEvent):void
{
    mc.x = mc.parent.mouseX - ox;
    if(mc.x > 0) mc.x = 0;
    if(mc.x + mc.width < stage.stageWidth) mc.x = stage.stageWidth - mc.width;
}

希望这就是你想要的。

最新更新