Pakiet | flash.net |
Klasa | public class FileReferenceList |
Dziedziczenie | FileReferenceList EventDispatcher Object |
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9 |
Aby rozpocząć pracę z klasą FileReferenceList:
- Utwórz instancję klasy:
var myFileRef = new FileReferenceList();
- Wywołaj metodę
FileReferenceList.browse()
, która otwiera okno dialogowe umożliwiające wybranie jednego lub wielu plików w celu ich przesłania:myFileRef.browse();
- Po pomyślnym wywołaniu metody
browse()
, właściwośćfileList
obiektu FileReferenceList jest wypełniana tablicą obiektów FileReference. - Wywołaj
FileReference.upload()
dla każdego elementu z tablicyfileList
.
Klasa FileReferenceList zawiera metodę browse()
oraz właściwość fileList
umożliwiającą pracę z wieloma plikami. W autonomicznych i zewnętrznych wersjach programu Flash Player oraz w środowisku AIR dla systemów Linux oraz Mac OS X 10.1 i wcześniejszych odtwarzanie pliku SWF jest wstrzymywane na czas wykonywania wywołania metody FileReferenceList.browse()
.
Powiązane elementy interfejsu API
Właściwość | Zdefiniowane przez | ||
---|---|---|---|
constructor : Object
Odwołanie do obiektu klasy lub funkcji konstruktora, dotyczące danej instancji obiektu. | Object | ||
fileList : Array [tylko do odczytu]
Tablica obiektów FileReference. | FileReferenceList |
Metoda | Zdefiniowane przez | ||
---|---|---|---|
Tworzy nowy obiekt typu FileReferenceList. | FileReferenceList | ||
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
Rejestruje obiekt detektora zdarzeń w obiekcie EventDispatcher, dzięki czemu detektor będzie otrzymywał powiadomienia o zdarzeniu. | EventDispatcher | ||
Wyświetla okno przeglądania plików, w którym użytkownik może zaznaczyć jeden lub więcej plików lokalnych do wysłania. | FileReferenceList | ||
Wywołuje zdarzenie, tj. kieruje je do przepływu zdarzeń. | EventDispatcher | ||
Sprawdza, czy obiekt EventDispatcher zawiera jakiekolwiek detektory zarejestrowane dla konkretnego typu zdarzeń. | EventDispatcher | ||
Wskazuje, czy dla obiektu zdefiniowano określoną właściwość. | Object | ||
Wskazuje, czy instancja klasy Object należy do łańcucha prototypów obiektu określonego jako parametr. | Object | ||
Wskazuje, czy określona właściwość istnieje i jest przeliczalna. | Object | ||
Usuwa detektor z obiektu EventDispatcher. | EventDispatcher | ||
Ustawia dostępność właściwości dynamicznej używanej w pętlach. | Object | ||
Zwraca ciąg reprezentujący obiekt — sformatowany zgodnie z konwencjami właściwymi dla ustawień regionalnych. | Object | ||
Zwraca ciąg reprezentujący określony obiekt. | Object | ||
Zwraca pierwotną wartość dla określonego obiektu. | Object | ||
Sprawdza, czy detektor zdarzeń określonego typu jest zarejestrowany w tym obiekcie EventDispatcher lub jego elementach macierzystych. | EventDispatcher |
Zdarzenie | Podsumowanie | Zdefiniowane przez | ||
---|---|---|---|---|
[zdarzenie broadcast] Wywoływane, gdy program Flash Player lub aplikacja środowiska wykonawczego AIR uzyskuje fokus w systemie operacyjnym i przechodzi w stan aktywny. | EventDispatcher | |||
Wywoływana po zamknięciu okna przeglądania plików przez użytkownika. | FileReferenceList | |||
[zdarzenie broadcast] Wywoływane, gdy program Flash Player lub aplikacja AIR traci fokus w systemie operacyjnym i przechodzi w stan nieaktywny. | EventDispatcher | |||
Wywoływana, gdy użytkownik wybierze w oknie przeglądania plików przynajmniej jeden plik do wysłania. | FileReferenceList |
fileList | właściwość |
fileList:Array
[tylko do odczytu] Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9 |
Tablica obiektów FileReference
.
Kiedy wywoływana jest metoda FileReferenceList.browse()
i użytkownik wybiera jeden lub więcej plików z okna dialogowego, które otworzone zostało za pomocą metody browse()
, ta właściwość jest wypełniana tablicą obiektów FileReference, z których każdy reprezentuje wybrane przez użytkownika pliki. Można następnie użyć tej tablicy w celu wysłania każdego pliku za pomocą metody FileReference.upload()
. Pliki należy wysyłać pojedynczo.
Właściwość fileList
wypełniana jest na nowo za każdym razem, kiedy metoda browse() wywoływana jest na rzecz obiektu FileReferenceList.
Właściwości obiektów FileReference
są opisane w dokumentacji klasy FileReference.
Implementacja
public function get fileList():Array
Powiązane elementy interfejsu API
FileReferenceList | () | Konstruktor |
public function FileReferenceList()
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9 |
Tworzy nowy obiekt typu FileReferenceList. Obiekt FileReferenceList jest pusty, dopóki nie zostanie wywołana na jego rzecz metoda browse()
i użytkownik nie wybierze jednego lub więcej plików. Po wywołaniu metody browse()
na rzecz obiektu FileReference, właściwość fileList
obiektu zostanie wypełniona tablicą obiektów FileReference
.
Powiązane elementy interfejsu API
browse | () | metoda |
public function browse(typeFilter:Array = null):Boolean
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9 |
Wyświetla okno przeglądania plików, w którym użytkownik może zaznaczyć jeden lub więcej plików lokalnych do wysłania. Okno dialogowe jest oknem rodzimym systemu operacyjnego użytkownika.
W programie Flash Player 10 i nowszych wersjach metodę można wywołać pomyślnie tylko w odpowiedzi na zdarzenie użytkownika (np. w module obsługi zdarzenia dla zdarzenia kliknięcia myszą lub naciśnięcia klawisza). W przeciwnym wypadku wywołanie metody skutkuje w programie Flash Player zgłoszeniem błędu.
Po pomyślnym wywołaniu tej metody i wybraniu przez użytkownika plików, właściwość fileList
tego obiektu FileReferenceList wypełniana jest tablicą obiektów FileReference, jeden dla każdego pliku wybranego przez użytkownika. Każde kolejne wywołanie metody FileReferenceList.browse() powoduje ponowne ustawienie właściwości FileReferenceList.fileList
na pliki, które użytkownik wybrał w oknie dialogowym.
Za pomocą parametru typeFilter
można określić, które pliki będą wyświetlane w oknie dialogowym.
Tylko jedna sesja FileReference.browse()
, FileReference.download()
lub FileReferenceList.browse()
może być przetwarzana w tym samym czasie na obiekcie FileReferenceList (ponieważ tylko jedno okno dialgowe może być otwarte w tym samym czasie).
Parametry
typeFilter:Array (default = null ) — Tablica instancji klasy FileFilter używana do filtrowania plików wyświetlanych w oknie dialogowym. Pominięcie tego parametru spowoduje wyświetlenie wszystkich plików. Aby uzyskać więcej informacji, zobacz klasę FileFilter
|
Boolean — Zwraca wartość true , jeśli parametry są poprawne, a następnie otwierane jest okno dialogowe przeglądania plików.
|
Zdarzenia
select: — Wywoływane, gdy użytkownik poprawnie wybierze w oknie dialogowym element do wysłania.
| |
cancel: — Wywoływane, gdy użytkownik odrzuci okno dialogowe, klikając przycisk Anuluj, lub je zamknie.
|
Zgłasza
IllegalOperationError — Zgłoszony z następujących powodów: 1) Inna sesja przeglądania FileReference lub FileReferenceList jest w toku; tylko jedna sesja przeglądania plików może być wykonywana w tym samym czasie. 2) Ustawienie w pliku mms.cfg użytkownika zabrania wykonania takiej operacji.
| |
ArgumentError — Jeśli tablica typeFilter nie zawiera prawidłowo sformatowanych obiektów FileFilter, zgłoszony zostanie wyjątek. Szczegóły dotyczące prawidłowego formatowania filtrów znajdują się w dokumentacji klasy FileFilter.
| |
Error — Gdy metoda nie zostanie wywołana w odpowiedzi na działanie użytkownika, np. zdarzenie myszy lub klawiatury.
|
Powiązane elementy interfejsu API
cancel | Zdarzenie |
flash.events.Event
właściwość Event.type =
flash.events.Event.CANCEL
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9 |
Dysponowana po zamknięciu okna przeglądania plików przez użytkownika. (To okno dialogowe otwierane jest w momencie wywołania metod FileReferenceList.browse()
, FileReference.browse()
lub FileReference.download()
).
Event.CANCEL
definiuje wartość właściwości type
obiektu zdarzenia cancel
.
To zdarzenie ma następujące właściwości:
Właściwość | Wartość |
---|---|
bubbles | false |
cancelable | false ; nie ma domyślnego zachowania, które można byłoby anulować. |
currentTarget | Obiekt przetwarzający aktywnie obiekt Event za pomocą detektora zdarzeń. |
target | Odwołanie do obiektu, w którym operacja jest anulowana. |
Powiązane elementy interfejsu API
select | Zdarzenie |
flash.events.Event
właściwość Event.type =
flash.events.Event.SELECT
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9 |
Dysponowana, gdy użytkownik wybierze w oknie przeglądania plików przynajmniej jeden plik do wysłania. (To okno dialogowe otwierane jest w momencie wywołania metod FileReferenceList.browse()
, FileReference.browse()
lub FileReference.download()
). Kiedy użytkownik wybiera plik i potwierdza operację (na przykład klikając opcję Zapisz), obiekt FileReferenceList
wypełniany jest obiektami FileReference reprezentującymi pliki wybrane przez użytkownika.
Event.SELECT
definiuje wartość właściwości type
obiektu zdarzenia select
.
To zdarzenie ma następujące właściwości:
Właściwość | Wartość |
---|---|
bubbles | false |
cancelable | false ; nie ma domyślnego zachowania, które można byłoby anulować. |
currentTarget | Obiekt przetwarzający aktywnie obiekt Event za pomocą detektora zdarzeń. |
target | Obiekt, w którym został wybrany element. |
Powiązane elementy interfejsu API
complete
, które wywoływane jest za każdym razem, kiedy wysyłany jest pojedynczy plik obiektu FileReferenceList. Zdarzenie LIST_COMPLETE
klasy FileReferenceListExample wywoływane jest, kiedy wszystkie pliki obiektu FileReferenceList zostaną wysłane.
Aby uruchomić ten przykład, należy umieścić napisany skrypt w celu zaakceptowania wysyłania plików na stronę http://www.[yourDomain].com/yourUploadHandlerScript.cfm. Może również zaistnieć potrzeba skompilowania pliku SWF, na podstawie lokalizacji pliku SWF i miejsca wysyłania plików, z opcją Zabezpieczenie odtwarzania lokalnego ustawioną na Tylko sieć lokalna lub zaktualizowanie ustawień zabezpieczeń programu Flash® Player w celu zezwolenia temu plikowi na dostęp do sieci. Jeśli serwer, na który wysyłane są pliki, jest serwerem zdalnym i przykład zostanie uruchomiony na komputerze użytkownika, na serwerze musi znajdować się plik 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()); } }
Tue Jun 12 2018, 12:06 PM Z