mx: дерево не отправляет событие itemClick при нажатии на значок - PullRequest
0 голосов
/ 16 июня 2010

У меня есть гибкое дерево, которое прекрасно работало, когда мы установили defaultLeafIcon = {null}, а folderClosedIcon и folderOpenIcon равны {null}. Мы решили вернуть значки обратно и вынули нулевые значения. Теперь они отображаются нормально, но если вы щелкнете по значку вместо метки или остальной части строки, он, похоже, изменит выбранный элемент, отобразит выделение вокруг нового элемента, но не отправит событие ItemClick. Это делает действительно трудным знать, что выбранный элемент дерева изменился! Странная часть заключается в том, что как только вы щелкнули один раз по значку и он выглядел так, как будто selectedItem изменился (или, по крайней мере, применил этот стиль), при повторном нажатии на тот же значок он фактически вызовет событие itemClick. если вы щелкнете по любому другому значку, он снова сделает то же самое, переключая selectedItem и стилизуя эту строку, но не вызывая событие itemClick.

Есть идеи? Благодарю. (Это в flex 4 кстати)

Ответы [ 2 ]

1 голос
/ 16 июня 2010

У нас была эта проблема, и оказалось, что, поскольку мы использовали SWF в качестве источника и ссылались на символ в SWF в качестве значка, то нажатие на этот значок, казалось, перехватывало и скрывало событие click. Вот что у нас было:

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

Мы решили проблему путем преобразования значков в файлы PNG, и все работало нормально.

[Embed(source='assets/folder.png')]
private var folderIcon:Class;
0 голосов
/ 13 октября 2010

не знаю, как это действительно делается для компонента дерева

, но для AdvancedDataGrid это сработало:

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

возможно

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