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

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

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

Регистрация: Jun 2009
Сообщений: 64
По умолчанию Информационное окно с меняющимся размером всегда в центре

Что-то я совсем запутался.
Нужно создать Информационное окно, в котором может меняться текст, в зависимости от объема текста будет меняться и размер окна, окно должно быть всегда в центре экрана.
(наверняка изобретаю велосипед, если есть готовое решение - поделитесь, плз)

Реализую следующим образом.
Окно _info_panel содержит:
- рамку: mcFrm типа MovieClip, с заданным scale9Grid, instance frame'a со scaleY не равным 1 уже;
- заголовок: txtTitle DynamicText;
- сам текст: txtText DynamicText.

Окно создается в коде AS.
Оно позиционируется в центре экрана и ему задается текст (с этим проблем нет), размер рамки меняется в зависимости от объема текста:
Код AS3:
_info_panel.x = Math.round(_stage_width/2 - _info_panel.width/2); 
_info_panel.y = Math.round(_stage_height/2 - _info_panel.height/2);
_info_panel.txtTitle.text = "Заголовок";
_info_panel.txtText.text = "Некий текст.\n\nВ несколько строк...";
_info_panel.txtText.autoSize = TextFieldAutoSize.CENTER;
_info_panel.mcFrm.height = _info_panel.txtText.textHeight + 85;
85 - высота двух границ рамки + заголовка + необходимого пространства между рамкой, текстом и заголовком.

В результате работы этого кода рамка оказывается в центре экрана, заголовок и текст остаются на старых местах. Как их разместить правильно?

Добавлено через 23 часа 24 минуты
товарищи, нет ли готового кода, реализующего этот функционал?

Добавлено через 25 часов 52 минуты
вот так все заработало как надо:
Код AS3:
_info_panel.txtText.autoSize = TextFieldAutoSize.CENTER;      
_info_panel.txtTitle.text = "текст заголовка";
_info_panel.txtText.text = "текст сообщения";
_info_panel.mcFrm.height = 20 + _info_panel.txtTitle.height + 20 + _info_panel.txtText.height + 40;
_info_panel.txtText.y = 20 + _info_panel.txtTitle.height + 20;
_info_panel.txtTitle.y = 30;
_info_panel.x = Math.round(_stage_width/2 - _info_panel.width/2); 
_info_panel.y = Math.round(_stage_height/2 - _info_panel.height/2);


Последний раз редактировалось LA_; 01.10.2009 в 23:45.
Создать новую тему Ответ Часовой пояс GMT +4, время: 15:33.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Теги
окно , позиция , размер
Опции темы
Опции просмотра

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

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


 


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


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