[AS3.0]変形した MovieClip のローカルマウス座標

Pocket

マウスの座標を得るには「mouseX」や「mouseY」を使い、
ムービークリップの左上を基準(0,0)とした、マウス座標を得るには
「mc.mouseX」「mc.mouseY」のようにすれば、ムービークリップから見た
マウスのローカル座標が得られます。

しかし、ムービークリップの height や scaleX などを書き換えて変形した場合、
マウスのローカル座標が実際のピクセルと異なって取得されてしまいます。
例えば二倍に拡大した場合、実際の 1 ピクセルは 0.5 ピクセルとなります。

mc_box.scaleX = 2;

stage.addEventListener(MouseEvent.MOUSE_MOVE, function(){
  trace(mc_box.mouseX);
});

このズレを解消するには、元のムービークリップからの拡大率をマウス座標に掛けます。

trace(mc_box.mouseX * mc_box.scaleX);

もし他に根本的な解決策があればコメントよろしくお願いします。


Similar Posts:




コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です