Flex获取用户电脑上安装的所有字体
? 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>