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

FileReferenceList  - AS3

Пакетflash.net
Классpublic class FileReferenceList
НаследованиеFileReferenceList Inheritance EventDispatcher Inheritance Object

Язык версии: ActionScript 3.0
Версии среды выполнения: AIR 1.0, Flash Player 9

Класс FileReferenceList обеспечивает работу средств, позволяющих пользователю выбрать один или несколько файлов для отправки. Объект FileReferenceList представляет группу из одного или нескольких локальных файлов на диске пользователя в форме массива объектов FileReference. Дополнительные сведения и важные аспекты работы с объектами FileReference и классом FileReference см. в описании класса FileReference.

Для работы с классом FileReferenceList выполните следующее

  • создайте экземпляры класса: var myFileRef = new FileReferenceList();
  • вызовите метод FileReferenceList.browse(), открывающий диалоговое окно, с помощью которого пользователь может выбрать один или несколько файлов для отправки: myFileRef.browse();
  • после успешного вызова метода browse() свойство fileList объекта FileReferenceList заполняется массивом объектов FileReference.
  • Вызовите FileReference.upload() по каждому элементу в массиве fileList.

Для работы с несколькими файлами класс FileReferenceList снабжен методом browse() и свойством fileList. Во время выполнения вызова FileReferenceList.browse() воспроизведение SWF-файла приостанавливается в автономных и внешних версиях Flash Player и в AIR for Linux и Mac OS X 10.1 и более ранних версий.

Посмотреть примеры

Связанные элементы API



Общедоступные свойства
 СвойствоОпределено
 Inheritedconstructor : Object
Ссылка на объект класса или функцию конструктора для данного экземпляра объекта.
Object
  fileList : Array
[только для чтения] Массив объектов FileReference.
FileReferenceList
Общедоступные методы
 МетодОпределено
  
Создает новый объект FileReferenceList.
FileReferenceList
 Inherited
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
Регистрирует объект прослушивателя события на объекте EventDispatcher для получения прослушивателем уведомления о событии.
EventDispatcher
  
browse(typeFilter:Array = null):Boolean
Отображает диалоговое окно выбора файлов, позволяющее пользователю выбрать один или несколько локальных файлов для загрузки.
FileReferenceList
 Inherited
Посылает событие в поток событий.
EventDispatcher
 Inherited
Проверяет, имеет ли объект EventDispatcher прослушиватели, зарегистрированные для определенного типа события.
EventDispatcher
 Inherited
Показывает, определено ли заданное свойство для объекта.
Object
 Inherited
Показывает, есть ли экземпляр класса Object в цепи прототипов объекта, заданного в качестве параметра.
Object
 Inherited
Показывает наличие заданного свойства и его перечисляемость.
Object
 Inherited
removeEventListener(type:String, listener:Function, useCapture:Boolean = false):void
Удаляет прослушиватель из объекта EventDispatcher.
EventDispatcher
 Inherited
Задает доступность динамического свойства для операций цикла.
Object
 Inherited
Возвращает строковое представление этого объекта, отформатированного в соответствии со стандартами, принятыми для данной локали.
Object
 Inherited
Возвращает строковое представление заданного объекта.
Object
 Inherited
Возвращает элементарное значение заданного объекта.
Object
 Inherited
Проверяет, зарегистрирован ли прослушиватель события для указанного типа события с данным объектом EventDispatcher или любым его предшественником.
EventDispatcher
События
 Событие Сводка Определено
 Inherited[многоадресное событие] Отправляется, когда проигрыватель Flash Player или приложение AIR перемещается в фокус операционной системы и становится активным.EventDispatcher
  Отправляется, когда пользователь закрывает диалоговое окно обозревателя файлов.FileReferenceList
 Inherited[многоадресное событие] Отправляется, когда проигрыватель Flash Player или приложение AIR теряет фокус системы и становится неактивным.EventDispatcher
  Отправляется, когда пользователь выбирает один или несколько файлов для загрузки в диалоговом окне обзора файлов.FileReferenceList
