PDA

Просмотр полной версии : Label - как узнать актуальную ширину элемента


OracleN
12.04.2007, 19:47
Вопрос следующего харакрета,
есть элемент Label у него выставляю autoSize = left;

В результате когда в него текст не влазить, то он меняет ширину, и вроде все какбы нормально.

Но вот как теперь узнать его ширину, если писать через _width - то показывает первоначальную ширину а не актуальную.

etc
12.04.2007, 19:51
Поставь два трейса с _width. Если второй правильный, то это косяк TextField.

OracleN
12.04.2007, 20:04
да, полный касяк, плохо...

etc
12.04.2007, 20:04
Второй _width возвращает верное значение?

OracleN
12.04.2007, 20:10
trace(hint_mc.hint_text._width);
hint_mc.hint_text.text = ' a<b>sdf</b>asdfas asdf asd fasfa sdf a sd f as df as df';

trace(hint_mc.hint_text._width);

Ширина не меняется. т.е. баг.

iNils
12.04.2007, 20:28
trace(hint_mc.hint_text._width);
hint_mc.hint_text.text = ' a<b>sdf</b>asdfas asdf asd fasfa sdf a sd f as df as df';
hint_mc.hint_text.draw ();
trace(hint_mc.hint_text._width);

OracleN
12.04.2007, 20:32
Да, дела... Ну уж такого я не встречал еще ни в одном языке....

Спасибо.

iNils
12.04.2007, 20:45
На самом деле достаточно сделать так
hint_mc.hint_text.draw ();

trace(hint_mc.hint_text._width);

hint_mc.hint_text.text = ' a<b>sdf</b>asdfas asdf asd fasfa sdf a sd f as df as df';
trace(hint_mc.hint_text._width);

hint_mc.hint_text.text = ' a<b>sdf</b>asdfas asdf asd fasfa sdf a sd f as df as dfasdfasdfasdf';
trace(hint_mc.hint_text._width);
то есть вызвать в самом начале draw вручную. Тогда получим:
35
311
383
Нужно это потому, что сам draw срабатывает гораздо позже. Вот пример:
hint_mc.hint_text.draw = function (){
trace ("draw")
}

trace(hint_mc.hint_text._width);

hint_mc.hint_text.text = ' a<b>sdf</b>asdfas asdf asd fasfa sdf a sd f as df as df';
trace(hint_mc.hint_text._width);

hint_mc.hint_text.text = ' a<b>sdf</b>asdfas asdf asd fasfa sdf a sd f as df as dfasdfasdfasdf';
trace(hint_mc.hint_text._width);
На выходе получаем
100
100
100
draw

OracleN
12.04.2007, 21:36
Вообще инетересный подход, почему бы сразу не выставлять параметры нужным образом, а редровить уже можно как там системе удобнее.
Хотя думаю это просто можно в исходниках переписать.

Вообще по исходникам сложилось такое впечатление что на быструю руку лепили их, т.е. по комментариям, по этим вещам. Просто когда я брал исходники из того же дельфи, ну там просто идеальный код.