Flex:是否可以访问默认的“mx:Tree”图标?

Flex: is it possible to access default `mx:Tree` icons?

我有一点问题,因为我有一棵树:

<mx:Tree iconField="@icon" />

一段时间以来还不错,但现在我希望树的 部分 具有默认图标。现在,由于我还没有弄清楚的原因,对于 b运行ch 节点,源 XML 的 icon 成员被忽略,并且使用默认值 但是对于叶节点,我必须 有一个有效的 icon 成员,否则我会得到一个例外。 icon="" 无效。

深入了解,我 运行:

trace('The default tree icon: ' + tree.itemToIcon(tree.selectedItem).toString());

显示默认值为:

class _TreeStyle__embed_css_Assets_swf_TreeNodeIcon_770392128

这太神奇了。不用了,谢谢。我什至没有尝试将其分配给 icon.

与其做个截屏,Gimp编辑,然后做成自定义图标,不如直接引用平台提供的默认图标?

此处为 Flex 3.5 SDK。

我认为你想得太多了,而且把一切都复杂化了! 我已经很长时间没有使用它了,但也许这仍然可以帮助你 little.From 记忆我曾经也有过更复杂的记忆,但有一段时间没有安静地看它了! One Link of many I used with Tree setup

gallery icon="iconSymbol0AG"

gallery label="    AR - ARGENTINA" src="com/assets/images/countriesFlagsRoundLarge/ar.png"

gallery label=" Mauricio Photography" src="com/assets/images/PageOne/PhotographyBlogs/BlankArtists/AR/TheMauricioBlog.swf"

file label=" Web Site" icon="iconSymbolAR" src="com/assets/images/PageOne/PhotographyBlogs/WebSites/AR/TheCollazosBlog.swf"

gallery

按照 Amy 的建议,我尝试了:

public var m_icoDefaultLeaf:Class;
private static var m_oDummyTree:Tree;
private static var m_xmlDummy:XML;

...

m_oDummyTree = new Tree;
m_xmlDummy = <dummynode />;
m_oDummyTree.dataProvider = m_xmlDummy;
m_oDummyTree.addEventListener(FlexEvent.CREATION_COMPLETE,
        function (evt:FlexEvent):void {
            m_icoDefaultLeaf = m_oDummyTree.itemToIcon(m_xmlDummy);
            removeChild(m_oDummyTree);
            m_oDummyTree = null;
            m_xmlDummy = null;
        }
);
addChild(m_oDummyTree);

然后我只是在 XML 中使用 icon="m_icoDefaultLeaf" 作为叶子,令人惊讶的是,它起作用了!

是的,它确实有那么复杂。我必须处理那个事件,我必须将树添加为某物的子项。

我尝试的另一件事是擦除所有代码并只使用

public var m_icoDefaultLeaf:Class = null;

但这只是一个空白图标,不是默认图标。