Font 类定义了一个静态方法叫做enumateFonts 来返回一个用户电脑上所有字体的数组。这
个方法返回包括flash.text.Font 对象的数组。flash.text.Font 定义了三种属性。
fontName
这是一个系统报告的字体名称。在某些情况下,比如日语,韩语或者阿拉伯语,Flash
Player 可能无法正常地渲染这些字体。
fontStyle
这是一个字体风格: Regular, Bold, Italic, or BoldItalic.
fontType
这个属性有两个选择。一个叫设备字体,意思是用户电脑上已经安装了的字体。另
一个叫嵌入式字体,意思是把字体嵌入到swf 文件中。
在下面的例子中,这些字体被传递给一个ComboBox,用户可以为Text area 选择一个字体
类型。setStyle 方法的调用
text.setStyle("fontFamily", (cb.selectedItem as Font).fontName);
设置了Text 组件中的当前字体为ComboBox 中Font 对象的fontName 属性所对应的字体。
这里是你需要的完整代码:
- <mx:Application
- xmlns:mx="http://www.adobe.com/2006/mxml"
- layout="absolute" >
- <mx:VBox xmlns:mx="http://www.adobe.com/2006/mxml" width= "400"
- height="300" creationComplete= "findAllFonts()" >
- <mx:Script>
- <![CDATA[
- private var style:StyleSheet;
- [Bindable]
- private var arr:Array;
- private function findAllFonts(): void {
- arr = Font.enumerateFonts(true );
- arr.sortOn("fontName" , Array.CASEINSENSITIVE);
- }
- private function setFont(): void {
- text.setStyle("fontFamily" , (cb.selectedItem as Font).fontName);
- }
- ]]>
- </mx:Script>
- <mx:ComboBox id="cb" dataProvider= "{arr}" change= "setFont()"
- labelField="fontName" />
- <mx:Text text="Sample Text" id= "text" fontSize= "16" />
- </mx:VBox>
- </mx:Application>