0

Flex 4.6を使用してRIAアプリケーションを構築しています。このアプリケーションには、他のいくつかのborderContainer(グラフィック要素またはテキスト要素)を含めることができるメインのborderContainer(ページ)が含まれています。

クリックイベントをリッスンするイベントリスナーをページに追加しました。

page.addEventListener(MouseEvent.CLICK, clickHandler, true);

clickHandlerは次のようになります。

private function clickHandler(event:MouseEvent):void
{
    // Remove event listeners
    page.removeEventListener(MouseEvent.CLICK, clickHandler, true);

    // Get click position
    objX = event.localX;
    objY = event.localY;
}

私の問題は、イベントのcurrentTargetは常にページ(通常)ですが、ターゲットはページまたはその子の1つである可能性があり、localXはページ上の位置ではなく子上の位置を教えてくれます。

ページが常にイベントのターゲットであることを確認する方法はありますか?ページのキャプチャフェーズを停止して、深くならないようにするようなものですか?

よろしくお願いします

ダレル

4

1 に答える 1

1

間違った質問をしているのではないかと思います。私が理解しているように、「ページ」を基準にしたx/y位置が必要です。DisplayObject#globalToLocal()関数を使用してこれを見つけることができます。

グローバル座標を取得し、それらを「ページ」を基準にしたローカル座標に変換するだけです。

var coordinates:Point = new Point(event.stageX, event.stageY);
coordinates = page.globalToLocal(coordinates);
objX = coordinates.x;
objY = coordinates.y;
于 2012-05-10T09:23:12.363 に答える