Сведения о свойстве

fileList

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

Язык версии: ActionScript 3.0
Версии среды выполнения: AIR 1.0, Flash Player 9

Массив объектов FileReference.

Когда вызывается метод FileReferenceList.browse() и пользователь выбирает один или несколько файлов в диалоговом окне, которое открывает метод browse(), данное свойство заполняется массивом объектов FileReference, каждый из которых представляет выбранный пользователем файл. В дальнейшем можно использовать данный массив для загрузки каждого файла с помощью метода FileReference.upload(). За один раз следует загружать по одному файлу.

Свойство fileList заполняется заново при каждом вызове метода browse() в отношении данного объекта FileReferenceList.

Свойства объектов FileReference описаны в документации по классу FileReference.



Реализация
    public function get fileList():Array

Связанные элементы API

Сведения о конструкторе

FileReferenceList

()Конструктор
public function FileReferenceList()

Язык версии: ActionScript 3.0
Версии среды выполнения: AIR 1.0, Flash Player 9

Создает новый объект FileReferenceList. До тех пор пока вы не вызовете в отношении объекта FileReferenceList метод browse() и пользователь не выберет один или несколько файлов, данный объект остается пустым. При вызове метода browse() в отношении объекта FileReference свойство fileList данного объекта заполняется массивом объектов FileReference.

Связанные элементы API

Сведения о методе

browse

()метод
public function browse(typeFilter:Array = null):Boolean

Язык версии: ActionScript 3.0
Версии среды выполнения: AIR 1.0, Flash Player 9

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

В приложении Flash Player версии 10 и старше этот метод можно вызывать только в ответ на пользовательское событие (например, в обработчике событий щелчка мыши или нажатия клавиши). В противном случае в результате вызова этого метода в приложении Flash Player возникает ошибка.

Когда вы вызываете этот метод и пользователь успешно выбирает файлы, свойство fileList данного объекта FileReferenceList заполняется массивом объектов FileReference (по одному для каждого выбранного пользователем файла). При каждом последующем вызове метода FileReferenceList.browse() свойство FileReferenceList.fileList указывает файлы, которые пользователь выбрал в диалоговом окне.

С помощью параметра typeFilter можно определить, какие файлы будут отображаться в диалоговом окне.

Единовременно в отношении объекта FileReferenceList может быть запущен только один сеанс FileReference.browse(), FileReference.download() или FileReferenceList.browse() (за раз может быть открыто только одно диалоговое окно).

Параметры

typeFilter:Array (default = null) — Массив экземпляров FileFilter, который используется для фильтрации файлов, отображенных в диалоговом окне. Если данный параметр пропущен, то отображаются все файлы. Дополнительные сведения см. в описании класса FileFilter.

Возвращает
Boolean — Возвращает значение true при наличии допустимых параметров и открытии диалогового окна просмотра файлов.

События
select:Event — Вызывается, когда пользователь успешно выбирает в диалоговом окне элемент для загрузки.
 
cancel:Event — Вызывается, когда пользователь прекращает работу с диалоговым окном путем его закрытия или нажатия на кнопку «Отмена».

Выдает
IllegalOperationError — Создается в следующих ситуациях: 1) В текущий момент запущен другой сеанс просмотра FileReference или FileReferenceList (единовременно может быть запущен только один сеанс просмотра файлов). 2) Настройка в файле пользователя mms.cfg запрещает данную операцию.
 
ArgumentError — Если массив typeFilter не содержит правильно сформатированные объекты FileFilter, создается исключение. Дополнительные сведения о правильном форматировании фильтров см. в документации по FileFilter.
 
Error — Если вызов метода не выполняется в ответ на действие пользователя, такое как событие мыши или нажатие клавиши.

Связанные элементы API

Сведения о событии

cancel

