Text Layout Framework のバグ?

Text Layout Framework が知らぬ間にバージョンアップしているではないか!
と気がついて、さっそく差し替えてみました。

クラスやメソッドなど、ところどころ変わっているようですが、そのへんはドキュメント見ながら書き換えれば問題ないですね。
ドキュメントが英語なので、ちょっと面倒ですけど。

ただ、特定のフォントで、 TextFlow から flowComposer.updateAllControllers() を実行すると、以下のエラーが発生します。

undefined
at flashx.textLayout.compose::StandardFlowComposer/internalCompose()
at flashx.textLayout.compose::StandardFlowComposer/composeToController()
at flashx.textLayout.compose::StandardFlowComposer/updateToController()
at flashx.textLayout.compose::StandardFlowComposer/updateAllControllers()

これ、どうやって修正 or 回避すればいいのだろう・・・。
せめて例外の発生であれば、try-catch できるんだけどなぁ。

以前の古い Text Layout Framework (textLayout_conversion.swc, textLayout_core.swc, textLayout_edit.swc の3つに別れていた頃)で同じフォントを指定すると

Error: Error #2161: An internal error occured while laying out the text.

という例外がスルーされるので、まだ対処のしようがあるのですが。
なにか指定しているパラメータでも、悪いのかなぁ。

PrintJobのバグ?

Flex3.3で作成中のAIRアプリで、PrintJobで印刷を行う際に、以下のような警告が出る。

Warning: Filter will not render. The DisplayObject’s filtered dimensions (8453, 712) are too large to be drawn.

「フィルターが大きすぎて適用できません」といった意味合いの警告だけど、フィルターを適用していない(つもりの)対象に対してもこの警告が出る。

いろいろ調べてみたところ、ステージ上にある(つまり、表示されている)UIComponentを印刷対象とするとこの警告が発生するようだ。
試しに、同じ対象をステージ上から削除して印刷すると、警告は表示されない。

ふーむ。
ぼくのプログラムに原因があるのか(どこかで気付かずミスしているのか)、それともFlexのバグなのか、どっちだろう。
とりあえず、警告が出るだけで実害はないので、放っておけばいいっちゃあいいんだけど。

そういえば、逆に、フィルターを適用したはずの場合で、フィルターが印刷されない現象も見られるので、やっぱりバグだろうかね。