Determining if a specific font is embedded in a Flex application

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.

View MXML

<?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.