import flash.text.TextField;
var txtBack:TextField=new TextField();
txtBack.text="\n";
trace(txtBack.text=="\n");
trace(txtBack.text=="");
トレースが false になるのはなぜですか?
import flash.text.TextField;
var txtBack:TextField=new TextField();
txtBack.text="\n";
trace(txtBack.text=="\n");
trace(txtBack.text=="");
トレースが false になるのはなぜですか?
text
プロパティを TextField に割り当てると、暗黙的に呼び出されるtrim()
か、末尾の改行のみが削除されます。簡単なテストは次のようなものでした:
tf = new TextField();
tf.text = 'a';
addChild(tf); // to make traces valid
trace(tf.textHeight); // traces 15
tf.text = 'a\na';
trace(tf.textHeight); // traces 30 - yes, 2 lines
tf.text = 'a\n';
trace(tf.textHeight); // traces 15!
これで、verticalText()
関数は改行文字で終了する文字列を返しました。これは、設定するとトリミングされるため、結果tf.text
と等しくなくなりverticalText()
ます。