Apache flex 如何查找在组中单击的图形原语

Apache flex 如何查找在组中单击的图形原语,apache-flex,flex4,flex-spark,Apache Flex,Flex4,Flex Spark,我有一个小组,其中有许多不同的图形原语。如果单击该组,我可以在MouseEvent(event).currentTarget中获得对该组的引用。但我如何知道我是否点击了图形原语 示例代码: <?xml version="1.0" encoding="utf-8"?> <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/fle

我有一个小组,其中有许多不同的图形原语。如果单击该组,我可以在MouseEvent(event).currentTarget中获得对该组的引用。但我如何知道我是否点击了图形原语

示例代码:

<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" 
               xmlns:s="library://ns.adobe.com/flex/spark" 
               xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600">

    <fx:Script>
        <![CDATA[
            protected function group1_mouseDownHandler(event:MouseEvent):void {
                trace("event target="+ event.target);
                // traces the group
            }
        ]]>
    </fx:Script>


    <s:Group width="500" height="500" horizontalCenter="0" verticalCenter="0"
             mouseDown="group1_mouseDownHandler(event)"
             mouseEnabledWhereTransparent="true">


        <s:Rect x="10" width="100" height="100" radiusX="10" radiusY="10">
            <s:fill>
                <s:SolidColor color="#ff0000"/>
            </s:fill>
        </s:Rect>

        <s:Ellipse x="150" width="100" height="100">
            <s:fill>
                <s:SolidColor color="#ff0000"/>
            </s:fill>
        </s:Ellipse>

    </s:Group>
</s:Application>

包spark.primitives中的类不是从InteractiveObject继承的,它们不会分派鼠标事件。
将它们添加到不同的组中,一对一。并将侦听器添加到组。

包spark.primitives中的类不是从InteractiveObject继承的,它们不会分派鼠标事件。
将它们添加到不同的组中,一对一。并在小组中加入听众。

这也是我的第一个想法。不过,这可能会导致组/组件数量过多,从而影响应用程序的效率。可能会根据鼠标点击x和y事件以及形状的位置进行一些计算。这是一种可能性,但正如Rebog所说,这可能会影响应用程序的效率。我正在寻找一个使用命中测试或循环通过图形元素并检查x和y位置的示例。我也没有这样做,这就是为什么我发布了这个问题。:)若你们在一个组中添加所有的元素,点击测试就并没有用了。检查x&y可以做到,但你需要大量的计算。这也是我的第一个想法。不过,这可能会导致组/组件数量过多,从而影响应用程序的效率。可能会根据鼠标点击x和y事件以及形状的位置进行一些计算。这是一种可能性,但正如Rebog所说,这可能会影响应用程序的效率。我正在寻找一个使用命中测试或循环通过图形元素并检查x和y位置的示例。我也没有这样做,这就是为什么我发布了这个问题。:)若你们在一个组中添加所有的元素,点击测试就并没有用了。检查x&y可以做到这一点,但你需要大量的计算。