![]() |
|
||||||||||
|
|||||
|
Регистрация: Oct 2012
Сообщений: 35
|
доброго времени суток.
Приложение под iOS, ориентированно на 4 разрешения экрана и есть 4 набора картинок (iPhone/iPhoneRetina/iPad/iPadRetina). Читал на форуме старлинг посты на эту тему, но финального решения не нашел. Через AssenManager грузится графика с папок 1x, 2x, 4x (2x под iPad и iPhoneRetina). Но пропорции у экранов разные, поэтому в зависимости от размера сцены, в одном из случаев по краям остаются черные полосы. Как это делается по человечески? может быть есть готовые примеры? |
|
|||||
|
Главный класс:
public function Startup() { addEventListener(flash.events.Event.ADDED_TO_STAGE, init); } private function init(e:flash.events.Event):void { removeEventListener(flash.events.Event.ADDED_TO_STAGE, init); stage.scaleMode = StageScaleMode.NO_SCALE; stage.align = StageAlign.TOP_LEFT; iOS = Capabilities.manufacturer.indexOf("iOS") != -1; mouseEnabled = mouseChildren = false; Starling.handleLostContext = !iOS; Starling.multitouchEnabled = true; appScaleFactor = viewPort.width < 1025 ? 1 : 2; // тут на ваш выбор starling = new Starling(Main, stage, viewPort); starling.simulateMultitouch = false; starling.enableErrorChecking = false; starling.addEventListener(starling.events.Event.ROOT_CREATED, function onRootCreated():void { var app:Main = starling.root as Main ; app.start(assets); starling.start(); }); this.stage.addEventListener(flash.events.Event.RESIZE, stageResized, false, int.MAX_VALUE, true); NativeApplication.nativeApplication.addEventListener( flash.events.Event.ACTIVATE, function (e:*):void { starling.start(); }); NativeApplication.nativeApplication.addEventListener( flash.events.Event.DEACTIVATE, function (e:*):void { starling.stop(); }); } private function stageResized(e:flash.events.Event):void { starling.stage.stageWidth = this.stage.stageWidth; starling.stage.stageHeight = this.stage.stageHeight; var viewPort:Rectangle = RectangleUtil.fit( new Rectangle(0, 0, stage.stageWidth, stage.stageHeight), new Rectangle(0, 0, stage.fullScreenWidth, stage.fullScreenHeight), ScaleMode.SHOW_ALL); Starling.current.viewPort = viewPort; if (!textureLoaded){ var appDir:File = File.applicationDirectory; assets = new AssetManager(); assets.verbose = Capabilities.isDebugger; assets.enqueue( appDir.resolvePath(formatString("assets/textures/{0}x", appScaleFactor)), appDir.resolvePath(formatString("assets/fonts", appScaleFactor)) ); textureLoaded = true; } }
__________________
In Code We Trust |
|
|||||
|
Регистрация: Oct 2012
Сообщений: 35
|
идею с ресайзом уловил, полагаю поможет, благодарю
Но здесь грузится лишь 2 набора графики, а мне нужно 4 (на крайний случай 3) : 1х iPhone 2x iPad/iPhoneRetina 4x iPadRetina switch-case проверять размер сцены и давать нужный коэфициент вариант? |
|
|||||
|
Конечно
Добавлено через 7 минут Не планируете вынести графику на сервер и загружать только нужную? На хабре на днях статья была - уменьшение размера приложения с 20 до 5 мегабайт увеличивает установки в разы. Вот не знаю как лучше сделать: грузить атласы по одному или zip-архивом. Ну и какой хостинг для этих целей использовать.
__________________
In Code We Trust |
|
|||||
|
Регистрация: Oct 2012
Сообщений: 35
|
в планах такого нету, да и опыта работы с серверными технологиями пока что тоже нету.
|
|
|||||
|
Регистрация: Oct 2012
Сообщений: 35
|
ну если так, то не сложно )) проект в любом случае пишу не для себя, и важно седлать всё как можно быстрей, а поиск хостинга - это дополнительная трата времени (насчет денег не знаю).
Хотя соглашаюсь, идея хорошая, и будь у меня мотивация - то реализовал бы. |
|
|||||
|
Lorem ipsum
|
Название темы не отражает сути вопроса.
__________________
Поймай яблоко 2! |
![]() |
![]() |
Часовой пояс GMT +4, время: 00:26. |
|
|
« Предыдущая тема | Следующая тема » |
|
|