用于 Adobe® Flash® Platform 的 ActionScript® 3.0 参考
主页  |  隐藏包列表和类列表 |   |   |  新增内容  |  索引  |  附录  |  为什么显示为英语?
过滤条件: 正在从服务器检索数据...
正在从服务器检索数据...
flash.desktop 

IFilePromise  - AS3

flash.desktop
接口public interface IFilePromise
实现器 MediaPromise, URLFilePromise

语言版本: ActionScript 3.0
运行时版本: AIR 2

IFilePromise 接口定义 AIR 运行时用于读取 file promise 的数据的接口。

文件释放是一种拖放剪贴板格式,这种格式允许用户将尚不存在的文件拖出 AIR 应用程序外。AIR 使用 IFilePromise 接口定义的方法和属性访问要在放置 file promise 时写入的数据。

将 file promise 放置在合适的目标上后,AIR 会调用 IFilePromise open() 方法。此方法的实现必须将数据提供程序作为实现 IDataInput 接口的对象进行返回。提供程序对象可能是一个内置类(例如,ByteArray、FileStream、Socket 和 URLStream),也可能是一个自定义类。

如果以同步方式访问数据提供程序中的数据(例如,使用 ByteArray 访问),则 AIR 将读取 IDataInput bytesAvailable 属性所表示的数据量,然后将其写入目标文件。

如果以异步方式访问数据提供程序中的数据(例如,使用 Socket 访问),则 AIR 将使用提供程序调度的事件控制读取数据和将数据写入文件的过程。在每个 progress 事件中读取数据,直到接收到 complete 或 close 事件。运行时侦听下列事件(但是数据提供程序不需要调度每个事件):

  • Event.OPEN
  • ProgressEvent.PROGRESS
  • ProgressEvent.SOCKET_DATA
  • Event.COMPLETE
  • Event.CLOSE
  • IOErrorEvent.IOERROR
  • SecurityErrorEvent.SECURITY_ERROR
  • HTTPStatusEvent.HTTP_STATUS
  • HTTPStatusEvent.HTTP_RESPONSE_STATUS

自定义数据提供程序类应在存在可用数据时调度 progress 事件或 socketData 事件。同样,应在读取了所有请求的数据后调度 completeclose 事件。错误事件会通知运行时数据传输已失败且应终止。应适当地调度其他事件以帮助进行错误处理和调试应用程序逻辑。

IFilePromise 定义的方法仅为 AIR 运行时在完成拖放操作后进行调用。开发人员通常不应从他们自己的代码调用这些方法。

注意:air.desktop 库中提供的 URLFilePromise 类可实现 IFilePromise 接口并将 URLStream 用作数据提供程序。air.desktop 库作为单独的 SWF 和 SWC 文件包含在 AIR SDK 中。

相关 API 元素



公共属性
 属性由以下参数定义
      isAsync : Boolean
[只读] 表示是否支持异步数据传输。
IFilePromise
      relativePath : String
[只读] 将由文件承诺创建的文件的相对路径和文件名。
IFilePromise
公共方法
 方法由以下参数定义
  
    close():void
当它读取完所有数据时由 AIR 运行时调用。
IFilePromise
  
    open():IDataInput
返回数据提供程序对象。
IFilePromise
  
由 AIR 运行时调用向 IFilePromise 实现通知,在从数据提供程序对象读取数据时发生错误。
IFilePromise
属性详细信息
    

isAsync

属性
isAsync:Boolean  [只读]

语言版本: ActionScript 3.0
运行时版本: AIR 2

表示是否支持异步数据传输。

如果为 true,则由 open() 方法返回的数据提供程序对象必须实现 IEventDispatcher 接口(或扩展实现此接口的类)。由 progresssocketData 事件驱动的数据传输。AIR 会等待这些数据进程事件直至调度 completeclose 事件为止。

如果 isAsync 返回 false,则 AIR 运行时会假定所有数据可立即使用。在这种情况下,运行时将读取数据提供程序对象的 bytesAvailable 属性以确定可用的数据量,并同步读取该数据量。



实现
    public function get isAsync():Boolean
    

relativePath

属性 
relativePath:String  [只读]

语言版本: ActionScript 3.0
运行时版本: AIR 2

将由文件承诺创建的文件的相对路径和文件名。

此属性必须提供有效的路径,否则在放置 file promise 时会引发参数错误。

路径可以包括子目录(根据放置位置进行解析)。根据需要创建子目录。当包括子目录时,使用 File.separator 常量为当前操作系统插入相应的路径分隔符。不允许使用 .. 快捷键导航到父级目录。如果尝试使用此快捷键,将引发参数错误。如果从路径中去掉无效的文件系统字符,将不会引发错误。

注意:若要允许客户端代码设置路径,可以实现带有签名的 setter 函数:function set relativePath( value:String ):void



实现
    public function get relativePath():String

引发
ArgumentError — 如果相对路径使用 .. 快捷键遍历拖放目标的一个或多个父级目录。
方法详细信息

    close

()方法
public function close():void

语言版本: ActionScript 3.0
运行时版本: AIR 2

当它读取完所有数据时由 AIR 运行时调用。

在调用 close() 后,将不会对由 open() 返回的对象引用调用任何方法。可安全地破坏数据提供程序对象。

    open

()方法 
public function open():IDataInput

语言版本: ActionScript 3.0
运行时版本: AIR 2

返回数据提供程序对象。

数据提供程序对象必须实现 IDataInput 接口,该接口定义读取数据的方法。如果 IFilePromise isAsync 属性返回 true,则数据提供程序对象也必须实现 IEventDispatcher 接口。可将下列内置类用作数据提供程序:

  • ByteArray(同步)
  • FileStream(同步或异步)
  • 套接字(异步)
  • URLStream(异步)

您还可以提供实现所需接口(或扩展实现这些接口的其他类)的自定义类的对象。

返回
IDataInput — IDataInput,实现 IDataInput 接口的对象。如果以异步方式提供数据,则返回的对象也必须实现 IEventDispatcher 接口。

    reportError

()方法 
public function reportError(e:ErrorEvent):void

语言版本: ActionScript 3.0
运行时版本: AIR 2

由 AIR 运行时调用向 IFilePromise 实现通知,在从数据提供程序对象读取数据时发生错误。

参数

e:ErrorEvent — 包含详细错误信息的错误事件。





[ X ]为什么显示为英语?
《ActionScript 3.0 参考》中的内容以英语显示

《ActionScript 3.0 参考》中的部分内容未翻译成所有语言。当某个语言元素未翻译时,将显示为英语。例如,ga.controls.HelpBox 类未翻译成任何语言。因此在简体中文版的参考中,ga.controls.HelpBox 类显示为英语。