Flash Player 10で追加されたテキストエンジンを使ってデバイスフォントを回転させる

最新のFlex SDKFlash Player 10ではデバイスフォントの回転ができるようになっています。ただし残念なことに以前からあるテキスト用のコンポーネント(TextFiledとかText)を回転させることは相変わらずできませんでした。デバイスフォントを回転させるには、以下のように新しく追加されたAPIflash.text.engine(FTE)」を使います。

Flash Palyer 10用のAPIリファレンス

コード:(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で「斜体」「太字」「下線」「右寄せ、中央揃え」などができるかどうか試してみるつもりです。