2015-02-12 5 views
0

Привет всем, я использую Flash Develop, и у меня есть несколько клипов Move, добавленных на сцену. У каждого из них свой класс. Теперь я их настроил в своем классе, чтобы переместиться по сцене в линейное движение, используя событие ENTER_FRAME и кодирование таким образом this.x += 10 Однако эти видеоролики имеют анимацию кадра за кадром. Поэтому мне было интересно, добавив this.cacheAsBitmap = true; в объекты Movie clip Class, если это поможет в производительности или поскольку у них есть несколько фреймов, если Adobe AIR придется перерисовывать эти кадры и кэшировать их как растровые изображения, что приводит к дальнейшим проблемам производительности. Из того, что Ive читал this.cacheAsBitmap = true;, это поможет с тем, что сцена не должна будет перерисовывать клип каждого FPS, но имеет некоторые обратные спины, вроде так. «Вы должны использовать cacheAsBitmap только в ситуации, когда ваша векторная графика останется прежней или будет иметь x или свойства y обновлены ».Будет ли CacheAsBitmap работать с объектом Movie Clip с анимацией Frame by Frame?

Любая помощь будет оценена благодаря ребятам.

+0

Думаю, что я нашел ответ с дальнейшими исследованиями из статьи, опубликованной Adobe.com. Включение cacheAsBitmap всегда выгодно даже при изменении масштаба, перекоса, альфы и/или вращения (но не изменения кадров мувиклипа) DisplayObject при публикации для мобильных устройств. – Nathan

+1

Вы делаете много предположений о том, почему ваша игра ходит на мобильном телефоне, это неправильный способ пойти и исправить проблему. Чтобы исправить все, что вам нужно, чтобы ЗНАТЬ, что вызывает проблему, не догадывайтесь об этом. Слишком много объектов на экране, слишком много таймеров/вводных кадров одновременно, с использованием векторной графики и т. Д. Вам нужно начать мониторинг приложения FPS и подключить то, что на экране, к какому-либо падению FPS. – BotMaster

+0

Я понимаю. Я внедрил netStat для отслеживания всего этого. Дело в том, что FPS остается с постоянной скоростью всегда на 26 FPS или ровно на 26 FPS. Одна вещь, которую я замечаю, - это увеличение памяти довольно быстро, но время от времени она возвращается. Я проверил все, что и в разведчике adobe, и ничего необычного не происходит, когда шипы не уменьшаются в FPS. Единственное, что происходит сейчас, когда я просто не могу понять, когда я тестирую игру на своем устройстве Android Mobile, экран замерзает на полсекунды каждые 2 секунды. Я схожу с ума. – Nathan

ответ

0

Вы в основном получили его. cacheAsBitmap не поможет (и это, вероятно, повредит) с кадровой анимацией.

Использование cacheAsBitmap действительно полезно только если вы только меняете свойства x, y.

Использование cacheAsBitmapMatrix (доступно только в AIR) позволит Flash Player применять преобразования (масштаб, вращение, альфа) с кэшированным растровым изображением.

В любом случае, покадровая анимация будет принудительно перерисовывать, что отрицает значение обоих.

В заключение, если вы действительно хотите оптимизировать свою анимацию, вы можете попробовать converting it to a sprite sheet.

+0

Эй, спасибо за ответ. Да, это облом. У меня есть ощущение, что все объекты клипа Move, которые добавляются в мою игру, вызывают отставание. Да, я все еще смотрю на конвертацию на листы спрайтов и воплощение их в игру. Его довольно сложный Ive вникал в скворец и т. Д. Недавно я узнал, что добавление слабых ссылок на моих слушателей событий может также вызвать проблемы при работе с мобильными играми с использованием Flash AS3. Это может привести к тому, что GC будет действовать спорадически, и я думаю, что это заставляет мой экран замирать на полсекунды каждую секунду. – Nathan

+1

Да, высокопроизводительные мобильные приложения занимают много дисциплины, это непростая задача.Рамки, такие как Starling и Feathers, помогают вам заставить вас делать что-то, что может быть хорошо оптимизировано. – Aaron