Flash CS3 ドキュメンテーション |
|||
| ActionScript 3.0 のプログラミング > テキストの操作 > 高度なテキストレンダリング | |||
ActionScript 3.0 では、埋め込みフォント、アンチエイリアス設定、アルファチャンネル制御、およびその他固有の設定を含む、表示するテキストのプロパティを制御するさまざまなクラスが flash.text パッケージに用意されています。CSMSettings、Font、TextRenderer の各クラスを始めとするこれらのクラスとプロパティについては、『ActionScript 3.0 コンポーネントリファレンスガイド』で詳細に説明しています。
アプリケーションで TextField に対して特定のフォントを指定すると、Flash Player は同じ名前のデバイスフォント (ユーザーのコンピュータに存在するフォント) を検索します。そのようなフォントがユーザーのシステムに見つからない場合や、名前が同じでバージョンが若干異なるフォントが存在している場合には、テキストの表示が、意図したものとはかなり異なるものになることがあります。
意図したとおりに適切なフォントがユーザーに表示されるようにするには、アプリケーションの SWF ファイルにそのフォントを埋め込みます。埋め込みフォントにはいくつかの利点があります。
kerning スタイルを使用することができます。埋め込みフォントを使用する場合の最大の制約は、そのためにアプリケーションのファイルサイズまたはダウンロードサイズが増加することです。
アプリケーションの SWF ファイルにフォントを埋め込むための正確な方法は、開発環境によって異なります。
フォントを埋め込んだ後は、次の作業を行って、TextField で正しい埋め込みフォントが使用されるようにします。
embedFonts プロパティを true に設定します。fontFamily プロパティに、埋め込みフォントの名前を設定します。その後で、作成した TextFormat オブジェクトを TextField に適用します。埋め込みフォントを指定するとき、fontFamily プロパティに格納する名前は 1 つだけにする必要があります。このプロパティでは、複数のフォント名を含むカンマ区切りリストを使用することはできません。font-family に、埋め込みフォントの名前を設定します。埋め込みフォントを指定する場合、font-family プロパティに格納する名前は 1 つだけにする必要があります。名前のリストを格納しないでください。Flash オーサリングツールでは、TrueType フォントや Type 1 PostScript フォントを含め、システムにインストールされているほとんどすべてのフォントを埋め込むことができます。
Flex アプリケーションにフォントを埋め込む方法は数多くあります。たとえば、次のような方法です。
Flash アプリケーションでフォントを埋め込む方法の詳細については、『Flash ユーザーガイド』の「ダイナミックテキストフィールド用またはテキスト入力フィールド用の埋め込みフォント」を参照してください。
Flash Player では、テキストのサイズ変更、色の変更、またはさまざまな背景でテキストを表示する場合に、シャープネス、太さ、アンチエイリアスなどのテキスト表示制御の設定がデフォルトで決定されます。非常に小さなテキスト、非常に大きなテキスト、さまざまな独自の背景を使用するテキストを使用する場合など、これらの設定を独自に制御したい場合があります。flash.text.TextRenderer クラスとその関連クラス (CSMSettings クラスなど) を使用して、Flash Player の設定をオーバーライドすることができます。これらのクラスにより、埋め込みテキストのレンダリング品質を正確に制御することができます。埋め込みフォントの詳細については、埋め込みフォントの使用を参照してください。
|
メモ |
|
シャープネス、太さ、または |
次の例では、myFont という名前の埋め込みフォントを使用している表示テキストに、カスタム CSM (Continuous Stroke Modulation) プロパティとフォーマットを適用します。ユーザーが表示テキストをクリックすると、カスタム設定が Flash Player によって適用されます。
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);
}
このページに新しいコメントが追加された場合に、電子メールでの通知を希望する。 | コメントレポート
現在のページ: http://livedocs.adobe.com/flash/9.0_jp/main/00000234.html