AS3预加载器缓存问题?

时间:2011-03-04 16:21:42

标签: actionscript-3 preloader

所以下面的代码是Lee的预加载器的实现,它在第一次加载时运行良好但在浏览器加载缓存文件时会发疯,从0%随机跳到100%

我试过的事情无济于事:

  • 关闭gzip压缩,我不认为它在
  • 使用ENTER_FRAME代替进度 并完成

        l.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, loop);
        l.contentLoaderInfo.addEventListener(Event.COMPLETE, done);
        l.load(new URLRequest("http://www.foo.com/foo.swf"));
    
        function loop(e:ProgressEvent):void
        {
            perc = Math.round(e.bytesLoaded / e.bytesTotal * 100);
            lt.text = String(perc);
            if (perc >= 100)
                l.contentLoaderInfo.removeEventListener(ProgressEvent.PROGRESS, loop);
        }
    
        function done(e:Event):void
        {
            l.contentLoaderInfo.removeEventListener(Event.COMPLETE, done);
            addChild(l);
        }
    

我不相信我会加载它多次:

public function Main():void 
        {
            if (stage) init();
            else addEventListener(Event.ADDED_TO_STAGE, init);  
        }

        private function init(e:Event = null):void 
        {
            removeEventListener(Event.ADDED_TO_STAGE, init);
            Security.allowDomain("http://www.foo.com");
            preLoader();
        }

1 个答案:

答案 0 :(得分:0)

我发现问题的发生是因为文件托管在插件域上。

要解决此问题,我更改了网址以引用主域名:

来自

l.load(new URLRequest("http://www.foo.com/foo.swf"))

l.load(new URLRequest("http://foo.maindomain.com/foo.swf"))

并添加

Security.allowDomain("http://foo.maindomain.com");