Flex 4 の残念フォント対策だよ

by nariyu
多言語アプリにも対応できてるはず。たぶん。
Mac でしか確認してないけど大丈夫。たぶん。
♥8 | Line 28 | Modified 2011-02-11 01:06:32 | MIT License
play

ActionScript3 source code

/**
 * Copyright nariyu ( http://wonderfl.net/user/nariyu )
 * MIT License ( http://www.opensource.org/licenses/mit-license.php )
 * Downloaded from: http://wonderfl.net/c/k7sS
 */

<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" 
               xmlns:s="library://ns.adobe.com/flex/spark"
               xmlns:mx="library://ns.adobe.com/flex/mx"
               fontSize="40"
               preinitialize="preinitializeHandler(event)">
    <fx:Script>
        <![CDATA[
            import mx.events.FlexEvent;
            
            protected function preinitializeHandler(event:FlexEvent):void
            {
                // 多言語対応アプリの Flex4 残念フォント回避方法
                //
                // Step 1
                //   面倒だけど bold にしたい全てのコンポーネントに
                //   styleName="bold" をつけておく
                //
                // Step 2
                //   日本語 且つ Mac の場合にフォントを替える
                //
                var isJa:Boolean = Capabilities.language == "ja";
                var isMac:Boolean = Capabilities.os.substr(0, 3) == "Mac";
                
                // 全体の設定
                setStyle("fontFamily", !isJa ? "_sans" : "_ゴシック");
                
                if (isJa && isMac)
                {
                    // styleName="bold" なコンポーネントを bold にする
                    var style:CSSStyleDeclaration = new CSSStyleDeclaration;
                    style.setStyle("fontFamily", "ヒラギノ角ゴ Pro W6");
                    styleManager.setStyleDeclaration(".bold", style, false);
                }
                
                // Step 3
                //    Enjoy!
            }
            
        ]]>
    </fx:Script>
    
    <s:VGroup>
        <s:Label text="あいうえお"/>
        <s:Label text="あいうえお" fontWeight="bold" styleName="bold"/>
    </s:VGroup>
</s:Application>