Показать сообщение отдельно
Старый 15.10.2010, 01:54
Sylon вне форума Посмотреть профиль Отправить личное сообщение для Sylon Найти все сообщения от Sylon
  № 31  
Ответить с цитированием
Sylon

Регистрация: 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.