![]() |
|
||||||||||
|
|||||
|
Регистрация: Jun 2008
Сообщений: 126
|
Flash тормозит в браузерах. Проверял на последних версиях IE, Firefox. Версия FlashPlayer последняя релизная.
Сравните как гладко скользит квадрат в standalone-плеере и как дрожит-подергивается в браузере. Иногда в браузере тоже скользит гладко, нужно подождать секунд 10. [Вложение #31074 - не найдено] package { import flash.display.Bitmap; import flash.display.BitmapData; import flash.display.Sprite; import flash.events.Event; public class Main extends Sprite { private var _bitmap:Bitmap; public function Main():void { _bitmap = new Bitmap(new BitmapData(100, 100, false, 0)); _bitmap.y = 100; addChild(_bitmap); addEventListener(Event.ENTER_FRAME, enterFrame); } private function enterFrame(e:Event):void { _bitmap.x++; if (_bitmap.x > 500) _bitmap.x = -100; } } } Тестировал на 4-рех компах. В диспетчере задач процессор нагружен на ~4%, редко поднимается до 20%. В Scout память не растет (занимает ~130Мб), Garbage Collector не запускается. Движок flashpunk, вся графика рисуется на экран блиттингом. Задано 60fps. Что делать? |
|
|||||
|
[+1 22.07.14]
[+4 12.08.14] [+1 09.02.15] Регистрация: May 2014
Сообщений: 182
|
У меня не показывает...
А вариант только один - анимировать все движения. Да и то они будут дергаться. |
|
|||||
|
буду краток
модератор форума
Регистрация: Sep 2003
Адрес: Ближайшее Замкадье
Сообщений: 3,110
Записей в блоге: 28
|
во-первых, никогда не делайте привязку к фреймрейту. Делайте всегда по времени.
во-вторых, поиграйте со скоростью - чем выше скорость тем менее заметны перерисовки.
__________________
Отряд Котовскага |
|
|||||
|
.
|
Присоединяюсь к Котяриной "во-первых". А после этого можно скрасть неравномерность движения с помощью блюр-фильтра или подобной механики. Но это уже от лукавого, по моему мнению.
Я мастрячил года три назад плавный скролл для игрушки типа "Contra", с оригинальными изображениями. То, что я увидел мне настолько не понравилось, что я решил отложить это до лучших времен. Времена наступили, но несколько в другом плане. У флеша появился Stage3D. Но и здесь тебя поджидает масса подвохов. Может лучше на Unity перейти сразу? |
|
|||||
|
Регистрация: Jun 2008
Сообщений: 126
|
Спасибо за помощь, но по времени тот же самый эффект. В standalone гладко, в браузерах дрожит.
Фильтры попробую, если не получится по-другому решить. package { import flash.display.Bitmap; import flash.display.BitmapData; import flash.display.Sprite; import flash.events.Event; import flash.utils.getTimer; public class Main extends Sprite { private var _bitmap:Bitmap; private var _timeInPreviousFrame:Number; public function Main():void { _bitmap = new Bitmap(new BitmapData(100, 100, false, 0)); _bitmap.y = 100; addChild(_bitmap); addEventListener(Event.ENTER_FRAME, enterFrame); } private function enterFrame(e:Event):void { var elapsed:Number = getTimer() - _timeInPreviousFrame; _timeInPreviousFrame = getTimer(); _bitmap.x += elapsed / 10; if (_bitmap.x > 500) _bitmap.x = -100; } } } |
|
|||||
|
Давно перешел на Starling, плавность идеальная, не хуже чем в Unity.
|
|
|||||
|
Регистрация: Jun 2008
Сообщений: 126
|
Оставил один getTimer(). Тестирую под Firefox и IE. Все равно квадрат дрожит и дергается.
Попробовал задать PixelSnapping.NEVER — не помогает. package { import flash.display.Bitmap; import flash.display.BitmapData; import flash.display.PixelSnapping; import flash.display.Sprite; import flash.events.Event; import flash.utils.getTimer; public class Main extends Sprite { private var _bitmap:Bitmap; private var _timeInPreviousFrame:Number; public function Main():void { _bitmap = new Bitmap(new BitmapData(100, 100, false, 0), PixelSnapping.NEVER); _bitmap.y = 100; addChild(_bitmap); addEventListener(Event.ENTER_FRAME, enterFrame); } private function enterFrame(e:Event):void { var getTimerTemp:Number = getTimer(); var elapsed:Number = getTimerTemp - _timeInPreviousFrame; _timeInPreviousFrame = getTimerTemp; _bitmap.x += elapsed / 10; if (_bitmap.x > 500) _bitmap.x = -100; } } } Цитата:
|
![]() |
![]() |
Часовой пояс GMT +4, время: 01:04. |
|
|
« Предыдущая тема | Следующая тема » |
|
|