Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache flex 为什么使用Flex Tree组件的分支节点会忽略iconField?_Apache Flex_Actionscript 3_Actionscript_Flex3 - Fatal编程技术网

Apache flex 为什么使用Flex Tree组件的分支节点会忽略iconField?

Apache flex 为什么使用Flex Tree组件的分支节点会忽略iconField?,apache-flex,actionscript-3,actionscript,flex3,Apache Flex,Actionscript 3,Actionscript,Flex3,我正在使用Flex树的iconField属性动态设置节点应该使用的图标。这适用于叶节点,但对于分支节点,它似乎不尊重我的iconField,而只是显示默认文件夹节点 这里有一个简单的复制: <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute"> <mx:Script> <![CDATA[ [Embed("assets/icon1.png")]

我正在使用Flex树的iconField属性动态设置节点应该使用的图标。这适用于叶节点,但对于分支节点,它似乎不尊重我的iconField,而只是显示默认文件夹节点

这里有一个简单的复制:

<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">

<mx:Script>
    <![CDATA[
        [Embed("assets/icon1.png")]
        public var icon1:Class;

        [Embed("assets/icon2.png")]
        public var icon2:Class;
    ]]>
</mx:Script>

<mx:XML id="dp">
    <node label="Sales" icon="icon1">
        <node label="East" icon="icon2"/>
        <node label="West" icon="icon2"/>
    </node>
</mx:XML>

<mx:Tree dataProvider="{dp}" labelField="@label" iconField="@icon"
    width="100%" height="100%" />

</mx:Application>

发生的情况是,icon2为东和西节点显示,但icon1不为销售节点显示。我怎样才能让它工作呢?

差不多了! 您需要设置folderOpenIcon和folderClosedIcon,如下所示:

<mx:Tree dataProvider="{dp}" labelField="@label" iconField="@icon"
         folderOpenIcon="{icon3}"
         folderClosedIcon="{icon4}"
         width="100%" height="100%" />

我认为可以通过iconFunction来完成。。。这看起来像是你想要的:


我明白了。susichan对iconFunction的看法是正确的:

<mx:Script>
    <![CDATA[
        [Embed("icon1.png")]
        public var icon1:Class;

        [Embed("icon2.png")]
        public var icon2:Class;

        [Embed("icon3.png")]
        public var icon3:Class;

        private function setIcons(item:Object):Class {
            var iconClass:Class;
            var classType:String = XML(item).attribute("icon");
            if(classType!="")
                return this[classType];
            else
                return null;
        }


    ]]>
</mx:Script>

<mx:XML id="dp">
    <root>
            <node label="Sales" icon="icon1">
                <node label="East" icon="icon3"/>
                <node label="West" icon="icon3"/>
            </node>
            <node label="Non-Sales" icon="icon2">
                <node label="East" icon="icon3"/>
                <node label="West" icon="icon3"/>
            </node>
    </root>
</mx:XML>

<mx:Tree dataProvider="{dp.node}" labelField="@label" iconField="@icon"
         iconFunction="setIcons" showRoot="true"
         width="100%" height="100%" />



是的,但我正在尝试为树中的不同节点设置不同的文件夹图标。在我看来,它们实际上根本不是文件夹。相反,它们用父子关系表示不同的对象。奇怪的是,iconFunction可以工作,但iconField不能。无论如何,谢谢!