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

Вернуться   Форум Flasher.ru > Flash > Flash Приложения: AIR, Zinc и тд.

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

Регистрация: Jun 2010
Сообщений: 107
Question Постоянный бэкграунд во View

Коллеги, у меня возникла такая проблема - View Based Application при переходе с одного вью на другой не сразу загружает бэкграунд (Image, растянутый на всю сцену). Т.е. при переходе не следующий вью долю секунды сначала показывается белый экран с элементами управления и лишь затем загружается рисунок в Image. Выглядит ужасно - надо чтобы рисунок был сразу. В компоненте View не нашел свойства background image, сделал destructionPolicy = never, в надежде что картинка не уничтожится, но нет - все равно белый экран мелькает при старте вью... Что делать???

PS. изображение Embed - не помогает


Последний раз редактировалось Light; 08.03.2012 в 21:15.
Старый 11.03.2012, 13:21
alatar вне форума Посмотреть профиль Отправить личное сообщение для alatar Найти все сообщения от alatar
  № 2  
Ответить с цитированием
alatar
 
Аватар для alatar

блогер
Регистрация: Dec 2008
Адрес: Israel, Natanya
Сообщений: 4,740
Записей в блоге: 11
Если бэкграунд один на всех, то сделайте скин для вашего Application, если для всех разный, то (и) для каждого View.
__________________
משיח לא בא
משיח גם לא מטלפן

Старый 12.03.2012, 03:49
Light вне форума Посмотреть профиль Отправить личное сообщение для Light Найти все сообщения от Light
  № 3  
Ответить с цитированием
Light

Регистрация: Jun 2010
Сообщений: 107
alatar, спасибо, но при смене ориентации устройства, бекграунд, добавленный таким способом, не меняется...

PS. Я пытаюсь сделать as-скин, бекграунд загружаю лоадером. Кто-нибудь может подсказать, как сделать чтобы loader в скине изменялся при смене ориентации устройства? Простые способы уже перепробовал: всевозможные Listener'ы StageOrientationEvent'ов не работают в скинах.

PPS. А когда делаю mxml-скин и делаю там бекграунд с помощью image - вообще волшебство какое-то - все компоненты на сцене исчезают! Бекграунд вроде меняется нормально, но все остальное кроме бекграунда и верхней панели не видно! Так что пытаюсь сделать as-скин, он хотя бы не заставляет остальные компоненты исчезать


Последний раз редактировалось Light; 12.03.2012 в 04:39.
Старый 12.03.2012, 10:09
Astraport вне форума Посмотреть профиль Отправить личное сообщение для Astraport Найти все сообщения от Astraport
  № 4  
Ответить с цитированием
Astraport
 
Аватар для Astraport

блогер
Регистрация: Sep 2009
Сообщений: 2,463
Записей в блоге: 2
Цитата:
Кто-нибудь может подсказать, как сделать чтобы loader в скине изменялся при смене ориентации устройства? Простые способы уже перепробовал: всевозможные Listener'ы StageOrientationEvent'ов не работают в скинах.
Попробуйте сделать в приложении два state - portrait и landscape (именно такие названия). И для бэкграунда сделайте разные source для каждого state.

При переходе с одного вью на другой можно попробовать поменять вид transition и время воспроизведения.

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

Регистрация: Jun 2010
Сообщений: 107
Astraport, у loader нет source. И я не знаю как сделать различные states из actionscript-скина. В MXML-скинах это легко, но я уже говорил, что когда я применяю mxml-скин к view, все элементы управления таинственным образом исчезают... Поэтому хочу сделать actionscript-скин.

Извиняюсь если это нубские вопросы... Я только недавно перешел из чистого as3 на flex, многое непонятно пока.


Последний раз редактировалось Light; 12.03.2012 в 18:44.
Старый 12.03.2012, 19:06
Astraport вне форума Посмотреть профиль Отправить личное сообщение для Astraport Найти все сообщения от Astraport
  № 6  
Ответить с цитированием
Astraport
 
Аватар для Astraport

блогер
Регистрация: Sep 2009
Сообщений: 2,463
Записей в блоге: 2
Давайте код что ли как это исчезают элементы управления.

Старый 12.03.2012, 19:22
Light вне форума Посмотреть профиль Отправить личное сообщение для Light Найти все сообщения от Light
  № 7  
Ответить с цитированием
Light

Регистрация: Jun 2010
Сообщений: 107
Вот код mxml-скина
Код AS3:
<?xml version="1.0" encoding="utf-8"?>
<s:Skin xmlns:fx="http://ns.adobe.com/mxml/2009" 
		xmlns:s="library://ns.adobe.com/flex/spark">
	<!-- host component -->
	<fx:Metadata>
		[HostComponent("spark.skins.mobile.SkinnableContainerSkin")]
	</fx:Metadata>
 
	<!-- states -->
	<s:states>
		<s:State name="disabled" />
		<s:State name="normal" />
	</s:states>
 
	<s:Image left="0" right="0" top="0" bottom="0" scaleMode="zoom"
			 smooth="true" source="assets/mainfon2.jpg"/>
 
	<!-- SkinParts
	name=contentGroup, type=spark.components.Group, required=false
	-->
</s:Skin>
Добавляется этот скин вот таким образом:
Код AS3:
<s:View xmlns:fx="http://ns.adobe.com/mxml/2009"
		xmlns:s="library://ns.adobe.com/flex/spark"
		creationComplete="view2_creationCompleteHandler(event)"
		overlayControls="false" skinClass="skins.MainViewMXMLSkin" title="Title" addedToStage="view1_addedToStageHandler(event)">
Если таким же точно образом добавить actionscript-скин, элементы управления не пропадают, значит дело в скине?

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

блогер
Регистрация: Dec 2008
Адрес: Israel, Natanya
Сообщений: 4,740
Записей в блоге: 11
О скинах для мобильников: раз, два, три.

Вы должны расширить spark.skins.mobile.SkinnableContainerSkin (в случае View) или spark.skins.mobile.ViewNavigatorApplicationSkin (в случае NavigatorApplication) и переписать защищенный метод drawBackground в котором и отрисовывать вашу картинку.
__________________
משיח לא בא
משיח גם לא מטלפן


Последний раз редактировалось alatar; 12.03.2012 в 19:37.
Старый 12.03.2012, 19:36
Light вне форума Посмотреть профиль Отправить личное сообщение для Light Найти все сообщения от Light
  № 9  
Ответить с цитированием
Light

Регистрация: Jun 2010
Сообщений: 107
alatar О, спасибо огромное. Как раз та инфа, которую я искал!)) Надеюсь drawBackground вызывается при каждом изменении ориентации девайса.

И все же интересно, что за фигня с mxml-скинами, почему не работают как надо...

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

блогер
Регистрация: Dec 2008
Адрес: Israel, Natanya
Сообщений: 4,740
Записей в блоге: 11
В чем причина использования Loader вместо Embed'a? Вы планируете менять фон в рантайме?

P.S. Использование Image в скинах расточительно даже для десктопа, для этого есть более легкий класс BitmapImage.

Добавлено через 5 минут
Цитата:
И все же интересно, что за фигня с mxml-скинами, почему не работают...
Фигня не со скинами, а с тем что вы contentGroup не добавили. Куда ему, по-вашему, пихать дочерние компоненты?
__________________
משיח לא בא
משיח גם לא מטלפן

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

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

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


 


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


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