Событие
Тип объекта события: flash.events.Event
свойство Event.type = flash.events.Event.CANCEL

Язык версии: ActionScript 3.0
Версии среды выполнения: AIR 1.0, Flash Player 9

Отправляется, когда пользователь закрывает диалоговое окно обозревателя файлов. (Это диалоговое окно открывается при вызове метода FileReferenceList.browse(), FileReference.browse() илиFileReference.download().)

Константа Event.CANCEL определяет значение свойства type объекта события cancel.

Это событие имеет следующие свойства:

СвойствоЗначение
bubblesfalse
cancelablefalse; поведение по умолчанию, подлежащее отмене, не определено.
currentTargetОбъект, активно обрабатывающий объект Event с помощью прослушивателя событий.
targetСсылка на объект, для которого отменена операция.

Связанные элементы API

select

Событие  
Тип объекта события: flash.events.Event
свойство Event.type = flash.events.Event.SELECT

Язык версии: ActionScript 3.0
Версии среды выполнения: AIR 1.0, Flash Player 9

Отправляется, когда пользователь выбирает один или несколько файлов для загрузки в диалоговом окне обзора файлов. (Это диалоговое окно открывается при вызове метода FileReferenceList.browse(), FileReference.browse() илиFileReference.download().) Когда пользователь выбирает файл и подтверждает эту операцию (например, путем нажатия на кнопку «Сохранить»), объект FileReferenceList заполняется объектами FileReference, представляющими выбранные пользователем файлы.

Константа Event.SELECT определяет значение свойства type объекта события select.

Это событие имеет следующие свойства:

СвойствоЗначение
bubblesfalse
cancelablefalse; поведение по умолчанию, подлежащее отмене, не определено.
currentTargetОбъект, активно обрабатывающий объект Event с помощью прослушивателя событий.
targetОбъект, в котором выделен элемент.

Связанные элементы API

FileReferenceListExample.as

В следующем примере показано, как можно использовать события для управления отправкой нескольких файлов. Класс CustomFileReferenceList расширяет FileReferenceList и включает в себя событие complete, которое отправляется при отправке каждого отдельного файла в объекте FileReferenceList. Событие LIST_COMPLETE в классе FileReferenceListExample отправляется, когда будут загружены все файлы в объекте FileReferenceList.

Чтобы запустить данный пример, разместите сценарий, предназначенный для принятия отправки файла, по адресу http://www.[yourDomain].com/yourUploadHandlerScript.cfm. Чтобы обеспечить сетевой доступ к указанному файлу, в зависимости от того, где расположен ваш SWF-файл и куда вы передаете файлы, может также потребоваться скомпилировать SWF-файл, определив для параметра «Безопасность локального воспроизведения» значение «Доступ только к сети», или обновить настройки безопасности проигрывателя Flash® Player. Если для отправки используется удаленный сервер и данный пример запускается с настольного компьютера, на вашем сервере должен присутствовать файл crossdomain.xml.

package {
    import flash.display.Sprite;
    import flash.events.*;
    import flash.net.FileReference;
    import flash.net.FileReferenceList;
 
    public class FileReferenceListExample extends Sprite {
        public static var LIST_COMPLETE:String = "listComplete";
        public function FileReferenceListExample() {
            initiateFileUpload();
        }

        private function initiateFileUpload():void {
            var fileRef:CustomFileReferenceList = new CustomFileReferenceList();
            fileRef.addEventListener(FileReferenceListExample.LIST_COMPLETE, listCompleteHandler);
            fileRef.browse(fileRef.getTypes());
        }

        private function listCompleteHandler(event:Event):void {
            trace("listCompleteHandler");
        }
    }
}
 
import flash.events.*;
import flash.net.FileReference;
import flash.net.FileReferenceList;
import flash.net.FileFilter;
import flash.net.URLRequest;
 
class CustomFileReferenceList extends FileReferenceList {
    private var uploadURL:URLRequest;
    private var pendingFiles:Array;

