In a previous example, “Determining which fonts are embedded in a Flex application”, we saw how to display a list of all embedded fonts within a Flex application.
The following example shows how you can check for a certain embedded font by using the Flex StyleManager class’s isFontFaceEmbedded()
method.
Full code after the jump.
<?xml version="1.0" encoding="utf-8"?> <!-- http://blog.flexexamples.com/2008/03/31/determining-if-a-specific-font-is-embedded-in-a-flex-application/ --> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical" verticalAlign="middle" backgroundColor="white" applicationComplete="init();"> <mx:Style> @font-face { src: local("Arial"); fontFamily: ArialEmbedded; } @font-face { src: local("Verdana"); fontFamily: VerdanaEmbedded; fontStyle: italic; } </mx:Style> <mx:Script> <![CDATA[ import mx.utils.ObjectUtil; private function init():void { var isEmbedded:Boolean; var tf:TextFormat = new TextFormat(); tf.font = fontName.selectedLabel; tf.bold = isBold.selected; tf.italic = isItalic.selected; isEmbedded = systemManager.isFontFaceEmbedded(tf); footer.label = isEmbedded.toString(); } ]]> </mx:Script> <mx:Form> <mx:FormItem label="Font name:"> <mx:ComboBox id="fontName" change="init();"> <mx:dataProvider> <mx:Array> <mx:String>Arial</mx:String> <mx:String>ArialEmbedded</mx:String> <mx:String>Verdana</mx:String> <mx:String>VerdanaEmbedded</mx:String> </mx:Array> </mx:dataProvider> </mx:ComboBox> </mx:FormItem> <mx:FormItem label="Bold:"> <mx:CheckBox id="isBold" selected="false" change="init();" /> </mx:FormItem> <mx:FormItem label="Italic:"> <mx:CheckBox id="isItalic" selected="false" change="init();" /> </mx:FormItem> <mx:FormHeading id="footer" /> </mx:Form> </mx:Application>
View source is enabled in the following example.