Более медленный холст в Firefox

http://jsfiddle.net/2247N/

Я сделал этот jsFiddle, который использует EaselJS из CreateJS для обновления простого холста с определенной частотой кадров 60 кадров в секунду. На сцене просто круг, поэтому я ожидаю, что метка FPS будет показывать постоянные 60 кадров в секунду в каждом браузере. Но вот что я нашел:

Chrome: FPS: 60.82474226801933

IE: FPS: 60.095788862740555

Firefox: FPS: 43.2232327656598

Почему бы не 60FPS в Firefox? Я использую Firefox 29.0.1. Другие вкладки не открывались, кеш очищался, окно было активно, другие приложения не запускались.


person Ko Cour    schedule 24.05.2014    source источник


Ответы (2)


медленная скорость холста, похоже, является тенденцией для Firefox.

На моей машине я получаю твердые 59-60, но для лучшей практики вы можете использовать requestAnimationFrame, как упоминалось 2astalavista в сочетании с настройкой FPS. Для этого в CreateJS просто установите режим синхронизации на RAF_SYNCHED:

createjs.Ticker.timingMode = createjs.Ticker.RAF_SYNCHED;
createjs.Ticker.setFPS(60);

Документация по режимам синхронизации: http://www.createjs.com/tutorials/Animation%20and%20Ticker/

Обновленная скрипта: http://jsfiddle.net/2247N/1/

person kennypu    schedule 24.05.2014
comment
Спасибо за публикацию, я вижу, что это намного лучше, чем стандартный Ticker, я буду использовать его. - person Ko Cour; 31.05.2014

Если у кого-то все еще есть эта проблема, попробуйте удалить тени на всех объектах, потому что Firefox плохо работает, когда пытается отобразить тени на холсте. Подробнее здесь:

person Alex    schedule 24.06.2015