2013-10-07 4 views
0

В моей флэш-AS3 приложения, я используюбыстрый способ сделать периферийный ОБТРАВОЧНЫЙ

stage.scaleMode = StageScaleMode.SHOW_ALL; 

потому, что графически я хочу, чтобы быть работоспособным вне коробки во всех видах различных мобильных устройств. Он работает, потому что он «наилучшим образом подходит» к экрану устройства и просто «добавляет» черные границы вокруг него.

Например, в 4: 3 экранах он заполняет весь экран красиво: enter image description here

в то время как в 16: 9 экранов я получаю черные полосы слева и справа: enter image description here

Теперь здесь проблема: когда я перемещаю экранный объект «вне экрана», я не хочу, чтобы он отображался внутри этих черных границ.

Вопрос в следующем: какой самый быстрый способ «закрепить» мое приложение - учитывая, что я нацелен на мобильные устройства? У меня есть ощущение, что

stage.scrollRect 

будет взрывать производительность мудрым ...

EDIT: Я использую <renderMode>gpu</renderMode>

ответ

1

scrollRect на самом деле велик, и даже делает ваше приложение работать лучше , , если вы используете состав GPU (в этом случае он действительно ухудшает производительность). Поэтому я предлагаю вам сначала попробовать.

Но хорошее альтернативное решение (как сумасшедшее, как это звучит) состоит в том, чтобы просто иметь огромный прямоугольник с отверстием на нем поверх всего, как последние дети вашей сцены. Поэтому предположим, что ваша сцена 640x480. У вас будет черный прямоугольник поверх всего с размерами, скажем, 1640x1480, и с отверстием в 640x480 пикселей внутри, чтобы ваш контент был видимым. Это дешевый способ имитировать маску, не заставляя рекомпозицию пикселей внутри этой области.

+0

Я использую gpu, поэтому, полагаю, вы рекомендуете идти по прямоугольному пути? И что было бы лучше, если бы прямоугольник был огромным растровым изображением или вместо него использовать векторную графику ?! –

+0

Да, если вы используете это, то 'scrollRect' действительно не работает. И растровое изображение будет * обычно * лучшим, но это будет большой, и потенциально может использовать слишком много памяти. Сначала я бы попробовал фигуру, и если есть какой-то удар по производительности, используйте уменьшенную растровую карту (например, 164x148 с отверстием 64x48), увеличенную (10x в этом случае) с сглаживанием. Рендеринг будет таким же быстрым, но использование памяти будет намного меньше. – zeh

Смежные вопросы