またはlocalX/localY
の表示オブジェクトの座標をトレースすると、x
は1で始まるのに対して、y
は0から始まるのはなぜですか?ActionScript - 不正確なマウス座標ですか?
たとえば、単純な400 x 400ピクセルのスプライトを、ステージの上にマウスのローカル座標をトレースするハンドラ関数を呼び出すイベントリスナで描画しました。
最初の左上のピクセルは{x:1, y:0}
を返し、最後の右下のピクセルは{x:400, y:399}
を返します。 x
とy
の両方が同じ値で開始と終了しないようにしてください。私は最初のマウス座標(0または1のどちらか)にはどちらが意味があるのかはわかりませんが、違いは分かりません。
[SWF(width = "1000", height = "600", backgroundColor = "0xCCCCCC")]
import flash.display.Sprite;
import flash.events.MouseEvent;
var darkBlueRect:Sprite = createSprite();
darkBlueRect.x = 23;
darkBlueRect.y = 42;
addChild(darkBlueRect);
darkBlueRect.addEventListener(MouseEvent.MOUSE_MOVE, mouseMoveEventHandler);
function mouseMoveEventHandler(evt:MouseEvent):void
{
trace(darkBlueRect.mouseX, evt.localX, darkBlueRect.mouseY, evt.localY);
}
function createSprite():Sprite
{
var result:Sprite = new Sprite();
result.graphics.beginFill(0x0000FF, 0.5);
result.graphics.drawRect(0, 0, 400, 400);
result.graphics.endFill();
return result;
}
良い質問です。また、 'trace(darkBlueRect.localToGlobal(new Point(evt.localX、evt.localY)));'(x = 24、y = 42) 'を返す' – shanethehat
私は全く同じ結果を得ていません。スプライトの最後の座標は、必要に応じて上がっています(グローバル423/442、ローカル400/400)。また、mySprite.localXとmySprite.mouseXは同じであることに注意してください。とにかく私が見つけている唯一のエラーは、起源にあります.Xは1から0をクリックすることはできません。 –