我在下面使用这个预加载器 AS3 代码。它不工作!当我在 Flash CS5.5 上执行时工作正常,但不能在线。
var l:Loader = new Loader();
l.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, loop);
l.contentLoaderInfo.addEventListener(Event.COMPLETE, done);
l.load(new URLRequest("movie.swf"));
function loop(e:ProgressEvent):void
{
var perc:Number = e.bytesLoaded / e.bytesTotal;
percent.text = Math.ceil(perc*100).toString();
}
function done(e:Event):void
{
removeChildAt(0);
percent = null;
addChild(l);
}
我找到了问题和解决方案!
问题是因为我的在线服务器在 Apache 上为 mod_deflate 选项启用了 gzip。
mod_deflate 模块提供了 DEFLATE 输出过滤器,它允许您的服务器的输出在通过网络发送到客户端之前被压缩。
所以movie.swf是用gzip压缩的。那是个大问题。
解决方案:
好吧,只需在服务器根文件夹的 .htaccess 文件中创建或放入一些代码。
创建一个文件(或将此代码放入).htaccess
SetEnv no-gzip dont-vary
# Don't compress images/flash
SetEnvIfNoCase Request_URI \
\.(?:gif|jpe?g|png|swf|flv)$ no-gzip dont-vary
玩得开心:P