Справочник по ActionScript® 3.0 для платформы Adobe® Flash®
Домашняя страница  |  Скрыть список пакетов и классов |  Пакеты  |  Классы  |  Что нового  |  Указатель  |  Приложения  |  Почему по-английски?
Фильтры: Получение данных с сервера...
Получение данных с сервера...
flash.desktop 

IFilePromise  - AS3

Пакетflash.desktop
Интерфейсpublic interface IFilePromise
Средство реализации MediaPromise, URLFilePromise

Язык версии: ActionScript 3.0
Версии среды выполнения: AIR 2

Интерфейс IFilePromise определяет интерфейс, используемый средой выполнения AIR для чтения данных предварительного образа файла.

Предварительный образ файла представляет собой формат буфера перетаскивания, который дает пользователю возможность перетащить пока не существующий файл за пределы программы AIR. AIR использует методы и свойства, определенные интерфейсом IFilePromise, чтобы получить доступ к данным, которые будут записаны после завершения перетаскивания предварительного образа файла.

После перетаскивания предварительного образа файла в подходящее местоположение AIR вызывает метод open() объекта IFilePromise. В результате выполнения этого метода поставщик данных должен быть возвращен в качестве объекта, который реализует интерфейс IDataInput. Объект поставщика может быть представлен одним из встроенных классов, таких как ByteArray, FileStream, Socket и URLStream, или это может быть пользовательский класс.

Если доступ к данным поставщика осуществляется в синхронном режиме, например при использовании ByteArray, AIR считывает объем данных, указанный в свойстве bytesAvailable экземпляра IDataInput, и записывает его в целевом файле.

Если же доступ к данным поставщика осуществляется в асинхронном режиме, например при использовании объекта 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. По аналогии, после завершения чтения всех запрошенных данных должно отправляться событие complete или close. События ошибок сообщают среде выполнения о том, что выполнить передачу данных не удалось и ее следует прервать. При необходимости должны отправляться и другие события с целью упрощения обработки ошибок и отладки логики программы.

Методы, определяемые с помощью IFilePromise, должны вызываться средой выполнения AIR только после завершения операции перетаскивания. Обычно разработчикам не следует вызывать эти методы с помощью кода программы.

Примечание. Класс URLFilePromise, доступный в библиотеке air.desktop, реализует интерфейс 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 (или расширять другой реализующий его класс). Передача данных регулируется событиями progress или socketData. AIR ожидает эти события о ходе выполнения, пока не отправляется событие complete или close.

Если isAsync возвращает значение false, среда выполнения AIR считает, что все данные сразу становятся доступными. В этом случае среда выполнения считывает свойство bytesAvailable объекта поставщика данных, чтобы определить объем доступных данных, и синхронно считывает эти данные.



Реализация
    public function get isAsync():Boolean
    

relativePath

свойство 
relativePath:String  [только для чтения]

Язык версии: ActionScript 3.0
Версии среды выполнения: AIR 2

Относительный путь и имя файла, который будет создан из данного предварительного образа.

Это свойство должно содержать действительный путь. В противном случае при завершении перетаскивания выдается ошибка аргумента.

Путь может включать подкаталоги, разрешение которых выполняется относительно местоположения перетаскивания. При необходимости создаются подкаталоги. При включении подкаталогов следует использовать константу File.separator, чтобы вставить символ-разделитель, который используется для указания пути в текущей операционной системе. Указание .. в качестве комбинации клавиш для перехода к родительскому каталогу не поддерживается. При попытке выполнения выдается ошибка аргумента. Недопустимые символы файловой системы удаляются из пути, при этом ошибка не выдается.

Примечание. Чтобы позволить коду клиента задать путь, можно реализовать функцию установщика с подписью: 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, который определяет методы для чтения данных. Если свойство isAsync экземпляра IFilePromise возвращает значение true, поставщик данных должен также поддерживать интерфейс IEventDispatcher. Следующие встроенные классы могут использоваться в качестве поставщика данных.

  • ByteArray (синхронный)
  • FileStream (синхронный или асинхронный)
  • Socket (асинхронный)
  • 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 будет отображаться на английском языке.