0

在某些情况下,我需要限制鼠标移动。到目前为止,我已经尝试过使用这种方法......

我只是给它一个范围 ti 需要保持在...

if (100 < mouseX < 200 &&  100 < mouseY < 200) {
...
}
else
{
trace ("not between the boundary");
}

但它似乎根本不起作用。我不能让鼠标离开水平 100 到 200 和垂直 100 到 200 之间的区域。

有人可以帮我解决这个问题吗?

4

2 回答 2

1

在 ActionScript 中,您不能以这种方式链接多个比较器。您必须将比较分为两个步骤。

代替:

100 < mouseX < 200 && 100 < mouseY < 200

你必须使用:

100 < mouseX && mouseX < 200 && 100 < mouseY && mouseY < 200

于 2013-03-22T01:48:36.560 回答
0

已经有一个关于这个的问题,这个,它说你根本不能限制鼠标移动。在您的情况下,您可以创建一个自定义对象,该对象将在隐藏光标本身的同时跟随鼠标光标,从而“伪造”鼠标光标,并且对于该对象,您可以通过约束其 X&Y 坐标来限制其移动。是的,ActionScript 中没有比较运算符的链接。

var mcCursor:MovieClip; // assign this to a proper asset
...
function onMouseMove(e:MouseEvent):void {
    mcCursor.x=e.stageX; // assuming mcCursor to be placed directly on stage above all
    mcCursor.y=e.stageY;
    if (mcCursor.x<100) mcCursor.x=100;
    if (mcCursor.x>200) mcCursor.x=200;
    if (mcCursor.y<100) mcCursor.y=100;
    if (mcCursor.y>200) mcCursor.y=200;
}

然后,当您解析鼠标点击时,检查是否mcCursor在正确的位置,如果不是,请不要对点击做出反应(return来自侦听器)。

于 2013-03-22T01:56:26.767 回答