2010-06-16 4 views
0

J'ai un arbre flexible qui a parfaitement fonctionné lorsque nous avons défini defaultLeafIcon = {null} et folderClosedIcon et folderOpenIcon à {null}. Nous avons décidé de remettre les icônes et de supprimer les zéros. Maintenant, ils apparaissent bien, mais si vous cliquez sur l'icône au lieu de l'étiquette ou le reste de la ligne, il semble changer l'élément sélectionné, montre la mise en évidence autour du nouvel élément, mais ne distribue pas l'événement ItemClick. Cela rend vraiment difficile de savoir que l'élément sélectionné de l'arbre a changé! La partie bizarre est qu'une fois que vous avez cliqué une fois sur l'icône et qu'il semble que l'élément selected a changé (ou du moins appliqué ce style), si vous cliquez de nouveau sur la même icône, l'événement itemClick sera déclenché. Si vous cliquez sur une autre icône, elle fait à nouveau la même chose, en basculant l'élément selectedItem et le style de cette ligne, mais sans déclencher l'événement itemClick.mx: Arbre ne distribuant pas événement "itemClick" lorsque vous cliquez sur l'icône

Des idées? Merci. (Ceci est en flex 4 btw)

Répondre

1

Nous avons eu ce problème et il s'est avéré que parce que nous utilisions un fichier SWF comme source et référençant un symbole dans le fichier SWF sous forme d'icône, un clic sur cette icône semblait intercepter et enterrer l'événement de clic. C'est ce que nous avions:

[Embed(source='assets/icons.swf', symbol='folder')] 
private var folderIcon:Class; 

Nous avons résolu le problème en convertissant les icônes en fichiers PNG et tout a bien fonctionné.

[Embed(source='assets/folder.png')] 
private var folderIcon:Class; 
+0

Nous ne sommes pas à l'aide d'une image personnalisée , juste la valeur par défaut. Je me demande si par défaut, il utilise une icône swf. –

0

ne sais pas comment il est vraiment fait pour le composant Tree

mais pour AdvancedDataGrid cela a fonctionné:

<mx:AdvancedDataGrid> 
     <mx:groupItemRenderer> 
      <mx:Component> 
       <mx:AdvancedDataGridGroupItemRenderer mouseEnabled="true"/> 
      </mx:Component> 
     </mx:groupItemRenderer> 
</mx:AdvancedDataGrid> 

peut-être

<mx:Tree> 
     <mx:itemRenderer> 
      <mx:Component> 
       <mx:TreeItemRenderer mouseEnabled="true"/> 
      </mx:Component> 
     </mx:itemRenderer> 
    </mx:Tree> 
Questions connexes