2014-01-31 1 views
0

Итак, у меня есть приложение Air, встроенное в Flash CS 5.5 (не используя Starling или Stage3D). В .fla размер сцены установлен на 1600x900.Запуск приложения Flash Air в нескольких разрешениях для повышения производительности

Я обнаружил, что приложение имеет неприемлемую частоту кадров при запуске окон, но если я разрешаю ему работать в полноэкранном режиме и указывать область прямоугольника 1600x900 для использования в stage.fullScreenSourceRect, приложение работает как масляный полноэкранный режим. Действительно, разница - это ночь & день, которая меня немного озадачила.

Итак, я думаю, мой вопрос: что я могу сделать, чтобы получить гладкие результаты полноэкранного режима для оконного режима?

Моя первая мысль состояла в том, чтобы попытаться скомпоновать какую-либо схему, в которой я изменяю разрешение приложения во время выполнения, чтобы я мог запускать приложение в более низком разрешении при установке окна, но я не уверен, что это возможно с помощью Flash (может 't change stage.stageWidth во время выполнения, я думаю)

Есть ли какие-то обманки, которые я должен делать с NativeWindow или что-то в этом роде? Возможно, какой-то файл Air config? Я бы сказал, что я знаю Flash достаточно хорошо, но я мало что знаю о воздушной стороне вещей, так что, возможно, я не замечаю ничего очевидного.

Любая помощь или совет оцениваются!

Редактировать: по неприемлемой частоте кадров, я говорю 9fps в окне по сравнению с 35fps в полноэкранном режиме. это похоже на то, что вы переключаете переключатель, и он просто волшебным образом кажется исправленным, когда он находится в полноэкранном режиме.

+0

Почему этот вопрос получил отрицательную оценку? плохой вопрос? это законная проблема с вспышкой, о которой я не знаю ответа ... – robochase6000

+0

Я придумал обходной путь для этого. Идея состоит в том, чтобы опубликовать ваш swf при разных разрешениях, а затем в «оболочном приложении/swf» загрузите правильный swf для вашего разрешения в свой собственный экземпляр NativeWindow. Затем установите свойство bounds экземпляра NativeWindow, чтобы оно соответствовало разрешению только что загруженного swf. Кажется немного неуклюжим, но он делает то, что я хочу :) – robochase6000

ответ

0

Если вы хотите, чтобы имитировать fullScreenSourceRect для оконного режима вы можете просто написать строку:

stage.scrollRect = new Rectangle(x, y, width, height); 

Это помогло бы производительность ничего за пределами предоставленной области не делает;

+0

не знал о scrollRect, но 1. это свойство DisplayObject, а не Stage. 2. изменив его на this.scrollRect, тогда как «this» - это мой класс Document, он, похоже, не помогает производительности при окнах. – robochase6000

+0

1) Этап расширяет DisplayObject, поэтому он разделяет свойство scrollRect. 2) Затем вы должны профилировать свое приложение и посмотреть, что занимает столько CPU. –

+0

взял пик в Adobe Scout. самое большое различие, которое я вижу, похоже на полноэкранный режим, для копирования на экран требуется 5 мс («Копирование на экран» в Adobe Scout. Окончено, на печать накладывается 23 мс. – robochase6000

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