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.





0 Responses to “Determining if a specific font is embedded in a Flex application”
Leave a Reply