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()ます。