我试图创建一个SWF游戏。它在我的旧主机和域上完美运行。但是当我将我的游戏移动到新的主机和域时,它没有显示加载进度在Firefox和谷歌浏览器上,它停止使用'加载无限%'。
这是我的游戏:http://afcvn.myarsenal.net/afcvn/swf_games/game_matching.swf
这是我的加载代码,我在第2帧导出类:
stop();
this.addEventListener(Event.ENTER_FRAME, loading);
function loading(e:Event):void {
var total:Number = this.stage.loaderInfo.bytesTotal;
var loaded:Number = this.stage.loaderInfo.bytesLoaded;
progressBar.scaleX = loaded/total;
loader_info.text = "Loading "+Math.floor((loaded/total)*100)+ "%";
if (total == loaded) {
play();
this.removeEventListener(Event.ENTER_FRAME, loading);
}
}
我添加了一个crossdomain.xml:http://afcvn.myarsenal.net/crossdomain.xml
有人可以帮忙吗?高度赞赏! :)
答案 0 :(得分:3)
看看my answer to this question。 (关闭swf文件上的服务器压缩)
尽量避免被零除(Flash允许但结果是Infinity)。如果bytesLoaded == 0,您的加载代码将立即停止,因为bytesTotal == 0也是如此。
答案 1 :(得分:1)
您的加载SWF请求中的标题似乎缺少Content-Length
,因此Flash无法计算您的百分比。我不确定您的瑞士法郎或服务器上是否有问题,但现在您知道在哪里看。
答案 2 :(得分:0)
删除所有文件类型的压缩可能会影响整个页面的优化。
只需禁用.htaccess文件上的.swf压缩:
SetEnvIfNoCase Request_URI .swf $ no-gzip dont-vary
答案 3 :(得分:0)
frankhermes答案是肯定的,这可以通过关闭swf文件上的服务器压缩来解决。
不知道如何做到这一点是我的下一个问题所以我研究并提出了以下解决方案。
要在Apache服务器上禁用仅SWF的gzip压缩,请将其添加到.htaccess文件中:
<IfModule mod_headers.c>
<FilesMatch "\.swf$">
RewriteRule ^(.*)$ $1 [NS,E=no-gzip:1,E=dont-vary:1]
</FilesMatch>
</IfModule>