【问题标题】:Preload Text from an External site从外部站点预加载文本
【发布时间】:2013-09-01 06:52:36
【问题描述】:

我在一个文档中多次使用此操作脚本:

var loader1:URLLoader = new URLLoader(new URLRequest("http:url.com/example.txt"));
loader1.addEventListener(Event.COMPLETE, completeHandler);

function completeHandler(event:Event):void {
var loadedText1:URLLoader = URLLoader(event.target);
Box.text = loadedText1.data;
}

不幸的是,该文本的出现往往存在明显滞后。在调用显示这些文本文件之前,如何让闪存缓存这些文本文件? -- 有点像文本文件的预加载器。

【问题讨论】:

    标签: actionscript-3 url loader


    【解决方案1】:

    这是一个基本的加载队列,它将获取一个 URL 字符串向量,然后按顺序下载并存储其中的文本,然后在完成时通知您。之后,您可以随时访问存储的文本。

    import flash.events.Event;
    import flash.net.URLLoader;
    import flash.net.URLRequest;
    
    var urls:Vector.<String> = new <String>["ex1.txt", "ex2.txt", "ex3.txt"]; //Add all your URLs here
    var loadedText:Vector.<String> = new <String>[]; //Your text will be stored here
    var queuePos:int = 0;
    var textLoader:URLLoader = new URLLoader();
    textLoader.addEventListener(Event.COMPLETE, text_load);
    this.addEventListener("TEXT_LOADED", text_display);
    
    text_load(); //This is called to start the loading process
    
    function text_load(event:Event=null):void {
        if (queuePos > 0) loadedText.push(textLoader.data); //Store the last received text
    
        if (queuePos >= urls.length) { //Stop the queue if all complete
            textLoader.removeEventListener(Event.COMPLETE, text_load);
            dispatchEvent(new Event("TEXT_LOADED"));
            return;
        }
    
        textLoader.load(new URLRequest(urls[queuePos])); //Load the next URL
        queuePos++;
    }
    
    function text_display(event:Event):void { //Called once all text has been loaded
        Box.text = loadedText[0]; //Adds text from the 1st URL to the Box TextField
        Box2.text = loadedText[1]; //Adds text from the 2nd URL, etc.
    }
    

    因此,这首先允许您一次完成所有外部加载。在你让它运行一次之后,你可以随时从loadedText 向量中获取任何存储的文本sn-ps。例如Box.text = loadedText[0];urls 向量中的第一个 URL 加载文本,以此类推。

    附带说明一下,将您的外部内容包含在单个 XMLJSON 文件中可以让生活更轻松,这两种文件都在 Flash 中得到很好的支持。这使您可以将所需的文本 sn-ps 划分为一个文件中的单独变量,从而减少所需的加载请求数量。当然,您可能无法控制您正在检索的特定内容,在这种情况下它不会适用。但如果您是内容作者,我建议您查看这些内容。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-02-06
      • 1970-01-01
      • 2017-05-13
      • 1970-01-01
      • 2019-07-02
      • 1970-01-01
      相关资源
      最近更新 更多