2013-05-09 1 views
1

J'ai un groupe qui contient de nombreuses primitives graphiques différentes. Si je clique sur le groupe, je peux y avoir une référence dans MouseEvent (event) .currentTarget. Mais comment savoir si j'ai cliqué sur une primitive graphique?Comment trouver la primitive graphique sur laquelle vous avez cliqué dans un groupe

Exemple de code:

<?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> 

Répondre

1

Les classes spark.primitives de package ne sont pas héritées de InteractiveObject, ils ne distribue pas l'événement de la souris. Ajoutez-les à différents groupes, un à un. Et ajoutez des auditeurs aux groupes.

+0

C'était aussi ma première pensée. Bien que cela puisse conduire à un nombre excessif de groupes/composants pouvant nuire à l'efficacité de l'application. Il peut être possible de faire quelques calculs basés sur les événements x et y de clic de souris et les emplacements des formes. – JeffryHouser

+0

C'est une possibilité mais, comme l'a dit Reboog, cela pourrait nuire à l'efficacité de l'application. Je cherchais un exemple qui utilisait un test de coup ou une boucle à travers les éléments graphiques et vérifiais les positions x et y. Je n'ai pas fait non plus, c'est pourquoi j'ai posté la question. :) –

+0

Si vous ajoutez tout dans un groupe, le test de réussite ne sert à rien. Vérifier x & y peut le faire, mais vous aurez besoin de beaucoup de calculs. – lipbb

Questions connexes