2010年1月14日
Flash | TextFlowLineの文字列データ
Flex SDK 4.0.0.10485に含まれているText Layout Framework(TLF)でのお話。
TLFで文章内の一行を表すのがflashx.textLayout.compose.TextFlowLineクラス。このTextFlowLineオブジェクトに含まれるテキスト、つまりある一行の文字列データを取得したいのだけど、TextFlowLineクラスにはgetText()メソッド的なそのものずばりのメソッドやプロパティが用意されていない。
なので、今まで非常にややこしい方法でテキストを取っていたんだけど、やっと簡易な方法がわかった。
var line:TextFlowLine = textFlow.flowComposer.findLineAtPosition(xxx); var lineStr:String = line.paragraph.getText().substr(line.getTextLine().textBlockBeginIndex, line.textLength);
このline.getTextLine()メソッドによって、TLFからFlash Text EngineのTextLineオブジェクトを取得できる。このTextLineクラスのtextBlockプロパティとTextFlowLine.paragraphプロパティはほぼ同義なものと思われる。
ちなみに、Adobeサイトに上がっているTLFのAPIドキュメントは古い。
Comment