高度なテキストレンダリングFlash Player 9 以降、Adobe AIR 1.0 以降 ActionScript 3.0 では、埋め込みフォント、アンチエイリアス設定、アルファチャンネル制御、およびその他固有の設定を含む、表示するテキストのプロパティを制御する様々なクラスが flash.text パッケージに用意されています。 CSMSettings、Font、TextRenderer の各クラスを始めとするこれらのクラスとプロパティについては、『ActionScript 3.0 リファレンス』で詳細に説明しています。 埋め込みフォントの使用アプリケーションで TextField に対して特定のフォントを指定すると、Flash Player または AIR は同じ名前のデバイスフォント(ユーザーのコンピューターに存在するフォント)を検索します。そのようなフォントがシステムに見つからない場合や、名前が同じでバージョンが若干異なるフォントが存在している場合には、テキストの表示が、意図したものとはかなり異なるものになることがあります。 意図したとおりに適切なフォントがユーザーに表示されるようにするには、アプリケーションの SWF ファイルにそのフォントを埋め込みます。埋め込みフォントにはいくつかの利点があります。
埋め込みフォントを使用する場合の最大の制約は、そのためにアプリケーションのファイルサイズまたはダウンロードサイズが増加することです。 フォントファイルをアプリケーションの SWF ファイルに埋め込む方法は、開発環境によって異なります。 フォントを埋め込んだ後は、次の作業を行って、TextField で正しい埋め込みフォントが使用されるようにします。
Flash でのフォントの埋め込みFlash Professional では、TrueType フォントや Type 1 PostScript フォントを含め、システムにインストールされているほとんどすべてのフォントを埋め込むことができます。 アプリケーションでは次のような様々な方法でフォントを埋め込むことができます。
アプリケーションでフォントを埋め込む方法について詳しくは、『Flash ユーザーガイド』の「ダイナミックテキストフィールド用またはテキスト入力フィールド用の埋め込みフォント」を参照してください。 Flex でのフォントの埋め込みFlex アプリケーションでは次のような様々な方法でフォントを埋め込むことができます。
Flex アプリケーションで直接埋め込むことができるのは TrueType フォントのみです。 Type 1 Postscript フォントなど、その他の形式のフォントは、最初に Flash Professional を使用して SWF ファイルに埋め込んだ後、その SWF ファイルを Flex アプリケーションで使用します。 Flex の SWF ファイルの埋め込みフォントの使用について詳しくは、『Flex 4 ユーザーガイド』の「SWF ファイルからのフォントの埋め込み」を参照してください。 シャープ、太さ、およびアンチエイリアスの制御Flash Player または AIR では、テキストのサイズ変更、色の変更、または様々な背景でテキストを表示する場合に、シャープネス、太さ、アンチエイリアスなどのテキスト表示制御の設定がデフォルトで決定されます。非常に小さなテキスト、非常に大きなテキスト、様々な独自の背景を使用するテキストを使用する場合など、これらの設定を制御したい場合があります。flash.text.TextRenderer クラスとその関連クラス(CSMSettings クラスなど)を使用して、Flash Player または AIR の設定をオーバーライドすることができます。これらのクラスにより、埋め込みテキストのレンダリング品質を正確に制御することができます。 埋め込みフォントについて詳しくは、埋め込みフォントの使用を参照してください。 注意: シャープネス、太さ、または gridFitType プロパティを設定する場合、またはTextRenderer.setAdvancedAntiAliasingTable() メソッドを使用する場合は、flash.text.TextField.antiAliasType プロパティの値が AntiAliasType.ADVANCED である必要があります。
次の例では、myFont という名前の埋め込みフォントを使用している表示テキストに、カスタム CSM(Continuous Stroke Modulation)プロパティとフォーマットを適用します。ユーザーが表示テキストをクリックすると、カスタム設定が Flash Player または Adobe AIR によって適用されます。 var format:TextFormat = new TextFormat(); format.color = 0x336699; format.size = 48; format.font = "myFont"; var myText:TextField = new TextField(); myText.embedFonts = true; myText.autoSize = TextFieldAutoSize.LEFT; myText.antiAliasType = AntiAliasType.ADVANCED; myText.defaultTextFormat = format; myText.selectable = false; myText.mouseEnabled = true; myText.text = "Hello World"; addChild(myText); myText.addEventListener(MouseEvent.CLICK, clickHandler); function clickHandler(event:Event):void { var myAntiAliasSettings = new CSMSettings(48, 0.8, -0.8); var myAliasTable:Array = new Array(myAntiAliasSettings); TextRenderer.setAdvancedAntiAliasingTable("myFont", FontStyle.ITALIC, TextColorType.DARK_COLOR, myAliasTable); } |
![]() |