PDA

Просмотр полной версии : Проблема ресайза в Air


namespaces
04.04.2014, 17:24
Есть приложение для Galaxy S4. По умолчанию ставлю размер 480-854 в фуллскрине. Все делается на FD, размеры окна приложения тоже 480-854.
При тестировании на компе все нормально увеличивается, но при загрузке на телефон кроме фоновой картинки объекты не масштабируются.
В главный класс для масштабирования ставлю
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 и т.д.

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

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
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/build/WSfffb011ac560372f-6fa6d7e0128cca93d31-8000.html

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