Flash Player 10で追加されたテキストエンジンを使ってデバイスフォントを回転させる
最新のFlex SDKとFlash Player 10ではデバイスフォントの回転ができるようになっています。ただし残念なことに以前からあるテキスト用のコンポーネント(TextFiledとかText)を回転させることは相変わらずできませんでした。デバイスフォントを回転させるには、以下のように新しく追加されたAPI「flash.text.engine(FTE)」を使います。
コード:(MacOSX+Flex Sdk 3.2.0.3794+Flash Player 10.0.12.36で確認。他のOSではフォント名の部分を変更してください)
package { import flash.display.*; import flash.text.engine.*; public class GraphicElementExample extends Sprite { public function GraphicElementExample():void { var format:ElementFormat = new ElementFormat(new FontDescription("Osaka")); format.fontSize = 50; var str:String = "日本語が素晴らしくきれい"; var textElement:TextElement = new TextElement(str, format); var textBlock:TextBlock = new TextBlock(); textBlock.content = textElement; var textLine:TextLine = textBlock.createTextLine(null, 600); textLine.rotation = 10; addChild(textLine); textLine.x = 0; textLine.y = 50; } } }
APIリファレンスにはフォント名として「_ゴシック」「_明朝」などと指定すると自動的にフォントを選択して使用してくれるというナイスな機能が載っていますが、実際にそれらを指定してみると合字というか「色々なフォントの文字を合成した風のフォント」で表示されてしまいます。その場合以下のようにとてもいんちきくさい見た目になるのでこちらも注意が必要です。「Osaka」などとフォント名を直接指定するときれいに表示されます。
次はTFEで「斜体」「太字」「下線」「右寄せ、中央揃え」などができるかどうか試してみるつもりです。