如何查找在组中单击的图形基元

时间:2013-05-09 21:46:36

标签: 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/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>

1 个答案:

答案 0 :(得分:1)

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