![]() |
Что следует убрать из EnterFrame, а что следует оставить?
Посмотрев свою флешку в Adobe Scout я увидел, что основная нагрузка лежит на EnterFrame. Опытные ребята, подскажите пожалуйста, что следует убрать из EnterFrame, а что следует оставить? Например обновление текстовых полей, циклы, и т.п.
Со временем я заметил, что почти все что находится в EnterFrame (различные обновления данных и визульной части) можно перенести в отдельные функции и вызывать по необходимости, например после клика, единоразово, экономя тем самым производительность, наверное. Насколько я правильно сообразил на счет этого? Это будет считаться оптимизацией? Нужно ли стремится всегда убирать все лишнее из EnterFrame, и по возможности выключать его когда он не нужен? (для еще большей оптимизации :D) |
Да .
|
Ну вопрос конечно странноватый, это же чисто здравый смысл. Зачем постоянно выполнять код, который нужно выполнить только один раз? Естественно не нужно это держать enterFrame.
|
век живи - век учись :D
|
В тему, установил скаут, поглядел, на код приходиться 2-5% нагрузки - остальное графика, у меня ток спрайты и мувики, вообще ничего серьёзного, но ест прилично и иногда фпс падает ниже 60. Так вот вопрос, начал читать про Bitmap - это может помочь? у меня только один неподвижный спрайт - это задний план, да и то он 1600/1050.
|
|
Дык у меня нет векторной графики, всё в png
|
Попробуйте поюзать cacheAsBitmap
|
Цитата:
|
Цитата:
|
вопросик, мож я не совсем оптимально делаю, я создаю класс, который расширяет спрайт и потом через new набиваю пул, я как-то читал, что есть вариант, создать лишь один спрайт и сделать его копии - как-то так и это позволит с экономить ресурсы
|
Вложений: 1
вот график, мож я его не правильно понимаю
|
А сколько спрайтов вы создаёте? И они все на стейдже?
|
через new около 50 bullet(на сцене около 20-25 постоянно и если сам начинаешь быстро жать на "огонь" дойдёт до 50) и около 15 одинаковых кораблей, 8 из них на сцене + у каждого корабля есть анимация двигателя (по 2 штуки на каждого(последовательность рисунков png)) - для всего этого есть свой отдельный пул.
|
Вообщем:
1. Тестировать лучше в релизном плеере с релизной компиляцией. 2. Проседания фпс ниже 60, на обычном дисплей листе - это не так уж и плохо. Не гпу же. Тут стоит озаботиться, если фпс ниже 25-30 будет. 3. В качестве облегчения нагрузки, нужно отключить интерактивность у всех дисплей объектов, не участвующих в взаимодействий с пользователем. (Свойства mouseEnabled и mouseChildren) Лучше всего - выставить эти свойства в false у главного контейнера - содержащего корабли, пули, планеты. То есть тех, кому не нужны мышиные события и вообще события ввода. 4. Иметь 1-3 enterFrame на всю игру, не нужно подписывать каждый спрайт на это событие. 5. Анимацию на основе пнг картинок можно сделать более разряженной. (не 1 а 3-5 кадров на картинку) Если результаты всё равно не устраивают, стоит посмотреть в сторону какого нибудь графического движка. Хотя на мой взгляд, для флеш игры с обычным рендером, 30 фпс - это вполне хорошо, даже отлично. Более того, я сомневаюсь, что тут удастся добиться 60 фпс при сколь нибудь активном действии на экране. Для обычного рендера 30 фпс вполне хватит. |
| Часовой пояс GMT +4, время: 11:47. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.