【问题标题】:Is it possible to access raw file data as FileReference.load() loads it in memory?是否可以在 FileReference.load() 将原始文件数据加载到内存中时访问它?
【发布时间】:2011-07-08 17:15:48
【问题描述】:

我认为不是,但也许我错了。有人吗?

更新:

不是。

【问题讨论】:

    标签: actionscript-3 file memory load filereference


    【解决方案1】:

    我认为您可以,至少文档中没有其他说明。尝试在 FileReference 对象上添加ProgressEvent 以在调用load() 后读取它的data (ByteArray) 属性。

    但是,如果您使用URLLoader 加载文件,则只有在加载操作完成后才会填充 URLLoader 的 data 属性。


    [编辑]

    因此,毕竟在加载时无法访问实时的 fileReference 数据。文档应明确说明这是不可能的,因为这是一个有效的请求。

    然而,在浏览文档后我意识到您可以通过使用 URLStream 类来做到这一点,该类提供了在数据加载时读取数据的方法 - 它旨在完全满足您的需求。

    在这种情况下,唯一的问题是 URLStream 需要完整的 URL 路径(URLRequest 对象),出于安全原因,FileReference 无法获得该路径 - 只能获取所选文件的名称,而不是完整路径.在 AIR 中获取本地文件路径非常容易,但是由于您希望您的应用程序能够抵抗浏览器,因此我不太确定如何从用户的计算机访问文件路径 - 除非他们输入文件路径,但要求您的用户这样做会严重降低用户体验。

    【讨论】:

    • 我试过了。我得到 null :( 只是我在某处读到它是可能的,但不确定它是否与 FileReference 有关。
    • 我认为 URLRequest 与 URL 相关,与本地文件无关,不是吗?
    • 本地文件也有 URL。 http://www.google.comC:\Program Files\file.xml 都是 URL :) Loader 对象和 URLLoader 对象(以及 URLStream 对象等)都接收 URLRequests 作为参数,但请记住 URLLoader 主要用于加载数据(文本文件、XML 或在动态的、数据驱动的应用程序中使用的其他信息),而 Loader 主要用于加载显示对象(swf 文件或图像文件)。声音对象有自己的加载函数,它还接收本地或在线 .mp3 文件的 URLRequest 参数。
    【解决方案2】:

    目前无法...

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-10-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-25
      • 2011-04-07
      相关资源
      最近更新 更多