代码之家  ›  专栏  ›  技术社区  ›  Paul Mignard

Actionscript:如何确定某些加载内容的类型?

  •  0
  • Paul Mignard  · 技术社区  · 17 年前

    我有一种情况,我正在使用URLLoader加载一些内容,但内容可以是视频(flv或swf)、图像(jpg、png或gif)或swf。诀窍是,我需要根据加载的内容类型以不同的方式做出反应,而不一定事先知道它是什么类型的内容。

    我目前已经制定了一个精心设计的解决方案(我所说的精心设计是指一系列令人困惑的if语句和try…catch块),包括尝试将其加载到控件中并捕获错误(例如:我将创建一个Image实例,为ioError事件添加一个事件监听器,然后收到它,我假设它不是图像或swf…),但这有点像黑客攻击。

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

    4 回复  |  直到 17 年前
        1
  •  1
  •   inferis    17 年前

    看看: http://code.google.com/p/as3httpclient/wiki/Links 以确定响应报头。我把它用于另一个目的,它工作得很好。

        2
  •  1
  •   Brandon    17 年前

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

    例如,如果压缩了所有SWF文件,则应以0x46、0x57、0x53(FWS)或0x43、0x57和0x53(“CWS”)开头。

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

        3
  •  0
  •   Christian Nunciato    17 年前

    遗憾的是,如果你没有使用AIR,那么你就无法(至少在今天)访问HTTP响应(即URLLoader.httpResponseStatus)标头。所以,你的“炮制”方法(我自己也用过!)可能暂时是合适的,就像之前的海报一样。

    不过,Adobe似乎对此有一个悬而未决的问题:

    http://bugs.adobe.com/jira/browse/FP-251

    …至少是这样。 :)

        4
  •  0
  •   Ronn    17 年前

    也许是这样的

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