mx:单击图标时,树不调度“itemClick”事件

时间:2010-06-16 14:27:01

标签: flex events tree mxml flex4

当我们将defaultLeafIcon = {null}和folderClosedIcon以及folderOpenIcon设置为{null}时,我有一个非常好的flex树。我们决定将图标重新放入并取出空值。现在它们显示正常,但如果您单击图标而不是标签或行的其余部分,它似乎更改了所选项目,显示新项目周围的突出显示,但不调度ItemClick事件。这使得很难知道树的所选项目已经改变了!奇怪的是,一旦你点击了一次图标并且看起来像selectedItem发生了变化(或者至少它应用了那个样式),如果再次点击相同的图标,它将实际触发itemClick事件。如果你点击任何其他图标,它会再次执行相同的操作,切换selectedItem并设置该行的样式,但不会触发itemClick事件。

有什么想法吗?谢谢。 (这是flex 4 btw)

2 个答案:

答案 0 :(得分:1)

我们遇到了这个问题,事实证明,因为我们使用SWF作为源并在SWF中引用符号作为图标,然后单击该图标似乎拦截并掩埋了click事件。这就是我们所拥有的:

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

我们通过将图标转换为PNG文件解决了这个问题,一切正常。

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

答案 1 :(得分:0)

不知道它是如何为树组件

做的

但对于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>