Задать вопрос
@zugzug

Какие игровые JavaScript фреймворки позволяют подключать файлы ресурсов без обращения к серверу?

Здравствуйте. Подбираю фреймворк для разработки игры на JS. Но возникает одна и та же проблема при разработке: браузер не позволяет коду открывать и вообще работать с файлами локальной ФС.
Скажем, пример с фреймворком Phaser.js ну или Quintus:

Uncaught NetworkError: Failed to execute 'send' on 'XMLHttpRequest': Failed to load 'file:///C:/racemath/data/sprites.json'.


Как же тогда это должно работать на мобильном устройстве без интернета или если я хочу локально отлаживаться и не хочу подымать никакого сервера, предоставляющего файлы джава-скрипту?

А второй вопрос: есть ли какие-то фреймворки, позволяющие таки подключать ресурсы из файлов или же все это упирается в ту самую проблему запрета доступа к файловой системе ОС из браузера? Тогда я вообще не понимаю, как можно сделать портируемую на мобильные устройства игру, которой в теории не нужен никакой доступ в интернет, она самодостаточна со всеми своими внутренними ресурсами и исполняемым кодом ведь..

Заранее спасибо!
  • Вопрос задан
  • 2936 просмотров
Подписаться 2 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 1
deadbyelpy
@deadbyelpy
веб-шмеб
XMLHttpRequest - http протокол, у вас же file://

В хроме есть флаг для разрешения работы по протоколу file://
--allow-file-access-from-files
Запуск с этим флагом позволит работать локально XMLHttpRequest.

- есть ли какие-то фреймворки, позволяющие таки подключать ресурсы из файлов
Большая часть так и делает, запустите приложение в мобильном, и вы получите результат.

Есть еще одна особенность, не всегда, но помогает изменение создания XMLHttpRequest с асинхронного на синхронный. (а это уже и рецепт и для смартфонов, т.к. флагов там нет)

Если ничего из вышесказанного не поможет, запустите приложения с локального сервера для разработки приложения, file:// сменится на http:// и будет ок.
В мобильном приложении тоже можно запустить сервер как хост, но думаю там таких проблем не возникнет, чтобы так заморачиваться.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы