Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Flash Приложения: AIR, Zinc и тд. (http://www.flasher.ru/forum/forumdisplay.php?f=94)
-   -   Проблема ресайза в Air (http://www.flasher.ru/forum/showthread.php?t=207261)

namespaces 04.04.2014 17:24

Проблема ресайза в Air
 
Есть приложение для Galaxy S4. По умолчанию ставлю размер 480-854 в фуллскрине. Все делается на FD, размеры окна приложения тоже 480-854.
При тестировании на компе все нормально увеличивается, но при загрузке на телефон кроме фоновой картинки объекты не масштабируются.
В главный класс для масштабирования ставлю
Код AS1/AS2:

stage.scaleMode = StageScaleMode.NO_SCALE;
stage.align = StageAlign.TOP_LEFT;

проблема появляется после этого.
Но если изменить на EXACT_FIT все выглядит хорошо, а на компе со всех сторон появляются края.
Как только не пробовал, изменял настройки в манифесте:
Код:

<minimizable>true</minimizable>
<maximizable>true</maximizable>
<aspectRatio>portrait</aspectRatio>
<autoOrients>false</autoOrients>
<resizable>true</resizable>
<x>0</x>
<y>0</y>
<width>480</width>
<height>854</height>
<minSize>480 854</minSize>

initial size: 480/854 и т.д.

Сперва загружаю фоновую картинку и после остальные элементы.

Код AS1/AS2:

public function background(path:String):void
                {
                        imgLoader = new ImageLoader(path, {name: "img", alpha: 0, width: stage.stageWidth, height: stage.stageHeight, scaleModes: "stretch", onProgress: progressHandler, onComplete: completeHandler});
                        imgLoader.load();
                }
 
 
private function completeHandler(e:LoaderEvent):void
                {
 
                        var image:ContentDisplay = LoaderMax.getContent("img");
                        addChild(image);
                        TweenNano.to(image, .5, {alpha: 1});
                        image.cacheAsBitmap = true;
 
                      // Здесь уже добавляются на сцену остальные элементы.
 
                }


Zebestov 04.04.2014 18:40

Цитата:

Сообщение от namespaces (Сообщение 1162945)
Код AS3:

stage.scaleMode = StageScaleMode.NO_SCALE;
stage.align = StageAlign.TOP_LEFT;


Это правильно.
Попробуй теперь везде, где нужно узнать ширину(высоту) приложения использовать не stage.stageWidth(Height), а stage.fullScreenWidth(Height).

namespaces 05.04.2014 04:03

Спасибо за подсказку stage.fullScreenWidth, мне никогда не доводилось использовать эту функцию.
Решил таким образом, добавил stage.displayState = StageDisplayState.FULL_SCREEN_INTERACTIVE; и в файле Run.bat изменил строчку set SCREEN_SIZE=NexusOne на set SCREEN_SIZE=Droid
Размер моего приложения было 480-854, а по умолчанию FD ставит NexusOne, которое 480-800. Вот почему по краям появлялись отступы. Хотя это не влияет на компиляцию, мешает только при разработке.
Важно лишь передаваемые параметры в -adl. Об этом написано здесь подробно.
http://help.adobe.com/ru_RU/air/buil...3d31-8000.html

Интересует лишь один вопрос, чем отличается stage в мобильной версии от десктопного?


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

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