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

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

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

блогер
Регистрация: Sep 2011
Адрес: Москва
Сообщений: 533
Записей в блоге: 4
По умолчанию Позиционирование элементов в скинованном ActionBar (flex mobile)

Убил уже на эту проблему полдня, и мозг уже вообще не соображает, поэтому пишу сюда. Есть в приложении заскинованный ActionBar который сейчас выглядит вот так:

А нужно чтобы он выглядел вот так:

То есть проблема в позиционировании компонента «крестик с циферкой» который сделан во флеше и просто заэддчайлден в классе UIComponent
Как все сделано сейчас
Скин присвоен в css:
Код:
s|ActionBar
{
	chromeColor: #d9e0e7;
	titleAlign: center;
	skinClass: ClassReference("theme.ActionBarSkin");
	paddingBottom: 0;
	paddingLeft: 10;
	paddingRight: 0;
	paddingTop: 2;
}
Класс скина я просто скопировал из мобильной темы, и внес в него все необходимые мне изменения.
В классе Main содержимое ActionBar вставляется так:
Код AS3:
<s:navigationContent>
				<s:Image smooth="true" left="15" top="2"         source="@Embed('../assets/actionBar/header.png')"/>
</s:navigationContent>
 
<s:actionContent>
				<s:Image id="menuBack" smooth="true" width="100%" height="100%" source="@Embed('../assets/actionBar/menuBtn.png')" click="navigator.popToFirstView();"/>
</s:actionContent>
То есть картинка-лейбл слева вставляется в navigationContent, синяя кнопка возврата в меню в actionContent. Компонент я решил вставить в titleContent, соотвественно во view, где он появляется, я вписываю следующее:
Код AS3:
<s:titleContent>
		<as3comps:SmallSelectedIcon   width="100%" height="100%" click="navigator.pushView(views.Selected)"  />
</s:titleContent>
<s:actionContent>
		<s:Image id="menuBack" name="menuBack" smooth="true" width="100%"  height="100%" source="@Embed('../assets/actionBar/menuBtn.png')" click="navigator.popToFirstView();"/>
</s:actionContent>
Ну и теперь самое главное, я думал что теперь мне достаточно в классе скина изменить лейаут titleGroup примерно так (строчка с комментарием):
Код AS3:
titleGroup = new Group();
        hLayout = new HorizontalLayout();
        hLayout.horizontalAlign = HorizontalAlign.RIGHT; //  было LEFT
        hLayout.verticalAlign = VerticalAlign.MIDDLE;
        hLayout.gap = 0;
        hLayout.paddingLeft = hLayout.paddingRight = layoutTitleGroupHorizontalPadding; 
        hLayout.paddingTop = hLayout.paddingBottom = 0;
        titleGroup.layout = hLayout;
        titleGroup.id = "titleGroup";
однако обнаружил что изменения вносимые в лейаут в скине, ни напрямую в код, ни через css, никак не проявляются, компонент остается на своем месте. Все остальные способы поменять его место (впихнуть в actionGroup и т.д.) оказались глючными или нерабочими. В общем на этом примере я остро ощутил свое непонимание принципов позиционирования компонентов во Flex, очень надеюсь что кто нибудь прояснит хотя бы в каком направлении копать.
Изображения
   

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

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

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


 


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


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