在某种情况下,我需要限制鼠标移动。到目前为止,我已尝试使用此方法....
我只是给了它一个范围ti需要保持...
if (100 < mouseX < 200 && 100 < mouseY < 200) {
...
}
else
{
trace ("not between the boundary");
}
但它似乎根本不起作用。我不能让鼠标在水平方向上100到200之间,在垂直方向上100到200之间。
有人可以帮我解决这个问题吗?
答案 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
)。