|
|
|||||
Регистрация: Nov 2009
Сообщений: 16
|
Очередной раз пришлось заняться плавностью движения. Раньше такого подвоха не было (или не замечал - ?..). Движение собирается из предварительно отрендереных битмепов, каждый кадр в своей. При этом, пока загрузка проца сверхнизкая - менее 5% в общей сложности по системе, всё с виду нормально. Однако при загрузке 10% от других флешек на той-же странице начинается лажа.
Попробовал контролировать период событий, по которым сменяются кадры (пробовал таймер или Event.ENTER_FRAME - без разницы) Период мерял по (new Date()).milliseconds Результат удручающий. Период прерываний меняется с шагом в 16мс, т.е. если установлено 25мс в таймере (или 40Hz по ENTER_FRAME) - фактически будет 32мс. Это при отсутствии загрузки проца. А если загрузка не нулевая, то ~ каждое десятое прерывание будет либо через 48, либо через 16мс. Число прерываний в среднем за секунду стабильно, но в динамике дрожит в два раза. В результате все старания с субпиксельной фильтрацией превращаются в мартышкин труд. Может кто с таким сталкивался? p.s. Плеер 10.0-32-18, WinXP. Флешка примитивная, сделана в AS3 на IDE-4.1, сама проц не грузит (меняет по циклу 24шт. готовых встроенных .png - на фоне общего jpg-а 100x100px). В другой флешке эту проблему решил, расчитывая коотринаты не по таймеру, по фактическому времени (new Date()).milliseconds - там можно было посто двигать картинки... А что делать с готовыми кадрами? Рендерить с шагом в 16мс и потом отображать с пропусками - слишком накладно по объёму. Но по другому сделать красиво у меня пока не вышло... В жаваскрипте в любом браузере, кроме IE и то лучше работает... Последний раз редактировалось Sylon; 15.10.2010 в 02:06. |
|
|||||
Возможно немного оффтоп, но все же.
Делал простую реализацию пакмена. То есть сложной анимации никакой нет. Нагрузка почти нулевая. Немного экспериментировал с фреймрейтом. Движение делал с помощью ентерфрейма, корректируя скорость при добавлении в список отображения, основываясь на текущей частоте кадров. В IDE все выглядит примерно одинаково и правильно и с 30 и с 120 кадросеков. Но в загрузке через браузер при 30-40 fps все ок, а вот при 120 все движения очень сильно замедляются. Как будто в эти самые 3-4 раза. Как будто коректировка скорости посчиталась по указанным 120 fps, но при этом реально отрисовывается 30-40 кадров в секунду. Это не критично, тк и при 30 fps все отлично, но совершенно неясно откуда у проблемы ноги растут. Это интересно. Может в браузере как-то ограничивается искуственно fps? |
|
|||||
Проверил с помощью StatisticFrame.
При запуске не из IDE всегда выдает не более 60 fps. Так что 120-400 вдвойне бесполезные цифры =) |
|
|||||
Десктопный плеер тоже дает ограничение.
|
|
|||||
.
|
фпс - один байт. соответственно, вы выставили 300 = 012Ch => 2Ch = 44
|
|
|||||
Регистрация: Feb 2009
Сообщений: 1,195
|
Обычно два варианта ограничения - 100 кадров (отдельный плеер, Firefox, может что-то ещё), 66 кадров (IE).
|
|
|||||
Регистрация: Apr 2010
Адрес: Earth
Сообщений: 1,897
|
у кого получится в плеере 10.1 (любом) получить больше 60 фпс - отпишитесь.
__________________
Загружаем картинки, минуя ошибки безопасности |
|
|||||
Регистрация: Mar 2009
Сообщений: 357
|
а как это реализовать? можно немного кода?
|
Часовой пояс GMT +4, время: 05:49. |
|
« Предыдущая тема | Следующая тема » |
Опции темы | |
Опции просмотра | |
|
|