akihiro kamijo: Flash テキストレイアウトフレームワーク (Text Layout Framework) ベータ版の公開

« FlexBuilder 3.0.2 / SDK 3.2 の公開 | Main | Linux 用 AIR 1.5 公開 »

November 25, 2008

Flash テキストレイアウトフレームワーク (Text Layout Framework) ベータ版の公開

Adobe Labs に Text Layout Framework ベータ版が公開されました。(Text Layout Framework@Labs

Flash Player 10 から新しいテキストエンジン (Flash Text Engine - FTE) とそれを扱うための flash.text.engine という新しいパッケージが追加されていますが、Text Layout Framework はその API 上に構築されたフレームワークです。高度なテキストのレイアウト機能や、テキストの選択、編集機能などが実装されています。また、マークアップ形式のデータを扱うことができます。

上のリンクのページに Flash コンテンツとして 8 つのデモが提供されていますので、まずはそちらをご覧ください。"start tour" をクリックすると最初のデモが表示されます。

Text Layout Framework を使うには実行環境として Flash Player 10 または AIR 1.5 が必要です。開発環境は、Flash CS4, Flex Builder 3.0.2, Gumbo になります。

英語版の Flash CS4 を既にお使いの場合は、こちらのページ (Downloads/Text Layout Framework@Labs) から Text Layout Component for Flash CS4 をダウンロードして、中の MXP ファイルをインストールします。これで、コンポーネントパネル内の標準コンポーネントに textLayout コンポーネントが、その他のパネルに Text Layout パネルが追加されます。

Text Layout パネルでは、テキストのいろいろな属性をパネル内で選択することでプログラムを書かなくても設定できます。使い方は、英語で恐縮ですがとりあえずは Text Layout Component for Flash CS4 Professional Overview をご覧ください。

Text Layout パネルとほぼ同等のものがオンラインでも提供されています。(Text Layout Demo@Labs

Flex Builder 3.0.2 をお使いの場合は、ダウンロードページ (Downloads/Text Layout Framework@Labs) から Text Layout Framework をダウンロード後、textLayout_core.swc, textLayout_edit.swc, textLayout_conversion.swc の 3 つのファイルを sdks\3.2.0\frameworks\libs の下にコピーします。

Text Layout Framework の使い方サンプル

ダウンロードページ (Downloads/Text Layout Framework@Labs) にある Text Layout Component Examples for Flash CS4 には ActionScript のサンプルも含まれてますので、Flash CS4 がなくてもいろいろな使い方を見ることができます。

例えば、下は Text Layout Framework を使って "Hello World" を表示する例です。

var textFlow:TextFlow = new TextFlow();
textFlow.addChild(p);  // textFlow は全ての要素の親
 
var p:ParagraphElement = new ParagraphElement();
p.addChild(span);  // p は span の親要素
 
var span:SpanElement = new SpanElement();
span.text = "Hello, World"; // span テキストを持つ要素
span.fontSize = 48; // span にスタイルを設定
 

Text Layout Framework のルートの要素は必ず TextFlow オブジェクトになります。主な要素の関係は以下のような感じです。(HTML と似てます)

  • TextFlow: DivElement または ParagraphElement を子に持つ
  • DivElement: DivElement または ParagraphElement を子に持つ - <div>
  • ParagraphElement: SpanElement, InlineGraphicElement, LinkElement, TCYElement 等を子に持つ - <p>
  • SpanElement: パラグラフ内のテキスト - <span>
  • InlineGraphicElement: パラグラフ内に表示されるイメージ (への URL) - <img>
  • LinkElement: リンク要素 (href 属性にリンク先やイベントを指定) - <a>
  • TCYElement: 縦書きの TextFlow 内で横に表示されるテキスト (TCY は縦中横の意) - <tcy>

これらの要素はマークアップ形式で記述することも可能です。

<?xml version="1.0" encoding="utf-8"?>
 <flow:TextFlow xmlns:flow="http://ns.adobe.com/textLayout/2008">
    <flow:p>
      <flow:span fontSize="48">Hello World</flow:span>
    </flow:p>
  </flow:TextFlow>
 

このマークアップの例は最初のスクリプトのサンプルと同じ内容を記述したものです。

Posted by ackie at November 25, 2008 06:58 PM

Comments

すごく参考になりました。ありがとうございます。
このフレームワークは凄く高機能ですね。WebデザインはDTPと比べると組版処理に弱いという印象がありますが、だいぶ改善されそうな予感がします。

Posted by: 高橋文樹 at December 28, 2008 05:22 AM

Post a comment




Remember Me?