Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Label - как узнать актуальную ширину элемента (http://www.flasher.ru/forum/showthread.php?t=94470)

OracleN 12.04.2007 19:47

Label - как узнать актуальную ширину элемента
 
Вопрос следующего харакрета,
есть элемент 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

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

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


Часовой пояс GMT +4, время: 19:18.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.