在闪动作脚本3,当你需要载入的文字,使用一类称为 URLLoader, ,当你需要载入一个图像(或.swf)使用一类称为'加载程序。' 据我所知,装载.bmp与 URLLoader 是无用的,因为装载。xml入一个装载机-它不会计算。

我在做一类处理中的外部资产可以装载-但是,除了从分裂的目标网址,检查了该文件的扩展,我可不想出一个好方式告诉我们,如果每个网址需要一个 URLLoader 或者装载机。在任何速度,这是可以想象,一个.php URL可能返回的图像或文件-所以没有办法得到的文件名称的决定的正确类型的加载程序类使用。

任何想法,说明如何可靠地探测正确的类的工作在一个URL-通过-URL基础?

有帮助吗?

解决方案

好了,最棘手的问题,是确定类型的目标...

  1. 看看网址是相当简单,但可能并不总是工作...有些人服务的图像php等等...
  2. 你可以做到这样。开始装载,然后看看它是什么...现在再次,有多种可能性...
    1. 负载的数据作为二进制数据...做的时候,看起的顺序...它是PNG(89 50 4E 47 0D 0A 1A 0A)?GIF(47 49 46 38 39 61)?JPEG(FF E0)?SWF("FWS" (滑稽,不是吗?))?什么应是文字或文本的基...在图像的情况下,将其加载到一个 LoaderLoader::loadBytes ...小心SWF虽然...你应该只载graphicals主权财富基金这样的...在任何其他情况下,将其转换为字符串中使用正确的编码(理想的文本数据提供utf8)...然后也许你已经可以猜测,是否可以XML,JSON或URL-encoded变量...尝试分析(使用课程 XML, com.adobe.serialization.JSON, flash.net.URLVariables)...如果一切都失败时,它可能只是文本(可以尝试验,从表面上看...如果你想要一些投入,给我留下了评论)...
    2. HTTP 你自己...打开插座和载荷的来源...你会得到mime types另外...没什么你可以依靠,但是它可以帮助...还有一个 HTTP 在执行情况 AS3 ...一旦你的数据
  3. 通过型手动...纯粹和简单的...你不依靠任何其他人...

还有一个重要的差异之间的程序和URLLoader...加载程序可以负载数据跨领域的,只是沙盒其内容,所以你无法看到它...URLLoader只能载你域,并域明确地允许这种使用跨领域的政策文件...

此外,载的主权财富基金,这不仅有外部的图形资产,但是你真的想要接口,你不应该利用这一点,因为你需要控制LoaderContext等。...

所以,是的...无论你选择的方式,良好的运气...;)

感谢

back2dos

其他提示

Bulkloader 确实根据网址一些猜测,也许采取偷看在源,看看他们是怎么做的?

我个人确切地指定希望如何加载你对象,如果它是图像或XML。既然我已经写了一些队列装载机,我建议你不要只跟踪URL字符串,而是一组用之类的东西,要加载的URL,如果它已经加载,加载优先级和类型的对象。下面是一些psudo代码。

class QueueObject{
  var URLtoLoad:String;
  private var hasLoaded:Boolean = false;
  var isDataObject:Boolean = false;
  var queuePriority:Number = 3; // 
}

现在在你的代码的时候,你要添加的东西到你的队列中。

简单地去

var loadObject:QueueObject = new QueueObject();
loadObject.URLtoLoad = "http://theurl.com/somedata.xml";
loadObject. isDataObject= true;

//现在推入你已经写好,将管理队列的真棒装载机类此。我会派加载对象,参考当前作用域例如,这一点,和你想的时候这个对象加载到调用该函数的名称。

MyStaticLodingClass.addQueueObject(loadObject, this, myFunctionThatYouWillCallWhenDone); 

这上面的类现在应该有一个数组,你可以按优先级排序,让你和项目加载,什么它们的类型是他们的URL。这样,您可以

这可能会帮助或没有。

其他明智的,让事情弄清楚你正试图基于此对象的查找来加载,如BMP并使用正确的加载器是什么类型的对象。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top