AS3:精简有'普遍的加载程序'
-
12-09-2019 - |
题
在闪动作脚本3,当你需要载入的文字,使用一类称为 URLLoader
, ,当你需要载入一个图像(或.swf)使用一类称为'加载程序。' 据我所知,装载.bmp与 URLLoader
是无用的,因为装载。xml入一个装载机-它不会计算。
我在做一类处理中的外部资产可以装载-但是,除了从分裂的目标网址,检查了该文件的扩展,我可不想出一个好方式告诉我们,如果每个网址需要一个 URLLoader
或者装载机。在任何速度,这是可以想象,一个.php URL可能返回的图像或文件-所以没有办法得到的文件名称的决定的正确类型的加载程序类使用。
任何想法,说明如何可靠地探测正确的类的工作在一个URL-通过-URL基础?
解决方案
好了,最棘手的问题,是确定类型的目标...
- 看看网址是相当简单,但可能并不总是工作...有些人服务的图像php等等...
- 你可以做到这样。开始装载,然后看看它是什么...现在再次,有多种可能性...
- 负载的数据作为二进制数据...做的时候,看起的顺序...它是PNG(
89 50 4E 47 0D 0A 1A 0A
)?GIF(47 49 46 38 39 61
)?JPEG(FF E0
)?SWF("FWS"
(滑稽,不是吗?))?什么应是文字或文本的基...在图像的情况下,将其加载到一个Loader
与Loader::loadBytes
...小心SWF虽然...你应该只载graphicals主权财富基金这样的...在任何其他情况下,将其转换为字符串中使用正确的编码(理想的文本数据提供utf8)...然后也许你已经可以猜测,是否可以XML,JSON或URL-encoded变量...尝试分析(使用课程XML
,com.adobe.serialization.JSON
,flash.net.URLVariables
)...如果一切都失败时,它可能只是文本(可以尝试验,从表面上看...如果你想要一些投入,给我留下了评论)... - 做
HTTP
你自己...打开插座和载荷的来源...你会得到mime types另外...没什么你可以依靠,但是它可以帮助...还有一个HTTP
在执行情况AS3
...一旦你的数据
- 负载的数据作为二进制数据...做的时候,看起的顺序...它是PNG(
- 通过型手动...纯粹和简单的...你不依靠任何其他人...
还有一个重要的差异之间的程序和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并使用正确的加载器是什么类型的对象。