![]() |
|
||||||||||
|
|||||
|
Регистрация: Jun 2004
Сообщений: 4
|
Друзья, подскажите пожалуйста, как быть в следующей ситуации:
Существует несколько переменных, значения которых грузятся в сооветствующие, динамически создаваемые текстовые поля. Каждое из этих текстовых полей находится в своем мувике (так же созданном с помощью createEmptyMovieClip). Все это происходит в цикле (код ниже). Необходимо размещать каждый мувик ниже предыдущего с определенным расстоянием. Проблема в том, что при определении высоты предыдущего клипа, она(высота) определяется не сразу, а с некоторой задержкой. for (i=1; i<=_root.ch_main.lines; i++) { _root.createEmptyMovieClip("main_message"+i, i); _root["main_message"+i]._x = 170; if (i>1) { _root["main_message"+i]._y = _root["main_message"+(i-1)]._y+_root["main_message"+(i-1)]._height+10; } else { _root["main_message"+i]._y = 20; } _root["main_message"+i].createTextField("txt", 2, 0, 0, 104, 0); _root["main_message"+i].txt.embedFonts = true; _root["main_message"+i].txt.wordWrap = true; _root["main_message"+i].txt.autoSize = true; _root["main_message"+i].txt.text = message[i][0]; _root["main_message"+i].txt.setTextFormat(main_text_temp); } Т.е. в таком виде, высота не определяется. А если же добавить какой-нить маленький цикл, все ок. (см. ниже) for (i=1; i<=_root.ch_main.lines; i++) { _root.createEmptyMovieClip("main_message"+i, i); _root["main_message"+i]._x = 170; if (i>1) { for (s=1; s<3; s++) { temp_f = _root["main_message"+(i-1)]._height; } _root["main_message"+i]._y = _root["main_message"+(i-1)]._y+temp_f+10; } else { _root["main_message"+i]._y = 20; } _root["main_message"+i].createTextField("txt", 2, 0, 0, 104, 0); _root["main_message"+i].txt.embedFonts = true; _root["main_message"+i].txt.wordWrap = true; _root["main_message"+i].txt.autoSize = true; _root["main_message"+i].txt.text = message[i][0]; _root["main_message"+i].txt.setTextFormat(main_text_temp); } Как быть? :-) |
|
|||||
|
for (i=1; i<=_root.ch_main.lines; i++) {
_root.createEmptyMovieClip("main_message"+i, i); _root["main_message"+i]._x = 170; _root["main_message"+i]._y = 20*i; .......... ...... ....} Попробуй так... по крайней мере у меня всегда так получалось. ![]() Последний раз редактировалось Крин; 10.06.2004 в 11:12. |
|
|||||
|
Регистрация: Jun 2004
Сообщений: 4
|
Крин, спасибо конечно, но Вы же видите у меня
_root["main_message"+i].txt.wordWrap = true; _root["main_message"+i].txt.autoSize = true; текста неизвестно сколько в каждом поле! Поэтому _root["main_message"+i]._y = 20*i; не пойдет. Жду помощи ![]() |
|
|||||
|
don't panic!
Регистрация: Aug 2001
Сообщений: 4,121
|
бери высоту не у предыдущего клипа а у предыдущего текстового поля.. (можно, кстати, через getTextExtents)
|
|
|||||
|
Регистрация: Jun 2004
Сообщений: 4
|
Nox , уважаемый, а если помимо текста у меня в этом клипе еще и графика будет? Т.е. допустим 2 строчки текста, а под ними картинка небольшая - складывать, не удобно...
|
|
|||||
|
don't panic!
Регистрация: Aug 2001
Сообщений: 4,121
|
а вот если там будет картинка - размеры определятся сразу. :)
если же картинка еще должна будет подгрузится (через loadMovie скажем), то проще всего для разметки приаттачить к клипу прозрачный прямоугольник, и задать ему нужные габариты при создании всего в клипе... тогда эта рамка будет выполнять функции placeholder'а |
|
|||||
|
don't panic!
Регистрация: Aug 2001
Сообщений: 4,121
|
и можно попробовать воспользоваться MovieClip.getBounds
|
|
|||||
|
Регистрация: Jun 2004
Сообщений: 4
|
угу... понятно. Спасибо, Nox !
|
![]() |
Часовой пояс GMT +4, время: 17:39. |
|
|
« Предыдущая тема | Следующая тема » |
|
|