Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Архив Flasher.ru > Flash > ActionScript

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему  
Старый 10.06.2004, 00:23
ilya_al вне форума Посмотреть профиль Отправить личное сообщение для ilya_al Найти все сообщения от ilya_al
  № 1  
ilya_al

Регистрация: 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);
}

Как быть? :-)

Старый 10.06.2004, 11:07
Крин вне форума Посмотреть профиль Отправить личное сообщение для Крин Посетить домашнюю страницу Крин Найти все сообщения от Крин
  № 2  
Крин
 
Аватар для Крин

Регистрация: May 2004
Адрес: Уже незнаю где...
Сообщений: 85
Отправить сообщение для Крин с помощью ICQ
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.
Старый 10.06.2004, 11:30
ilya_al вне форума Посмотреть профиль Отправить личное сообщение для ilya_al Найти все сообщения от ilya_al
  № 3  
ilya_al

Регистрация: Jun 2004
Сообщений: 4
Крин, спасибо конечно, но Вы же видите у меня

_root["main_message"+i].txt.wordWrap = true;
_root["main_message"+i].txt.autoSize = true;

текста неизвестно сколько в каждом поле! Поэтому

_root["main_message"+i]._y = 20*i;

не пойдет. Жду помощи

Старый 10.06.2004, 12:25
Nox Noctis вне форума Посмотреть профиль Отправить личное сообщение для Nox Noctis Посетить домашнюю страницу Nox Noctis Найти все сообщения от Nox Noctis
  № 4  
Nox Noctis
don't panic!
 
Аватар для Nox Noctis

Регистрация: Aug 2001
Сообщений: 4,121
бери высоту не у предыдущего клипа а у предыдущего текстового поля.. (можно, кстати, через getTextExtents)

Старый 10.06.2004, 12:37
ilya_al вне форума Посмотреть профиль Отправить личное сообщение для ilya_al Найти все сообщения от ilya_al
  № 5  
ilya_al

Регистрация: Jun 2004
Сообщений: 4
Nox , уважаемый, а если помимо текста у меня в этом клипе еще и графика будет? Т.е. допустим 2 строчки текста, а под ними картинка небольшая - складывать, не удобно...

Старый 10.06.2004, 12:44
Nox Noctis вне форума Посмотреть профиль Отправить личное сообщение для Nox Noctis Посетить домашнюю страницу Nox Noctis Найти все сообщения от Nox Noctis
  № 6  
Nox Noctis
don't panic!
 
Аватар для Nox Noctis

Регистрация: Aug 2001
Сообщений: 4,121
а вот если там будет картинка - размеры определятся сразу. :)

если же картинка еще должна будет подгрузится (через loadMovie скажем), то проще всего для разметки приаттачить к клипу прозрачный прямоугольник, и задать ему нужные габариты при создании всего в клипе... тогда эта рамка будет выполнять функции placeholder'а

Старый 10.06.2004, 12:51
Nox Noctis вне форума Посмотреть профиль Отправить личное сообщение для Nox Noctis Посетить домашнюю страницу Nox Noctis Найти все сообщения от Nox Noctis
  № 7  
Nox Noctis
don't panic!
 
Аватар для Nox Noctis

Регистрация: Aug 2001
Сообщений: 4,121
и можно попробовать воспользоваться MovieClip.getBounds

Старый 10.06.2004, 13:37
ilya_al вне форума Посмотреть профиль Отправить личное сообщение для ilya_al Найти все сообщения от ilya_al
  № 8  
ilya_al

Регистрация: Jun 2004
Сообщений: 4
угу... понятно. Спасибо, Nox !

Создать новую тему   Часовой пояс GMT +4, время: 17:39.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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