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

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

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

Регистрация: Sep 2009
Сообщений: 15
По умолчанию Изменение размера элементов при изменении размера parent

Суть проблемы в следующем.
Есть флэшка, которая динамически изменяет свой размер с помощью js.
Так вот, когда она изменяет свой размер, то все потомки автоматически тоже изменяют размер, кроме того изменяется и просто положение этих элементов, хотя всем им жестко прописаны соответствующие координаты.
Как сделать так, чтобы размеры у детей не менялись и лэйаут оставался прежним?
Я уже замучался, и scale пробовал, и просчитывал размеры в зависимости от размеров стейджа - ведет себя непонятно все равно.
И вообще не очень понимаю, как работает механизм изменения размеров у детей при изменении размеров у родителей. Может дадите умные советы?
Был бы очень благодарен

Старый 19.01.2010, 20:36
Gaen вне форума Посмотреть профиль Отправить личное сообщение для Gaen Найти все сообщения от Gaen
  № 2  
Ответить с цитированием
Gaen
strange mood
 
Аватар для Gaen

модератор форума
Регистрация: Jul 2004
Адрес: Питер
Сообщений: 1,653
Записей в блоге: 1
Отправить сообщение для Gaen с помощью ICQ Отправить сообщение для Gaen с помощью Skype™
Код AS3:
stage.scaleMode = StageScaleMode.NO_SCALE;
stage.align = StageAlign.TOP_LEFT;
__________________
тонкий тролль, осеянный благодатью

Старый 20.01.2010, 00:57
sergeik81 вне форума Посмотреть профиль Отправить личное сообщение для sergeik81 Найти все сообщения от sergeik81
  № 3  
Ответить с цитированием
sergeik81

Регистрация: Sep 2009
Сообщений: 15
Спасибо, но это не влияет.
Я, в принципе, знаю, что при изменении размеров у parent, нужно изменять и размеры у child соответствующим образом или вообще лучше не пихать в этот parent, но что за бред? Это мало поддается какой-то логике, по крайней мере очень тяжело становится реализовывать контейнеры. В том же свинге ничего подобного просто нет.
Немного диковато выглядит с первого раза.
Может есть какие-то решения? Просто как тогда в том же флексе все работает? Или там играет тот факт, что в updateDisplayList передаются unscaledHeight, unscaledWidth?

Старый 20.01.2010, 01:12
nOobCrafter вне форума Посмотреть профиль Отправить личное сообщение для nOobCrafter Найти все сообщения от nOobCrafter
  № 4  
Ответить с цитированием
nOobCrafter

Регистрация: Nov 2008
Сообщений: 894
Записей в блоге: 1
можнон прпобовать так:
- передаете через флешварс исходные размеры ролика (или зашиваете их во флешку)
- далее слушаем событие ресайза и просходимся циклом по всем детишкам, на основении деофлтных занчений флешки ставим им размер и местоположение
имхо удобный вариант

Старый 20.01.2010, 10:45
leofit вне форума Посмотреть профиль Отправить личное сообщение для leofit Найти все сообщения от leofit
  № 5  
Ответить с цитированием
leofit
 
Аватар для leofit

Регистрация: Dec 2009
Сообщений: 428
У Вас все дети лежат в контейнере, размер которого меняется?

Сделайте один мувик бекграундом, размер которого собираетесь изменять, а всех детей проинициализируйте отдельно, вот и все. При изменении флешки меняться будет только бекграунд, а координаты и размер кнопок, мувиков и прочего останутся неизменными..
__________________
Скажи мне кто твой друг и я скажу тебе кто твой друг

Старый 20.01.2010, 16:54
Gaen вне форума Посмотреть профиль Отправить личное сообщение для Gaen Найти все сообщения от Gaen
  № 6  
Ответить с цитированием
Gaen
strange mood
 
Аватар для Gaen

модератор форума
Регистрация: Jul 2004
Адрес: Питер
Сообщений: 1,653
Записей в блоге: 1
Отправить сообщение для Gaen с помощью ICQ Отправить сообщение для Gaen с помощью Skype™
В общем случае, если вы хотите сделать контейнер как во флексе, вам нужно переопределить для него геттеры и сеттеры width и height, и при изменении соответственно менять размеры одних детей и координаты других.
__________________
тонкий тролль, осеянный благодатью

Старый 20.01.2010, 18:48
sergeik81 вне форума Посмотреть профиль Отправить личное сообщение для sergeik81 Найти все сообщения от sergeik81
  № 7  
Ответить с цитированием
sergeik81

Регистрация: Sep 2009
Сообщений: 15
Всем спасибо, все сделал.
Хотелось бы только понять, как переопределить геттеры и сеттеры width и height в таком случае?
Внутри самого флекса у UIComponent в этих сеттерах по сути вызываются только invalidate разные, которые в конечном счете приводят к measure и updateDisplayList. То есть вот таким макаром действовать?

Старый 20.01.2010, 19:05
Gaen вне форума Посмотреть профиль Отправить личное сообщение для Gaen Найти все сообщения от Gaen
  № 8  
Ответить с цитированием
Gaen
strange mood
 
Аватар для Gaen

модератор форума
Регистрация: Jul 2004
Адрес: Питер
Сообщений: 1,653
Записей в блоге: 1
Отправить сообщение для Gaen с помощью ICQ Отправить сообщение для Gaen с помощью Skype™
Код AS3:
public override function set width(w:Number):void{
    this._width = w;
    this.mcBackground.width = w;
    this.mcRightAlignedContent.x = w - this.mcRightAlignedContent.width;
}//set width
__________________
тонкий тролль, осеянный благодатью

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

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

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


 


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


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