Flash AS3:精简a';通用装载机&x27;
在Flash Action script 3中,当您需要加载文本时,您使用名为Flash AS3:精简a';通用装载机&x27;,flash,actionscript-3,class,detect,loader,Flash,Actionscript 3,Class,Detect,Loader,在Flash Action script 3中,当您需要加载文本时,您使用名为urloader的类,当您需要加载图像(或.swf)时,您使用名为“Loader”的类。据我所知,使用urloader加载.bmp与将.xml加载到加载程序中一样无用-它不会计算 我正在创建一个类来处理要加载的外部资产队列——但除了拆分目标URL以检查文件扩展名外,我无法找到一个好方法来判断每个URL是否需要URLLoader或Loader。无论如何,可以想象,.php URL可能返回图像或文档,因此无法依靠文件名来指
urloader
的类,当您需要加载图像(或.swf)时,您使用名为“Loader”的类。据我所知,使用urloader
加载.bmp与将.xml加载到加载程序中一样无用-它不会计算
我正在创建一个类来处理要加载的外部资产队列——但除了拆分目标URL以检查文件扩展名外,我无法找到一个好方法来判断每个URL是否需要URLLoader
或Loader。无论如何,可以想象,.php URL可能返回图像或文档,因此无法依靠文件名来指定要使用的加载程序类的正确类型
关于如何逐个URL可靠地检测作业的正确类,有什么想法吗?就我个人而言,如果对象是图像或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;
//现在将其放入您编写的awesomeloader类中,该类将管理队列。我将发送要加载的对象、对当前作用域的引用(例如this)以及加载此对象后要调用的函数的名称
MyStaticLodingClass.addQueueObject(loadObject, this, myFunctionThatYouWillCallWhenDone);
上面的类现在应该有一个数组,您可以根据优先级对其进行排序,以便为您提供要加载的项、它们的类型和它们的URL。这样你就可以
这可能有帮助,也可能没有
另一个明智的做法是找出您试图加载的对象的类型,例如BMP,并根据对该对象的查找使用正确的加载程序。根据url进行一些猜测,也许可以查看源代码,看看它们是如何实现的?嗯,最棘手的问题是确定目标的类型
89504e470d0a1a0a
)吗?GIF(474946383961
)?JPEG(FF E0
)?SWF(“FWS”
(很有趣,不是吗?)?其他任何内容都应该是文本或基于文本的。。。对于图像,使用Loader::loadBytes
…将其加载到加载程序中。。。但是要小心SWF。。。您应该只加载这样的图形SWF。。。在任何其他情况下,使用正确的编码将其转换为字符串(理想情况下,文本数据以utf8格式提供)。。。然后你可能已经猜到了,它是XML、JSON还是URL编码的变量。。。尝试解析(使用类XML
,com.adobe.serialization.JSON
,flash.net.urlvaries
)。。。如果一切都失败了,那可能只是文本(你可以试着从表面上验证一下……如果你想得到一些信息,请给我留言)
HTTP
。。。打开套接字并加载源。。。此外,您还将获得mime类型。。。没有什么可以依靠的,但它有助于。。。有一个。。。一旦你有了数据back2dos我的想法大致相同,但我不确定是否要让它们指定目标是文本还是二进制数据。如果目标url来自另一个源,而他们无法控制它,该怎么办?我真正想要的是找到一种方法来自动检测合适的加载程序类型。良好的链接-看起来它试图根据URL自动检测类型,但允许用户传递额外的参数以绕过此默认行为。我喜欢这个主意。是的,就是这样。在接受自动检测之前,我已经考虑过一些关于自动检测的想法。猜测url文件类型在大多数情况下都是正确的。如果不是,让用户覆盖它。尝试自动检测类型会给您的库增加很多复杂性。。。干杯谢谢你的深入回答!我不知道安全沙箱的角度,查看文件的打开顺序的想法很有趣。。。您可能是对的,但是,最终我会更容易地给他们手动指定类型的选项,然后我会尝试为他们处理它。