フォント選択

by tkinjo
♥1 | Line 50 | Modified 2010-04-01 15:04:38 | MIT License
play

ActionScript3 source code

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

<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
    xmlns:mx="library://ns.adobe.com/flex/mx" 
    xmlns:s="library://ns.adobe.com/flex/spark"
    width="465" height="465"
    applicationComplete="applicationCompleteHandler( event )">
    <s:layout>
        <s:VerticalLayout paddingTop="10" paddingLeft="10" paddingBottom="10" paddingRight="10" />
    </s:layout>
    
    <fx:Script>
        <![CDATA[
            
            import mx.events.FlexEvent;
            import flash.text.Font;
            import mx.collections.ArrayCollection;
            
            private const GENERAL_DEVICE_FONTS:Array = new Array( "_ゴシック", "_明朝", "_等幅", "_sans", "_serif", "_typewriter" );
            private const FONT_FAMILY:String = '"ヒラギノ角ゴ Pro W3","Hiragino Kaku Gothic Pro","メイリオ",Meiryo,Osaka,"MS Pゴシック","MS PGothic",sans-serif';
            
            //*
            private const TEXT:String = "あいうえお\nアイウエオ\n阿伊宇江於\naiueo";
            private var textField:TextField;
            //*/
            
            private function applicationCompleteHandler( event:FlexEvent ):void{
                
                init();
                
                var enumerateFonts:Array = Font.enumerateFonts( true );
                enumerateFonts.sortOn( "fontName", Array.CASEINSENSITIVE );
                
                var fonts:ArrayCollection = new ArrayCollection();
                
                for each( var fontName:String in GENERAL_DEVICE_FONTS )
                    fonts.addItem( { fontName:fontName } );
                
                for each( var font:Font in  enumerateFonts )
                    fonts.addItem( { fontName:font.fontName } );
                
                fontList.dataProvider = fonts;
            }
            
            private function init():void {
                
                var styleManager:IStyleManager2 = StyleManager.getStyleManager( moduleFactory );
                var styleDeclaration:CSSStyleDeclaration = styleManager.getStyleDeclaration("global");
                styleDeclaration.setStyle("fontFamily", FONT_FAMILY);
                styleManager.setStyleDeclaration("global", styleDeclaration, true);
                
                
                //*
                textField = new TextField();
                textField.text = TEXT;
                uiComponent.addChild( textField );
                //*/
            }
            
            private function fontListCahngeHandler( event:Event ):void {
                
                //textArea.textFlow.fontFamily = fontList.selectedItem[ "fontName" ];
                
                //*
                textField.setTextFormat( new TextFormat( fontList.selectedItem[ "fontName" ] ) );
                //*/
            }
            
        ]]>
    </fx:Script>
    
    <s:controlBarContent>
        <s:DropDownList id="fontList" labelField="fontName" change="fontListCahngeHandler( event )" prompt="フォントを選択してください" width="100%" />
    </s:controlBarContent>

    <s:Panel title="Text" width="100%" height="100%">
        <!--<s:TextArea id="textArea" width="100%" height="100%">
            <s:text>あいうえお{'\n'}アイウエオ{'\n'}阿伊宇江於{'\n'}aiueo</s:text>
        </s:TextArea>-->
        <!----><mx:UIComponent id="uiComponent"></mx:UIComponent><!---->
    </s:Panel>
</s:Application>

Forked