我有2个HTML5小部件,都是用Phaser.js制作的,有图像和音频,由移相器库即时加载。
其中一个小部件(HTML5文件)在没有XAMPP的本地文件系统上工作,而另一个仅在通过XAMPP服务器提供时工作。
我想知道为什么有些HTML5画布文件在没有服务器的情况下工作,而大多数时候我们需要一些服务器用于画布文件。
对我来说这是一个很大的混乱。 Plz帮助。
答案 0 :(得分:2)
有一个非常好的解释,说明为什么你需要getting started page for Phaser.
上的网络服务器它归结为您需要使用Web服务器,因为:
这与用于访问文件的协议有关。当你 通过网络请求您使用http和服务器级别的任何内容 安全性足以确保您只能访问您所指的文件 至。但是当你拖动文件时,它是通过本地文件系统加载的 (技术上是文件://)并且这是非常严格的限制 原因。在file://下没有域的概念,没有服务器级别 安全性,只是一个原始文件系统。
...
您的游戏需要加载资源:图片,音频文件, JSON数据,也许是其他JavaScript文件。并且为了做到这一点 需要不受浏览器安全束缚的影响。它需要 http://访问游戏文件。为此,我们需要一个Web服务器。
从技术上讲,没有一台Phaser应用程序应该在没有Web服务器的情况下运行,很奇怪你有其中一台。
答案 1 :(得分:0)
在预加载代码中设置game.load.crossOrigin = true
,它应该有效。