Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Actionscript 3 as3预加载程序是否停止缓存加载的swf?_Actionscript 3_Caching_Flash_Preloader - Fatal编程技术网

Actionscript 3 as3预加载程序是否停止缓存加载的swf?

Actionscript 3 as3预加载程序是否停止缓存加载的swf?,actionscript-3,caching,flash,preloader,Actionscript 3,Caching,Flash,Preloader,很抱歉,如果其他地方已回答此问题,但我找不到任何匹配项 我有两个主权财富基金;一个预加载程序(我们称之为a)和一些内容(B)。A加载B并将其作为子项添加。一切都运转得很好(你甚至可以看到) 我只有一个小问题。通常,当使用URLLoader类将图像加载到flash中时,我会向URLRequest添加+“?”+new Date().getTime(),以强制flash加载目标的最新版本,换句话说,使用缓存版本停止它。现在,当我尝试对将B添加到A的加载程序执行此操作时,它找不到URL(2035urln

很抱歉,如果其他地方已回答此问题,但我找不到任何匹配项

我有两个主权财富基金;一个预加载程序(我们称之为a)和一些内容(B)。A加载B并将其作为子项添加。一切都运转得很好(你甚至可以看到)

我只有一个小问题。通常,当使用URLLoader类将图像加载到flash中时,我会向URLRequest添加
+“?”+new Date().getTime()
,以强制flash加载目标的最新版本,换句话说,使用缓存版本停止它。现在,当我尝试对将B添加到A的加载程序执行此操作时,它找不到URL(
2035urlnotfound
)。所以我的问题是:我尝试做的是可能的,还是应该采取另一种方法阻止B缓存

以下是预加载程序代码:

package 
{
    import flash.display.StageAlign;
    import flash.display.StageScaleMode;
    import flash.display.Loader;
    import flash.net.URLRequest;
    import flash.events.ProgressEvent;
    import flash.display.MovieClip;
    import flash.events.Event;
    import flash.events.ErrorEvent;
    import flash.net.URLLoader;
    import flash.text.TextField;

    public class claude_loader extends MovieClip
    {
        public var main_movie:Loader = new Loader();
        public var rss_loader:URLLoader;
        private var perc_text:TextField = new TextField();
        public function claude_loader()
        {
            stage.align = StageAlign.TOP_LEFT;
            stage.scaleMode = StageScaleMode.NO_SCALE;
            with (perc_text)
            {
                x = this.stage.stageWidth / 2;
                y = this.stage.stageHeight / 2;
            }
            addChild(perc_text);
            main_movie.load(new URLRequest("claudia_summers.swf"+ "?" + new Date().getTime()));
            main_movie.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, load_progress);
            main_movie.contentLoaderInfo.addEventListener(Event.COMPLETE,on_complete);
        }
        public function load_progress(e:ProgressEvent):void
        {
            var perc:Number = Math.round((e.bytesLoaded/e.bytesTotal)*100);
            perc_text.text = "Loading " + perc + "%";
            if (e.bytesLoaded == e.bytesTotal)
            {
                perc_text.text = "Loading done";
            }
        }
        public function on_complete(e:Event):void
        {
            rss_loader = new URLLoader(new URLRequest("http://news.sulsc.org/feed"));
            rss_loader.addEventListener(Event.COMPLETE,rss_complete);
            perc_text.text = "Loading RSS";
        }
        public function rss_complete(e:Event):void
        {
            MovieClip(main_movie.content).rss_xml = XML(e.target.data);
            addChild(main_movie);
        }

    }
}

不确定如何/为什么,但在
new Date().getTime()
周围添加
String()
,并为主要电影提供一个
ioerrevent
侦听器可以解决此问题。我想我在某个地方有一个bug,因为如果没有这些添加,这肯定会起作用,不是吗?无论如何,谢谢你的帮助

工作代码:


这是正常的做法。尝试将
新日期().getTime()
用括号括起来
()
@Cherniv这会产生同样的错误
跟踪什么(“claudia_summers.swf”+“?”+新日期().getTime())
生成?@itcouldenbeafat它看起来很对。追溯出克劳迪娅·萨默斯.swf?1370625007600我理解你为什么把时间放在那里。我以前也做过,就像这样。这可能不太可能,但请尝试以下
“claudia_summers.swf?”+字符串(new Date().getTime())
package 
{
    import flash.display.StageAlign;
    import flash.display.StageScaleMode;
    import flash.display.Loader;
    import flash.net.URLRequest;
    import flash.events.ProgressEvent;
    import flash.display.MovieClip;
    import flash.events.Event;
    import flash.events.ErrorEvent;
    import flash.net.URLLoader;
    import flash.text.TextField;
    import flash.events.IOErrorEvent;

    public class claude_loader extends MovieClip
    {
        public var main_movie:Loader = new Loader();
        public var rss_loader:URLLoader;
        private var perc_text:TextField = new TextField();
        public function claude_loader()
        {
            stage.align = StageAlign.TOP_LEFT;
            stage.scaleMode = StageScaleMode.NO_SCALE;
            with (perc_text)
            {
                x = this.stage.stageWidth / 2;
                y = this.stage.stageHeight / 2;
                textColor = 0xFFFFFF;
            }
            addChild(perc_text);
            main_movie.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR,catch_error);
            main_movie.load(new URLRequest("claudia_summers.swf" + "?" + String(new Date().getTime())));
            function catch_error(e:IOErrorEvent):void
            {
            main_movie.load(new URLRequest("claudia_summers.swf"));
            perc_text.text = "Failed non-cache load"
            }
            main_movie.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, load_progress);
            main_movie.contentLoaderInfo.addEventListener(Event.COMPLETE,on_complete);
        }
        public function load_progress(e:ProgressEvent):void
        {
            var perc:Number = Math.round((e.bytesLoaded/e.bytesTotal)*100);
            perc_text.text = "Loading " + perc + "%";
            if (e.bytesLoaded == e.bytesTotal)
            {
                perc_text.text = "Loading done";
            }
        }
        public function on_complete(e:Event):void
        {
            rss_loader = new URLLoader(new URLRequest("http://news.sulsc.org/feed"));
            rss_loader.addEventListener(Event.COMPLETE,rss_complete);
            perc_text.text = "Loading RSS";
        }
        public function rss_complete(e:Event):void
        {
            MovieClip(main_movie.content).rss_xml = XML(e.target.data);
            addChild(main_movie);
        }

    }
}