我正在使用Flex创建一个小表单。我目前所拥有的只是一个List组件,我想填充一个字体名称列表。
我使用 Font.enumerateFonts(true); 获取字体。这将返回 flash.text.Font 对象的数组。
Font对象具有 fontName 属性,该属性是该字体名称的字符串。
我的问题是我无法弄清楚如何将List的dataProvider绑定到Array中每个Font对象的fontName属性。
有没有办法只用绑定来做到这一点?而不是通过循环Font对象创建一个新的字符串数组?
答案 0 :(得分:3)
您可能正在寻找List控件的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进行绑定(而不是数组),因为Arrays不支持以您期望的方式进行绑定。
希望有所帮助!如有任何问题,请随时回复。