0

ルート上:

ツリークリップがありますカッタークリップがあります

ツリークリップには子としてブランチグリッド(ドット)があります

一度クリックすると、カッターと各ドット(ツリーの子)の間でhitTestが発生しますが、x、y座標は非常に異なります。

カッターがオンの場合:275、267ドットのヒットテスト:ヒット:-306.8、-118.35

唯一のグリッドに当たるのと同じようにするにはどうすればよいですか。 注:hitTestが発生すると、グリッドの大部分にヒットします。カッターエッジのすぐ下にあるドットを取得しようとしています。

x、yの値を差し引いて厳密に一致させようとしましたが、別のドットをクリックすると、y座標で常に3〜5ピクセルまたは10〜15ピクセルの差があります。

ありがとう、Najm。

4

2 に答える 2

1

ドットは別のムービークリップの一部であり、カッターはそうではないため、ドットの座標を変換する必要があります。最も簡単な方法は、localToGlobal()またはglobalToLocal()を使用してカッターの座標を変換することです。これらの機能の使用方法の詳細については、Adobeのドキュメントをお試しください...

于 2012-10-24T16:46:58.440 に答える
0

ありがとう@Rizzla、

import flash.display.Sprite;
import flash.events.MouseEvent;
import flash.geom.Point;

var square:Sprite = new Sprite();
square.graphics.beginFill(0xFFCC00);
square.graphics.drawRect(0, 0, 100, 100);
square.x = 100;
square.y = 200;

addChild(square);

square.addEventListener(MouseEvent.CLICK, traceCoordinates)

function traceCoordinates(event:MouseEvent):void {
    var clickPoint:Point = new Point(square.mouseX, square.mouseY);
    trace("display object coordinates:", clickPoint);
    trace("stage coordinates:", square.localToGlobal(clickPoint));
}
于 2012-10-25T07:13:30.007 に答える