Просмотр полной версии : При перемещении мыши тормозит флэшка
Deimos747
17.08.2011, 15:21
Здравствуйте! У меня такая проблема: при перемещении мыши по области флэшки, падают fps, от всех лишних событий, вроде бы, отписался. Может кто-то сталкивался с такой проблемой.
Вот сама игра: http://vk.com/app2292679
Жду любых советов по снижению нагрузки)
Если у тебя вся графика в jpg или в png то переведи все в вектор - будет летать игрушка
Если у тебя вся графика в jpg или в png то переведи все в вектор - будет летать игрушка
Откуда такие выводы?
Deimos747
17.08.2011, 15:31
Графика вся в PNG, разве это даст заметное ускорение?
Наоборот. FP тратит намного больше ресурсов для отрисовки вектора, чем растра.
для всех объектов не требующих реагирования на мышь поставьте mouseEnabled = mouseChildren = false
Deimos747
17.08.2011, 15:46
derhab, спасибо! попробую)
carrotoff
17.08.2011, 17:50
Если у тебя вся графика в jpg или в png то переведи все в вектор - будет летать игрушка
Помнится, приходилось кэшировать все векторные объекты, которые убивали полностью фпс.
Хоть расход памяти заметно увеличился, но нагрузка на процессор упала ОЧЕНЬ заметно. И всё полетело, как надо. Так что это более чем сомнительная рекомендация.
А по сути вопроса: нужно выявить сначала слабое место, а потом искать способ оптимизации.
Deimos747
17.08.2011, 17:55
А по сути вопроса: нужно выявить сначала слабое место, а потом искать способ оптимизации.
Слабые места я сейчас и ищу, вот и спрашиваю у более опытных совета, где искать)
carrotoff
17.08.2011, 17:58
Если сильные тормоза - то, предполагаю, много вектора, анимированного
tsarapkabel
17.08.2011, 18:11
для всех объектов не требующих реагирования на мышь поставьте mouseEnabled = mouseChildren = false
Задам глупый вопрос. Если поставить мувику mouseChildren = false, надо ли потом его ребёнку делать mouseEnabled = false, или операции эквивалентны?
нет, не надо, эквивалентны
arkadattx
17.08.2011, 18:38
Большое количество покадровой вложенной анимации может снизить fps
Deimos747
17.08.2011, 19:39
Если у объекта Sprite свойство visible = false то он учитывается при построении отображения кадра?
нет, объект не рендерится, производятся только вычисления связанные с объектом
Aquahawk
17.08.2011, 20:32
А вы трейсов не делаете на каждый mouseMove Я такое наблюдал когда трейсы идут. Соберите в релизе и выставьте галочку omit trace actions(если мы в Flash IDE) возможно проблема в этом.
Deimos747
17.08.2011, 22:28
А вы трейсов не делаете на каждый mouseMove Я такое наблюдал когда трейсы идут. Соберите в релизе и выставьте галочку omit trace actions(если мы в Flash IDE) возможно проблема в этом.
Нет, там вообще подпись на события наведения только на подсвечиваемые объекты, остальные подписаны только на клики. А тормозит именно при перемещении.
у вас тайлы карты это отдельные дисплей объекты, подписанные на мышиные события?
Deimos747
17.08.2011, 22:55
у вас тайлы карты это отдельные дисплей объекты, подписанные на мышиные события?
Да! Реализовано отдельными спрайтами
если есть возможность, то в качестве карты местности лучше использовать растр в отдельном спрайте, у которого отключены мышиные события
а тайловая сетка это отдельный программный объект, то есть по какому именно тайлу был произведен клик определяется простым вычислением.
Deimos747
17.08.2011, 23:05
Весь растр в спрайтах -за пределами экрана им прописываются значения visible=false. А ниже слой со спрайтами "уловителями событий" - если я объединю его, будет быстрее? Боюсь, что отслеживание за выделяемыми объектами съест преимущество
У вас огромное количество объектов реагирует на мышь. Если сделать этим объектам mouseEnabled = mouseChildren = false - тормоза уйдут. Как это реализовать в контексте вашей архитектуры, это другой вопрос, возможно придется что-то перестроить.
Deimos747
17.08.2011, 23:36
Большое спасибо за разъяснения=) Попробую, если будет прирост, то переделаю)
за пределами экрана им прописываются значения visible=false
лучше удаляйте
carrotoff
18.08.2011, 10:30
Весь растр в спрайтах -за пределами экрана им прописываются значения visible=false
За экраном не стоит ничего держать, на эти объекты тратятся ресурсы
Deimos747
18.08.2011, 13:53
Предметы за экраном проще хранить, чем заново подгружать, больше памяти расходуется, но работает быстрее. А вот то что их совсем удалять из отображения, я не подумал, спасибо за совет)
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.