
где-то я уже это писал, но забыл где. :)
1
2
3
4
5
6
7
8
this.createTextField("TF", 0, 0, 0, 200, 0);
TF.multiline = TF.wordWrap=true;
TF.autoSize = true;
TF.text = "Jackdaws love my big sphinx of quartz.";
TF.text += TF.text += TF.text;
//
trace(TF._height); // 19
trace(TF._height); // 64
текстовое поле осознает свою высоту не сразу, а только после первого обращения. иногда это
так работает и для не-динамически созданных полей.
со свойством textHeight и того хуже: до первой смены кадров высота текста известна не будет.
1
2
3
4
5
6
7
8
9
10
11
12
13
this.createTextField("TF", 0, 0, 0, 200, 0);
TF.multiline = TF.wordWrap=true;
TF.autoSize = true;
TF.text = "Jackdaws love my big sphinx of quartz.";
TF.text += TF.text += TF.text;
//
trace(TF.textHeight); // 15
trace(TF.textHeight); // 15
this.onEnterFrame = function()
{
trace(TF.textHeight); // 60
delete this.onEnterFrame;
};
update 10.11.2006:
На форуме Мигель подал хорошую мысль - всё
дело в автоматическом переносе по словам.
1
2
3
4
5
6
7
8
this.createTextField("TF", 0, 0, 0, 200, 0);
TF.multiline = TF.wordWrap=true;
TF.autoSize = true;
TF.text = "Jackdaws love my big\nsphinx of quartz.\n";
TF.text += TF.text += TF.text;
//
trace(TF._height); // 94
trace(TF._height); // 94
Видим, что, исключив необходимость переносить текст по словам мы устранили и глюк с определением высоты. К сожалению в большинстве случаев применить такой прием невозможно. :(