Paquete | flash.desktop |
Interfaz | public interface IFilePromise |
Implementadores | MediaPromise, URLFilePromise |
Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | AIR 2 |
Una promesa de archivo es un formato de portapapeles de arrastrar y colocar que permite al usuario arrastrar un archivo que aún no existe fuera de una aplicación de AIR. AIR utiliza los métodos y propiedades definidas por la interfaz IFilePromise para acceder a los datos que se van a escribir cuando la promesa de archivo se coloca.
Cuando una promesa de archivo se coloca en un destino adecuado, AIR llama al método open()
de IFilePromise. La implementación de este método debe devolver el proveedor de datos como un objeto que implementa la interfaz IDataInput. El proveedor puede ser una de las clases incorporadas, por ejemplo, ByteArray, FileStream, Socket y URLStream, o puede ser una clase personalizada.
Si se accede a los datos del proveedor de datos sincrónicamente, como con un ByteArray, AIR lee la cantidad de datos indicada por la propiedad bytesAvailable
de IDataInput y escribe en el archivo de destino.
Si se accede a los datos del proveedor de datos forma asíncrona, como con un Socket, AIR utiliza los eventos distribuidos por el proveedor para regular el proceso de lectura de los datos y escribirlos en el archivo. Los datos se leen en cada evento progress hasta que se recibe un evento complete o close. El motor de ejecución detecta los siguientes eventos (pero un proveedor de datos no necesita distribuir cada evento):
- Event.OPEN
- ProgressEvent.PROGRESS
- ProgressEvent.SOCKET_DATA
- Event.COMPLETE
- Event.CLOSE
- IOErrorEvent.IOERROR
- SecurityErrorEvent.SECURITY_ERROR
- HTTPStatusEvent.HTTP_STATUS
- HTTPStatusEvent.HTTP_RESPONSE_STATUS
Las clases del proveedor de datos personalizado deben distribuir un evento progress
o un evento socketData
si está disponible. Del mismo modo, se debe distribuir un evento complete
o close
cuando se han leído todos los datos solicitados. Los eventos error informan al motor de ejecución de que la transferencia de datos ha fallado y se debe anular. El resto de eventos se deben distribuir de forma adecuada para ayudar a la gestión de errores y a la depurar la lógica de la aplicación.
Los métodos definidos por IFilePromise están destinados únicamente ser llamados por el motor de ejecución de AIR una vez finalizada la operación de arrastrar y colocar. Los desarrolladores no deben llamar a estos métodos por norma desde su propio código.
Nota: la clase URLFilePromise, disponible en la biblioteca air.desktop, implementa la interfaz IFilePromise y utiliza URLStream como un proveedor de datos. La biblioteca air.desktop se incluye como archivos SWF y SWC independientes en el SDK de AIR.
Elementos de API relacionados
Propiedad | Definido por | ||
---|---|---|---|
isAsync : Boolean [solo lectura]
Indica si se admite la transferencia asíncrona de datos. | IFilePromise | ||
relativePath : String [solo lectura]
La ruta relativa y el nombre de archivo del archivo que se creará con esta promesa de archivo. | IFilePromise |
Método | Definido por | ||
---|---|---|---|
Lo llama el tiempo de ejecución de AIR cuando ha terminado la lectura de todos los datos. | IFilePromise | ||
Devuelve el objeto del proveedor de datos. | IFilePromise | ||
Lo llama el motor de ejecución de AIR para informar a la implementación de IFilePromise sobre los errores que se producen al leer datos desde el objeto del proveedor de datos. | IFilePromise |
isAsync | propiedad |
isAsync:Boolean
[solo lectura] Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | AIR 2 |
Indica si se admite la transferencia asíncrona de datos.
Si es true
, el objeto del proveedor de datos devuelto por el método open()
debe implementar la interfaz IEventDispatcher (o ampliar una clase que implemente esta interfaz). La transferencia de datos corre a cargo de los eventos progress
o socketData
. AIR espera a estos eventos de progreso de datos hasta que se distribuye un evento complete
o close
.
Si isAsync
devuelve false, el motor de ejecución de AIR presupone que todos los datos están disponibles inmediatamente. En ese caso, el motor de ejecución lee la propiedad bytesAvailable
del objeto del proveedor de datos con el fin de determinar la cantidad de datos disponibles y la lee sincrónicamente.
Implementación
public function get isAsync():Boolean
relativePath | propiedad |
relativePath:String
[solo lectura] Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | AIR 2 |
La ruta relativa y el nombre de archivo del archivo que se creará con esta promesa de archivo.
Esta propiedad debe proporcionar una ruta válida, si no, se emite un error de argumento cuando se coloca la promesa de archivo.
La ruta puede incluir subdirectorios que se resuelven en función de la ubicación en que se va a colocar. Se crean subdirectorios, si es necesario. Si se incluyen subdirectorios, utilice la constante File.separator
para insertar el carácter separador de ruta correcto para el sistema operativo actual. Utilizar el acceso directo .. para navegar a un directorio principal no está permitido. Si se intenta, se emite un error de argumento. Los caracteres no válidos del sistema de archivos se quitan del trazado sin emitir un error.
Nota: para permitir código de cliente en la configuración de la ruta, puede implementar una función setter con la firma: function set relativePath( value:String ):void
.
Implementación
public function get relativePath():String
Emite
ArgumentError — si el trazado relativo utiliza métodos abreviados .. para recorrer uno o más directorios principales del destino de colocación.
|
close | () | método |
public function close():void
Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | AIR 2 |
Lo llama el tiempo de ejecución de AIR cuando ha terminado la lectura de todos los datos.
No se llama a ningún método en la referencia del objeto devuelto por open()
tras haber llamado a close()
. El objeto del proveedor de datos se puede eliminar con total seguridad.
open | () | método |
public function open():IDataInput
Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | AIR 2 |
Devuelve el objeto del proveedor de datos.
El objeto del proveedor de datos debe implementar la interfaz IDataInput, que define métodos para la lectura de datos. Si la propiedad isAsync
de IFilePromise devuelve true
, el objeto del proveedor de datos objeto también debe implementar la interfaz IEventDispatcher. Las siguientes clases incorporadas se pueden utilizar como proveedor de datos:
- ByteArray (sincrónico)
- FileStream (síncrono o asíncrono)
- Socket (asíncrono)
- URLStream (asíncrono)
También puede proporcionar un objeto de una clase personalizada que implemente las interfaces necesarias (o amplíe otra clase que las implemente).
Valor devueltoIDataInput — IDataInput Un objeto que implementa la interfaz IDataInput. Si los datos se proporcionan forma asíncrona, el objeto devuelto también debe implementar la interfaz IEventDispatcher.
|
reportError | () | método |
public function reportError(e:ErrorEvent):void
Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | AIR 2 |
Lo llama el motor de ejecución de AIR para informar a la implementación de IFilePromise sobre los errores que se producen al leer datos desde el objeto del proveedor de datos.
Parámetros
e:ErrorEvent — El evento de error que contiene información detallada sobre el error.
|
Tue Jun 12 2018, 02:12 PM Z