Apache flex Actionscript:如何确定加载内容的类型?

Apache flex Actionscript:如何确定加载内容的类型?,apache-flex,actionscript-3,Apache Flex,Actionscript 3,我曾经遇到过这样的情况:我使用URLLoader加载一些内容,但内容可以是视频(flv或swf)、图像(jpg或png或gif)或swf。诀窍是,我需要根据加载的内容类型以不同的方式作出反应,而不必事先知道它是什么类型的内容 我目前已经炮制了一个复杂的解决方案(我所说的复杂是指一系列令人困惑的if语句和try…catch块),包括尝试将其加载到控件中并捕获错误(例如:我将创建一个映像实例,为ioError事件添加一个事件侦听器,并接收到它,我假设它不是映像或swf…),但它看起来有点像黑客 是否

我曾经遇到过这样的情况:我使用URLLoader加载一些内容,但内容可以是视频(flv或swf)、图像(jpg或png或gif)或swf。诀窍是,我需要根据加载的内容类型以不同的方式作出反应,而不必事先知道它是什么类型的内容

我目前已经炮制了一个复杂的解决方案(我所说的复杂是指一系列令人困惑的if语句和try…catch块),包括尝试将其加载到控件中并捕获错误(例如:我将创建一个映像实例,为ioError事件添加一个事件侦听器,并接收到它,我假设它不是映像或swf…),但它看起来有点像黑客


是否有任何干净的方法来确定从URLLoader加载的内容的类型?

您可能应该查看标题来确定文件类型

e、 g.所有SWF文件应以0x46、0x57、0x53(“FWS”)或0x43、0x57、0x53(“CWS”)开头(如果压缩)


在URLLoader.data数组中,这些将是字节0到2。

遗憾的是,如果您没有使用AIR,那么您(至少在今天)无法访问HTTP响应(即URLLoader.httpResponseStatus)头。因此,您的“捏造”方法(实际上我自己也使用过!)可能是一个适合的时间,因为是以前的海报

看起来Adobe for it有一个公开问题,不过:

…所以至少有这样一个问题。:)

看看:确定响应头。我把它用于另一个目的,效果很好。

可能是类似的

switch(your_request.url.split('.')[1]){
  case 'jpg':
  case 'swf':
}