0

あるイベントで、マウスの動きを制限する必要があります.これまでのところ、この方法を使用してみました....

私はそれを下にとどまる必要がある範囲を与えました...

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

しかし、まったく機能していないようです。横100~200、縦100~200の範囲からマウスを逃がすことができません。

この問題を解決する方法を教えてください。

4

2 に答える 2

1

ActionScript では、このように複数のコンパレータを連鎖させることはできません。比較を 2 つのステップに分割する必要があります。

それ以外の:

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 に答える