Я разработал приложение с использованием HTML5 и CREATEJS. Я сталкиваюсь с некоторыми проблемами, которые не могу найти решение в течение нескольких недель. Я надеюсь, что кто-то может помочь.
1) В Android Google Chrome возникает проблема, возникающая, когда я просто нажимаю в любом месте экрана: FPS падает, и любая воспроизводимая анимация останавливается на время моего касания. Проблема только в браузере Mobile Chrome, на Android. Его нет ни в других мобильных браузерах, ни в iPhone, ни в Safari, Firefox и т. Д. Я создал простой apk, используя webview, и у него тоже нет проблем. Так что по какой-то причине проблема только в мобильном Android Chrome.
Код оптимизирован максимально. 2 месяца назад мы использовали только 1 холст, но теперь мы используем несколько холстов, и у нас меньше анимаций на каждом холсте, запущенном каждый раз. В то время как в Android Firefox он работает отлично, но в Android Chrome он зависает за один клик.
Я пытался отключить события stagemousedown / up, потому что они запускаются, когда я просто нажимаю в любом месте на сцене. Это не решило проблему, или возможно, что есть некоторые скрытые события stagetouch, которые я не знаю, как отключить.
2) В Android Google Chrome и iPhone6 Safari, когда я нажимаю кнопку SPINигра запускает SPIN, но с задержкой не менее 1,5 секунд, но внутри кода такая задержка не добавляется намеренно. На ПК любой браузер, Android / iOS Mobile Firefox, это отлично работает, без задержек. В iOS Safari iPhone8 снова все работает отлично. Я создал простой apk, используя webview, и у него тоже нет этой проблемы. Так что почему-то проблема только в мобильном Android Chrome. ОБНОВЛЕНИЕ 11/10/19: Проблема 2 была решена путем уменьшения размера холста и удаления всех теневых эффектов, которые занимали много памяти. Вопрос 1 до сих пор остается нерешенным, и у нас не осталось абсолютно никаких идей. Любая помощь приветствуется.
Мой проект завершен на 99%, кроме этих 2 вопросов. Я надеюсь, что смогу их исправить, потому что я действительно не хочу выбрасывать месяцы работы и переключаться на другую библиотеку javascript для игр, у которой нет такой проблемы, как PIXIJS.
Я пыталсяс RAF и RAF_SYNCHED, но по-прежнему никаких улучшений в любом сценарии. Stage.update () требуется для любой анимации. Наличие их на тикере является причиной замедления работы.
Чтобы увидеть проблему в действии, откройте этот URL: http://www.nevergone.biz/DEMO_CODE/index.html
Как проверить: откройте ссылку выше в Android GoogleРежим Chrome Portrait и затем нажмите SPIN. Во время SPIN кликните над игровым холстом или где угодно. Обратите внимание, что все зависает.
Код был извлечен только для тестирования этих проблем, поэтому после нескольких вращений он может зависнуть. Я исправлю это завтра, но я надеюсь, что кто-то может дать некоторые идеи для решения проблемы.