Text Layout Framework 1st step

最近CS5の虎の子であるTLF周りを触っているので軽くメモ。

1.flashX
TLFの実体は flashx.textLayout というパッケージである。ここで気になるのは"flashx"という見慣れないパッケージ。そう、"flash"では無いのだ。これがflash+FP10(X)によるものなのか、flash+mxによるものなのか、 あるいは両方なのか、それとも全く違う理由なのかよくわからないがちょっぴり不思議な感じ。

2.TextFieldとは全くの別物。
TextFieldの流れが

  1. インスタンスを作る
  2. テキストを追加
だけなのに対して、
TLFでは
  1. インスタンスを作る
  2. テキストを追加
  3. 表示リストを登録
  4. 表示を更新する
というステップが必要になる。ちなみにこの4ステップはかなりアバウトに書いているので実際にはもっと大変。



3.TextFieldライクに使うならTLFTextFieldがおすすめ
fl.text.TLFTextFieldというコンポーネントが存在する。IDE上でTLFを生成すると自動的にこのクラスを使う事になる。TextFieldと親和性の高いAPIを持つ。ひょっとするとflパッケージの中で今後最も使われるクラスになるかもしれない。キラークラス(?)だ!

4.コードの比較
TLF

import flashx.textLayout.elements.*;
import flashx.textLayout.container.ContainerController;
import flashx.textLayout.edit.EditManager
import flash.display.Sprite;

var tfw:TextFlow = new TextFlow();
tfw.interactionManager = new EditManager();
tfw.fontSize = 18;

var p:ParagraphElement = new ParagraphElement();
tfw.addChild(p)

var span:SpanElement = new SpanElement()
span.text = "hello world TLF";
p.addChild(span)

var sp:Sprite = addChild(new Sprite) as Sprite
sp.x = 10
sp.y = 10;
tfw.flowComposer.addController(new ContainerController(sp,200,20))
tfw.flowComposer.updateAllControllers();
flash.text.TextField;
import flash.text.TextField;
import flash.text.TextFormat;
import flash.text.TextFieldType;

var tf:TextField = addChild(new TextField) as TextField;
tf.defaultTextFormat = new TextFormat(null,18)
tf.type = TextFieldType.INPUT;
tf.text= "hello world TextField"
tf.width = 200
tf.x = 10
tf.y = 40;
fl.text.TLFTextField;
import fl.text.TLFTextField;

var tlf:TLFTextField = addChild(new TLFTextField) as TLFTextField;
tlf.textFlow.fontSize = 18
tlf.type = TextFieldType.INPUT;
tlf.text= "hello world TLFTextField"
tlf.width = 200
tlf.x = 10
tlf.y = 80;



個人的にすきなところ
縦書きは待望の機能だったが、同じくらい嬉しいのが「複数のContainerControllerでもセレクションが途切れない」という超々地味な仕様。さらにhtmlのマークアップも途切れずに表現してくれるのだ。

TextFieldに置き換えて言えば「複数のTextFieldでもセレクションが途切れない、htmlのマークアップも途切れない」と言う事だ。これが如何に重大な事件か、マルチカラムレイアウトをTextFieldを使い力技で実装した事のあるFlasherなら大いに賛同してくれるはずだ。 だが、如何にマークアップを補完したとしても、セレクションに関しては涙をのまざるを得なかった。

しかし、そう、我々はついに手に入れたのだ!途切れる事泣きセレクションを!

という訳で長くなったのでここまで。次回は主要なクラスの紹介です(時間があれば)

Trackback

http://memo.kappa-lab.com/mt-tb.cgi/317

Leave your comment :

(いままで、ここでコメントしたことがないときは、コメントを表示する前に承認が必要になることがあります。そのときはしばらくお待ちください。)




RSS + Contuct

  • rss
  • email

Credit

Copyright (C) 2007 kappa-lab.com.
All Rights Reserved.