Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Несколько вопросов по Mobile dev (android) (http://www.flasher.ru/forum/showthread.php?t=213574)

in4core 08.11.2016 23:50

Ну если я верно понял, делать по но_скейл будет очень сильным и сложным геммороем, но нужным. Получается теперь каждую деталь придется масштабировать вручную пропорционно.
То есть брать допустим разрешение 1920*1080 - рисовать под нее дизайн кнопки, расположить кнопки. Допустим их будет 5 шутк на экране всегда, и если разрешение будет скажем 600*600 , то надо будет программно выстраивать эти 5 кнопок так, чтобы по высоте их уместилось так же 5 шутк, прижется и W и Н считать. А элементов будет куча... и это будет засада, онРесайз превратится в мусорку чую.
Я все верно понял?

Zebestov 08.11.2016 23:56

Не совсем так. Есть много вариантов. Опишу не свой, а один из наиболее легких.

1. Берешь некую наиболее популярную среднюю пропорцию и выстраиваешь основной дизайн так, чтобы все помещалось при таких пропорциях.
2. Но фон делаешь таким, чтобы он имел продолжение во все четыре стороны.
3. На конкретном девайсе смотрит, как разместить твой примерочный прямоугольник со средними пропорциями максимально на данном экране. Ну т.е. как его прижать по возможности плотнее к краям, но при этом не искажать пропорции верстки. Таким образом в одной паре сторон твоя верстка будет прижата вплотную, а в другие стороны продолжится твой фон.
4. На предыдущем пункте можно было бы и остановиться, но можно еще немного пораздвигать к свободным местам приграничные кнопки. Это не так сложно, как кажется.

Godwarlock 09.11.2016 00:09

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

Nooob 09.11.2016 04:25

1. Используй только растр. Именно Bitmap, никакого graphics.beginBitmapFill. И текст тоже лучше в Bitmap. <renderMode>gpu</renderMode>, в этом режиме Bitmap рендериться без флешового блиттинга и будет быстрее. Поиграйся с stage.quality.
2. При выборе разрешения и масштабирования можно долго ковырять, к примеру забавный факт в iPhone6+ картинка 2208x1242 но с даунскейлом до 1920x1080. Так что оптимальнее выбрать фиксированную ширину 1080 с адаптивной высотой при соотношении сторон на устройстве и SHOW_ALL в scaleMode. Либо запастись терпением и делать полностью адаптивный интерфейс с NO_SCALE

Первый экран не годится так как на планшетах 4/3 не влезет, нужно больше оставлять пустого пространства для маневра по высоте

caseyryan 09.11.2016 06:13

Цитата:

Сообщение от Godwarlock (Сообщение 1197174)
Должен быть основной контейнер, скажем размером 1920x1080, масштабируешь контейнер со всем содержимым, под размер экрана и профит, через ресайз масштабируется контейнер под разрешение экрана и все вложенные в него дети, также масштабируются под нужный размер. Пропорция сохраняется при любом разрешении устройства, в том числе координаты.

Ага, и будет у тебя сплошное мыло, если маленькую графику растягивать. А если даунскейлить огромную, на слабых устройствах все это будет стреском "крашиться" из-за нехватки оперативки.

Сань, посмотри лучше как в старлинге реализован скейлинг. Для твоей игры, где нет динамики и кучи графики, старлинг конечно избыточен, но много концепций ты можешь оттуда взять. Все-таки фреймворк изначально заточен под мобилы
Цитата:

Я показал эту https://en.wikipedia.org/wiki/Android_version_history - сказали работает с 5 значит.
Так по этой картинке тоже видно, что 4й самый массовый

Godwarlock 09.11.2016 10:13

Цитата:

Ага, и будет у тебя сплошное мыло, если маленькую графику растягивать. А если даунскейлить огромную, на слабых устройствах все это будет стреском "крашиться" из-за нехватки оперативки.
Не знаю. Дизайн моего проекта делался на основе 1920x1080, приложение тестировалось на 5 разных устройствах и на 1 планшете (некоторые из них с не очень хорошей характеристикой), везде результат хороший, оперативка практически не тратится и крашей не наблюдалось. Ну не каждую же картинку в ручную масштабировать как надо под каждое разрешение

in4core 09.11.2016 11:34

Nooob - под планшеты будет отдельный дизайн и отдельная версия, тут масштабный проект.
Костя, а где собственно посмотреть как он реализован? Я бы взял бы старлинг и не парился, если там все это готово уже.

Цитата:

Так по этой картинке тоже видно, что 4й самый массовый
Не, имеется ввиду, что они уже не поддерживаются и не обновляются, поэтому в канаву их))) как то так рассуждается.

Вадим - спасибо, собстевенно так и делали раньше.

Bletraut 09.11.2016 17:56

Цитата:

2) Как лучше планировать приложение насчет ориентации экрана - предполагается, что есть некое лобби в ПОРТРЕТ, а игра - уже в ЛЕНДСКЕЙП. В связи с этим вопрос, как будет правильно планировать приложение, создать экран для портрет, затем при переходе в игру, сменить ориентацию ( сменяется для всех экранов ), или рисовать графику так,чтобы всегда был лендскейп - но кнопки лобби допустим поворачивать на 90 градусов... кто как делает?
Все проекты реализовывал под одну ориентацию экрана, т.к. когда приходится постоянно поворачивать устройство, чтобы нормально смотреть на приложение - это неудобно.

alatar 09.11.2016 19:41

Цитата:

Сообщение от Zebestov (Сообщение 1197160)
Как раз обычный fullscreen в дескрипторе уберет только верхнюю панель и оставит нижнюю. Только через ANE можно реализовать immersive mode.

Начиная с AIR23 Immersive mode поддерживается из коробки. Правда не без багов, начиная с AIR24 можно будет уже пользоваться.

caseyryan 09.11.2016 19:58

alatar, а что там за баги? Я как раз только скачал бетку 24, хочу попробовать


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

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