限制鼠标移动

时间:2013-03-22 01:42:31

标签: actionscript-3

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

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

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

但它似乎根本不起作用。我不能让鼠标在水平方向上100到200之间,在垂直方向上100到200之间。

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

2 个答案:

答案 0 :(得分:1)

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

而不是:

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

你必须使用:

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

答案 1 :(得分:0)

已经有一个关于此的问题,this one,它表示你根本无法限制鼠标移动。在您的情况下,您可以创建一个自定义对象,该对象将跟随鼠标光标,同时隐藏光标本身,从而“伪造”鼠标光标,对于该对象,您可以通过约束其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)。