【问题标题】:mx:Tree not dispatching "itemClick" event when click on iconmx:单击图标时树不调度“itemClick”事件
【发布时间】:2010-06-16 14:27:00
【问题描述】:

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

有什么想法吗?谢谢。 (顺便说一句,这是在 flex 4 中)

【问题讨论】:

    标签: apache-flex events tree mxml flex4


    【解决方案1】:

    我们遇到了这个问题,结果是因为我们使用 SWF 作为源并将 SWF 中的符号作为图标引用,然后单击该图标似乎会拦截并隐藏单击事件。这就是我们所拥有的:

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

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

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

    【讨论】:

    • 我们没有使用自定义图像,仅使用默认图像。我想知道它是否默认使用 swf 图标。
    【解决方案2】:

    不知道Tree组件到底是怎么做的

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-09-21
      • 1970-01-01
      • 2018-09-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-30
      • 1970-01-01
      相关资源
      最近更新 更多