TLFTextField独習 その3

  • 2010 年 9月 3 日
  • kosuke

TLFTextFieldを弄っていて気づいたところ。
デフォルトで隙間があるんです。TextFieldにもあったけど。
borderをつけてみるとわかる。

XML.prettyPrinting	= false;
XML.prettyIndent	= 0;
var markup:XML	= <TextFlow xmlns="http://ns.adobe.com/textLayout/2008"><p><img source="contrail.jpg" width="200" height="150"/></p></TextFlow>;
 
var field:TLFTextField	= new TLFTextField();
field.border= true;
field.x		= 10;
field.y		= 10;
field.width	= 230;
field.height= 200;
field.tlfMarkup = markup.toString();
addChild( field );

端から2pxの隙間がある。


この隙間を無くしたいと思いました。
paddingだろうと思って、それらしきものを調べてみるとすべて未定義。

//結果はもれなくundefined。
trace( field.textFlow.paddingTop );
trace( field.textFlow.paddingLeft );
trace( field.textFlow.hostFormat.paddingTop );
trace( field.textFlow.hostFormat.paddingLeft );
trace( field.textFlow.format.paddingTop );
trace( field.textFlow.format.paddingLeft );

この隙間はコンテナレベルのpaddingに指定されていました。

//コンテナレベルのレイアウトを確認してみる。
var controller:ContainerController = field.textFlow.flowComposer.getControllerAt( 0 );
//TLFContainerController。謎のクラス。
trace( controller );
 
//これだ。
trace( controller.paddingTop );
trace( controller.paddingLeft );
trace( controller.format.paddingTop );
trace( controller.format.paddingLeft );
 
controller.paddingTop = controller.paddingLeft = 0;
field.textFlow.flowComposer.updateAllControllers();

TLFContainerControllerって名前で意味はわかりますが、ググっても全然出てこない謎のコントローラー。

“TLFTextField独習 その3” に コメントはありません

コメントをどうぞ