0

我正在使用 Flex 4.6 构建一个 RIA 应用程序,该应用程序包含一个主边界容器(页面),该边界容器(页面)可以包含一些其他边界容器(图形或文本元素)。

我在页面上添加了一个事件监听器来监听点击事件:

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 始终是页面(正常),但目标可以是页面或其子页面之一,然后 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 回答