    public function CustomFileReferenceList() {
        uploadURL = new URLRequest();
        uploadURL.url = "http://www.[yourDomain].com/yourUploadHandlerScript.cfm";
        initializeListListeners();
    }

    private function initializeListListeners():void {
        addEventListener(Event.SELECT, selectHandler);
        addEventListener(Event.CANCEL, cancelHandler);
    }

    public function getTypes():Array {
        var allTypes:Array = new Array();
        allTypes.push(getImageTypeFilter());
        allTypes.push(getTextTypeFilter());
        return allTypes;
    }
 
    private function getImageTypeFilter():FileFilter {
        return new FileFilter("Images (*.jpg, *.jpeg, *.gif, *.png)", "*.jpg;*.jpeg;*.gif;*.png");
    }
 
    private function getTextTypeFilter():FileFilter {
        return new FileFilter("Text Files (*.txt, *.rtf)", "*.txt;*.rtf");
    }
 
    private function doOnComplete():void {
        var event:Event = new Event(FileReferenceListExample.LIST_COMPLETE);
        dispatchEvent(event);
    }
 
    private function addPendingFile(file:FileReference):void {
        trace("addPendingFile: name=" + file.name);
        pendingFiles.push(file);
        file.addEventListener(Event.OPEN, openHandler);
        file.addEventListener(Event.COMPLETE, completeHandler);
        file.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
        file.addEventListener(ProgressEvent.PROGRESS, progressHandler);
        file.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler);
        file.upload(uploadURL);
    }
 
    private function removePendingFile(file:FileReference):void {
        for (var i:uint; i < pendingFiles.length; i++) {
            if (pendingFiles[i].name == file.name) {
                pendingFiles.splice(i, 1);
                if (pendingFiles.length == 0) {
                    doOnComplete();
                }
                return;
            }
        }
    }
 
    private function selectHandler(event:Event):void {
        trace("selectHandler: " + fileList.length + " files");
        pendingFiles = new Array();
        var file:FileReference;
        for (var i:uint = 0; i < fileList.length; i++) {
            file = FileReference(fileList[i]);
            addPendingFile(file);
        }
    }
 
    private function cancelHandler(event:Event):void {
        var file:FileReference = FileReference(event.target);
        trace("cancelHandler: name=" + file.name);
    }
 
    private function openHandler(event:Event):void {
        var file:FileReference = FileReference(event.target);
        trace("openHandler: name=" + file.name);
    }
 
    private function progressHandler(event:ProgressEvent):void {
        var file:FileReference = FileReference(event.target);
        trace("progressHandler: name=" + file.name + " bytesLoaded=" + event.bytesLoaded + " bytesTotal=" + event.bytesTotal);
    }
 
    private function completeHandler(event:Event):void {
        var file:FileReference = FileReference(event.target);
        trace("completeHandler: name=" + file.name);
        removePendingFile(file);
    }
 
    private function httpErrorHandler(event:Event):void {
        var file:FileReference = FileReference(event.target);
        trace("httpErrorHandler: name=" + file.name);
    }
 
    private function ioErrorHandler(event:Event):void {
        var file:FileReference = FileReference(event.target);
        trace("ioErrorHandler: name=" + file.name);
    }
 
    private function securityErrorHandler(event:Event):void {
        var file:FileReference = FileReference(event.target);
        trace("securityErrorHandler: name=" + file.name + " event=" + event.toString());
    }
}




[ X ]Почему по-английски?
Содержимое Справочника ActionScript 3.0 отображается на английском языке

Не все части Справочника ActionScript 3.0 переводятся на все языки. Если какой-то текстовый элемент не переведен, он отображается на английском языке. Например, компонент ga.controls.HelpBox не переведен ни на один из языков. Это значит, что в русской версии справки компонент ga.controls.HelpBox будет отображаться на английском языке.