2009年7月アーカイブ
オライリー・ジャパンから Adobe AIR の本が、2009 年 8 月 1 日 ( 土 ) に発売されます。
ヒム・カンパニーの永井勝則さんが邦訳されている書籍ですが、私も FxUG の一員として、監訳作業に携わらせていただきました。
AIR アプリケーション未経験者でも読みやすい内容になっていると思いますので、興味のある方は手に取っていただけると幸いです。
オープンソースになった TLF ですが、FLash Builder 4 Beta 上で「定義へ移動」を実現させるためには、下記手順が必要です。
必要なもの
Flash Builder 4 Beta
( Flex Builder 3 では動作しません。Flash Builder 4 Beta のシリアルは、Flex Builder 3 のライセンスを持っている方のみ、こちらから入手できます。 )Flex SDK
( 4.0.0.8702 以降のバージョン )
手順
<Flash Builder 4 Beta のインストールフォルダ>sdks\4.0.0\frameworks\libs\netmon.swc を、<自分で用意した Flex SDK>\frameworks\libs にコピー
新規 Flex プロジェクトまたは、AcrionScript プロジェクトを作成
作成したプロジェクトのライブラリパスの設定で、textLayout.swc の参照を削除
<自分で用意した Flex SDK>\frameworks\projects\textLayout 配下にある下記 4 つのフォルダをマージした flashx フォルダを新規に作成
( 下記プロジェクトをすべて結合したものが textLayout.swc として利用されています )- textLayout_conversion\src\flashx
- textLayout_core\src\flashx
- textLayout_edit\src\flashx
- textLayout_textField\src\flashx
作成した flashx フォルダを、作成したプロジェクトのデフォルトパッケージにコピー
設定ファイル (flex-config.xml) を定義
(TLF のソースに条件付きコンパイル用の定数が記述されているので、下記内容の設定ファイルを作成して、load-config オプションで指定します。個人的にはローカル設定ファイルをお薦めします。 )<flex-config>
<compiler>
<define>
<name>CONFIG::debug</name>
<value>false</value>
</define>
<define>
<name>CONFIG::release</name>
<value>true</value>
</define>
</compiler>
</flex-config>
これで、TLF を使ったコンテンツを作ってデバッグするとき、内部の動作が確認できます。
Flash Builder Beta が修正されバージョンアップすれば、上記手順はすべて不要になると思うのですが、当面はこれでしのげれば…といったところでしょうか。
TLF のオープンソース化が決定し、さっそく Flex SDK 4.0.0.8702 にソースが同梱されています。 バグに関しても、JIRA に投稿できるようです。
Text Layout Framework Team: The Text Layout Framework is now Open Source!
http://blogs.adobe.com/tlf/2009/07/the_text_layout_framework_is_n.html
面白くなってきましたね。
このエントリでは、日本語の縦書きについて書きます。
サンプル ( 画面とソース : Build 465 でビルド )
http://labs.taiga.jp/flex3/TLFSample05/
http://labs.taiga.jp/flex3/TLFSample05/srcview/
サンプルについて、簡単にまとめます。
- TextLayoutFormat クラスで、TextFlow のフォーマットを一括で定義しています。
- textAlign, direction, blockProgression プロパティを変更して縦書きを実現しています。
- justificationRule プロパティの値を JustificationRule.EAST_ASIAN ("eastAsian") にしないと、「。」などの表示位置がおかしくなる場合があります。
- justificationStyle プロパティは TLF 専用ではないので、JustificationStyle クラスの説明を確認してください。
- 縦書きにすると、描画位置が ContainerController.container の矩形領域の外になってしまうことに注意してください。
表示する分には問題なさそうなんですが、テキスト編集やマウス操作をするようなものを作るには、まだ厳しい段階なのかなと思いました。
少し間が空いてしまいましたが続きを書きます。
このエントリを書いている時点で、TLF のビルドのバージョンは 465 なのですが、まだクラス名が変わったりパッケージ構成が変わったりと、色々大変なようです。
サンプル ( 画面とソース : Build 465 でビルド )
http://labs.taiga.jp/flex3/TLFSample04/
http://labs.taiga.jp/flex3/TLFSample04/srcview/
今回アップしたサンプルは、カラムを複数定義したものなので、カラム系のプロパティについて簡単にまとめます。
- TextFlow.columnCount プロパティで、カラム数を定義します。
- TextFlow.columnGap プロパティで、カラム間のギャップを定義します。
- TextFlow.columnWidth プロパティで、単一カラムの幅を定義します。
- columnCount と columnWidth とは併用可能ですが、columnWidth が優先されます。
ついでにサンプルでは、ContainerController.container プロパティとして使用しているプライベートクラス MySprite の中身も少し更新しました。
入力文字列の描画領域が、ContainerController.container の矩形領域超えると、scrollRect プロパティにもちょっかい出しているようで、再設定しています。
ここら辺の詳細フローには興味があるのですが、ソースが見れないのは残念です。

