Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/flash/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 绑定到数组中对象的特定属性_Apache Flex_Flash_Actionscript 3_Data Binding_Actionscript - Fatal编程技术网

Apache flex 绑定到数组中对象的特定属性

Apache flex 绑定到数组中对象的特定属性,apache-flex,flash,actionscript-3,data-binding,actionscript,Apache Flex,Flash,Actionscript 3,Data Binding,Actionscript,我正在使用Flex创建一个小表单。目前我所拥有的只是一个列表组件,我想用一个字体名称列表填充它 我使用字体获取字体。枚举字体(true)。这将返回flash.text.Font对象的数组 字体对象具有一个fontName属性,该属性是该字体名称的字符串 我的问题是,我不知道如何将列表的数据提供程序绑定到数组中每个字体对象的fontName属性 有没有一种方法仅仅通过绑定就可以做到这一点?而不是通过循环字体对象来创建新的字符串数组?您可能正在查找列表控件的labelField属性。下面是一个工作示

我正在使用Flex创建一个小表单。目前我所拥有的只是一个列表组件,我想用一个字体名称列表填充它

我使用字体获取字体。枚举字体(true)。这将返回flash.text.Font对象的数组

字体对象具有一个fontName属性,该属性是该字体名称的字符串

我的问题是,我不知道如何将列表的数据提供程序绑定到数组中每个字体对象的fontName属性


有没有一种方法仅仅通过绑定就可以做到这一点?而不是通过循环字体对象来创建新的字符串数组?

您可能正在查找列表控件的
labelField
属性。下面是一个工作示例:

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" initialize="onInitialize()">

    <mx:Script>
        <![CDATA[

            import mx.collections.ArrayCollection;

            [Bindable]
            private var fonts:ArrayCollection;

            private function onInitialize():void
            {
                fonts = new ArrayCollection(Font.enumerateFonts(true));
            }

        ]]>
    </mx:Script>

    <mx:List dataProvider="{fonts}" labelField="fontName" />

</mx:Application>

还要注意的是,我对绑定使用的是ArrayCollection(与数组相反),因为数组不支持您期望的绑定方式


希望有帮助!如有任何问题,请随时发回。

您可能正在查找列表控件的
labelField
属性。下面是一个工作示例:

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" initialize="onInitialize()">

    <mx:Script>
        <![CDATA[

            import mx.collections.ArrayCollection;

            [Bindable]
            private var fonts:ArrayCollection;

            private function onInitialize():void
            {
                fonts = new ArrayCollection(Font.enumerateFonts(true));
            }

        ]]>
    </mx:Script>

    <mx:List dataProvider="{fonts}" labelField="fontName" />

</mx:Application>

还要注意的是,我对绑定使用的是ArrayCollection(与数组相反),因为数组不支持您期望的绑定方式


希望有帮助!如有任何问题,请随时发回。

效果很好!我试图在dataProvider绑定中完成这一切,但我使用的是ArrayCollection。请你再解释一下它的工作原理好吗?比如,它如何知道在每个字体对象内部查找fontName属性?很高兴它有帮助!文档(在本例中为mx.controls.listClasses.ListBase,从中派生列表)可能会做得最好:labelField属性指定“数据提供程序中字段的名称[例如flash.text.Font]要显示为标签的项。默认情况下,列表会在每个项上查找名为“label”的属性并显示它。但是,如果数据对象不包含label属性,则可以将labelField属性设置为在数据对象中使用其他属性。例如“FullName”[或“fontName”]当查看从数据库中提取的一组人名时,“太完美了!谢谢你的帮助。我很高兴投票支持你的回答和评论。我真的应该检查一下文档:)太好了!我试图在dataProvider绑定中完成这一切,但我使用的是ArrayCollection。请你再解释一下它的工作原理好吗?比如,它如何知道在每个字体对象内部查找fontName属性?很高兴它有帮助!文档(在本例中为mx.controls.listClasses.ListBase,从中派生列表)可能会做得最好:labelField属性指定“数据提供程序中字段的名称[例如flash.text.Font]要显示为标签的项。默认情况下,列表会在每个项上查找名为“label”的属性并显示它。但是,如果数据对象不包含label属性,则可以将labelField属性设置为在数据对象中使用其他属性。例如“FullName”[或“fontName”]当查看从数据库中提取的一组人名时,“太完美了!谢谢你的帮助。我很高兴投票支持你的回答和评论。我真的应该检查一下文档:)