Pakiet | flash.net |
Klasa | public class URLLoader |
Dziedziczenie | URLLoader EventDispatcher Object |
Podklasy | AVURLLoader |
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Obiekt URLLoader pobiera wszystkie dane z określonego adresu URL, zanim staną się dostępne dla kodu w aplikacjach. Wysyła powiadomienia o postępie pobierania, które można monitorować za pomocą właściwości bytesLoaded
i bytesTotal
, a także za pomocą wywoływanych zdarzeń.
Podczas ładowania bardzo dużych plików wideo, np. plików FLV, mogą pojawić się błędy informujące o braku pamięci.
W przypadku użycia tej klasy w treści aplikacji programu Flash Player lub środowiska AIR w obszarze izolowanym zabezpieczeń aplikacji należy uwzględnić następujący model zabezpieczeń:
- Plik SWF w lokalnym obszarze izolowanym z dostępem do systemu plików nie może wczytywać danych z, i dostarczać danych do, zasobu znajdującego się w obszarze izolowanym sieci.
- Domyślnie wywołujący plik SWF oraz ładowany URL muszą być w tej samej domenie. Na przykład plik SWF na stronie www.adobe.com może ładować dane jedynie ze źródeł, które również znajdują się na stronie www.adobe.com. Aby ładować dane z różnych domen, należy umieścić plik reguł URL na serwerze przechowującym dane.
Więcej informacji na temat zabezpieczeń zawiera odpowiedni temat w Centrum programistów programu Flash Player w kategorii Bezpieczeństwo.
Powiązane elementy interfejsu API
Właściwość | Zdefiniowane przez | ||
---|---|---|---|
bytesLoaded : uint = 0
Ukazuje liczbę bajtów, które zostały pobrane od rozpoczęcia operacji ładowania. | URLLoader | ||
bytesTotal : uint = 0
Ukazuje całkowitą liczbę bajtów pobranych danych. | URLLoader | ||
constructor : Object
Odwołanie do obiektu klasy lub funkcji konstruktora, dotyczące danej instancji obiektu. | Object | ||
data : *
Dane uzyskane w wyniku ładowania. | URLLoader | ||
dataFormat : String = "text"
Decyduje o tym, czy pobierane dane mają postać tekstu (URLLoaderDataFormat.TEXT), surowych danych binarnych (URLLoaderDataFormat.BINARY), czy też zmiennych zakodowanych jako adresy URL (URLLoaderDataFormat.VARIABLES). | URLLoader |
Metoda | Zdefiniowane przez | ||
---|---|---|---|
URLLoader(request:URLRequest = null)
Tworzy nowy obiekt URLLoader. | URLLoader | ||
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void [przesłanianie]
Rejestruje obiekt detektora zdarzeń w obiekcie EventDispatcher, dzięki czemu detektor będzie otrzymywał powiadomienia o zdarzeniu. | URLLoader | ||
Kończy trwającą operację wczytywania. | URLLoader | ||
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 | ||
Wysyła dane i wczytuje je spod określonego adresu URL. | URLLoader | ||
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, gdy wszystkie odebrane dane zostały zdekodowane i związane z właściwością danych obiektu URLLoader. | URLLoader | |||
[zdarzenie broadcast] Wywoływane, gdy program Flash Player lub aplikacja AIR traci fokus w systemie operacyjnym i przechodzi w stan nieaktywny. | EventDispatcher | |||
Wywoływane, jeśli wywołanie metody load() skutkuje próbą uzyskania dostępu do danych za pomocą protokołu HTTP i aplikacja Adobe AIR ma możliwość wykrycia i zwrócenia kodu stanu żądania. | URLLoader | |||
Wywoływane, jeśli wywołanie URLLoader.load() skutkuje próbą dostępu do danych za pośrednictwem protokołu HTTP. | URLLoader | |||
Wywoływane, gdy wywołanie metody URLLoader.load() skutkuje błędem krytycznym, który kończy pobieranie danych. | URLLoader | |||
Wywoływana, gdy operacja pobierania rozpoczyna się od wywołania metody URLLoader.load(). | URLLoader | |||
Wywoływane w trakcie stopniowego ładowania danych. | URLLoader | |||
Wywoływana, jeśli wywołanie metody URLLoader.load() skutkuje próbą pobrania danych z serwera na zewnątrz obszaru izolowanego. | URLLoader |
bytesLoaded | właściwość |
public var bytesLoaded:uint = 0
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Ukazuje liczbę bajtów, które zostały pobrane od rozpoczęcia operacji wczytywania.
bytesTotal | właściwość |
public var bytesTotal:uint = 0
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Ukazuje całkowitą liczbę bajtów pobranych danych. Ta właściwość ma wartość 0, jeśli w danym momencie wykonywana jest operacja load; właściwość zostanie wypełniona po zakończeniu tej operacji. Brak nagłówka Content-Length będzie powodował, że właściwość bytesTotal będzie nieokreślona.
data | właściwość |
public var data:*
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Dane uzyskane w wyniku ładowania. Ta właściwość jest wypełniania dopiero po zakończeniu operacji load. Format danych zależy od ustawienia właściwości dataFormat
:
Jeśli wartością właściwości dataFormat
jest URLLoaderDataFormat.TEXT
, odebranymi danymi jest ciąg znaków zawierający tekst załadowanego pliku.
Jeśli wartością właściwości dataFormat
jest URLLoaderDataFormat.BINARY
, odebranymi danymi jest obiekt ByteArray zawierający nieprzetworzone dane binarne.
Jeśli wartością właściwościdataFormat
jest URLLoaderDataFormat.VARIABLES
, odebranymi danymi jest obiekt URLVariables zawierający zmienne zakodowane w postaci URL.
Powiązane elementy interfejsu API
Przykład ( Sposób korzystania z tego przykładu )
//params.txt is a local file that includes: firstName=Tom&lastName=Jones var lbl:TextField = new TextField(); var urlRequest:URLRequest = new URLRequest("params.txt"); var urlLoader:URLLoader = new URLLoader(); urlLoader.dataFormat = URLLoaderDataFormat.VARIABLES; urlLoader.addEventListener(Event.COMPLETE, urlLoader_complete); urlLoader.load(urlRequest); function urlLoader_complete(evt:Event):void { lbl.text = urlLoader.data.lastName + "," + urlLoader.data.firstName; addChild(lbl); }
dataFormat | właściwość |
public var dataFormat:String = "text"
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Decyduje o tym, czy pobierane dane mają postać tekstu (URLLoaderDataFormat.TEXT
), nieprzetworzonych danych (URLLoaderDataFormat.BINARY
), czy też zmiennych zakodowanych w postaci URL (URLLoaderDataFormat.VARIABLES
).
Jeśli wartością właściwości dataFormat
jest URLLoaderDataFormat.TEXT
, odebranymi danymi jest ciąg znaków zawierający tekst załadowanego pliku.
Jeśli wartością właściwości dataFormat
jest URLLoaderDataFormat.BINARY
, odebranymi danymi jest obiekt ByteArray zawierający nieprzetworzone dane binarne.
Jeśli wartością właściwościdataFormat
jest URLLoaderDataFormat.VARIABLES
, odebranymi danymi jest obiekt URLVariables zawierający zmienne zakodowane w postaci URL.
Wartością domyślną jest URLLoaderDataFormat.TEXT.
Powiązane elementy interfejsu API
Przykład ( Sposób korzystania z tego przykładu )
var PATH:String = "lorem.txt"; var urlRequest:URLRequest = new URLRequest(PATH); var urlLoader:URLLoader = new URLLoader(); urlLoader.dataFormat = URLLoaderDataFormat.TEXT; // default urlLoader.addEventListener(Event.COMPLETE, urlLoader_complete); urlLoader.load(urlRequest); function urlLoader_complete(evt:Event):void { textArea.text = urlLoader.data; }
URLLoader | () | Konstruktor |
public function URLLoader(request:URLRequest = null)
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Tworzy nowy obiekt URLLoader.
Parametryrequest:URLRequest (default = null ) — Obiekt URLRequest określający adresy URL do pobrania. Jeśli ten parametr zostanie pominięty, żadna operacja load nie zostanie rozpoczęta. Jeśli zostanie określony, operacja load rozpocznie się natychmiastowo (aby uzyskać więcej informacji, należy zapoznać się z sekcją load ).
|
Powiązane elementy interfejsu API
addEventListener | () | metoda |
override public function addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Rejestruje obiekt detektora zdarzenia w obiekcie EventDispatcher, dzięki czemu detektor będzie otrzymywał powiadomienia o zdarzeniu. We wszystkich węzłach listy wyświetlania można rejestrować detektory zdarzeń reagujące na zdarzenia konkretnego typu, znajdujące się w określonej fazie i mające określony priorytet.
Po pomyślnym zarejestrowaniu detektora zdarzeń nie można zmienić jego priorytetu poprzez dodatkowe wywołania metody addEventListener()
. Aby zmienić priorytet detektora, należy najpierw wywołać metodę removeListener()
. Następnie można ponownie zarejestrować detektor z nowym poziomem priorytetu.
Należy pamiętać, że po zarejestrowaniu detektora późniejsze wywołania metody addEventListener()
z różnymi wartościami type
albo useCapture
powodują rejestrowanie odrębnych detektorów. Na przykład detektor zarejestrowany z parametrem useCapture
ustawionym na true
wykrywa tylko zdarzenia w fazie przechwytywania. Po ponownym wywołaniu metody addEventListener()
z tym samym obiektem detektora, ale z parametrem useCapture
ustawionym na false
będą istniały dwa odrębne detektory: jeden wykrywający zdarzenia w fazie przechwytywania, a drugi wykrywający zdarzenia w fazach miejsca docelowego i propagacji.
Nie można zarejestrować detektora zdarzeń, który wykrywałby tylko zdarzenia w fazie miejsca docelowego lub tylko zdarzenia w fazie propagacji. Te fazy są sprzężone podczas rejestracji, ponieważ propagacja zachodzi tylko w przodkach węzła miejsca docelowego.
Gdy detektor zdarzeń przestanie być potrzebny, należy go usunąć, wywołując metodę removeEventListener()
; w przeciwnym razie mogą wystąpić problemy w zarządzaniu pamięcią. Detektory zdarzeń nie są automatycznie usuwane z pamięci, ponieważ proces czyszczenia pamięci nie usuwa detektora, pod warunkiem że istnieje obiekt wywołujący (o ile dla parametru useWeakReference
ustawiona jest wartość true
).
Skopiowanie instancji klasy EventDispatcher nie powoduje skopiowania detektorów zdarzeń dołączonych do tej instancji. (Jeśli utworzono nowy węzeł, dla którego potrzebny jest detektor zdarzeń, należy dołączyć detektor po utworzeniu węzła). Jednak przeniesienie instancji klasy EventDispatcher powoduje również przeniesienia dołączonych do niej detektorów zdarzeń
Jeśli detektor zdarzeń jest rejestrowany w węźle w momencie, gdy ten węzeł przetwarza zdarzenie, detektor nie zostanie wywołany w bieżącej fazie, ale może być wywołany w późniejszej fazie przepływu zdarzeń, np. w fazie propagacji.
Jeśli detektor zdarzeń zostanie usunięty z węzła w momencie, gdy ten węzeł przetwarza zdarzenie, zostanie wywołany przez bieżące operacje. Raz usunięty detektor zdarzeń nie jest nigdy ponownie wywoływany (chyba że zostanie ponownie zarejestrowany na potrzeby dalszego etapu wykonania programu).
Parametry
type:String — Typ zdarzenia.
| |
listener:Function — Funkcja detektora, który przetwarza zdarzenie. Ta funkcja musi przyjmować obiekt Event jako swój jedyny parametr i nie może zwracać żadnych wyników, tak jak ilustruje to poniższy przykład:
function(evt:Event):void Funkcja może mieć dowolną nazwę. | |
useCapture:Boolean (default = false ) —
Określa, czy detektor działa w fazie przechwytywania, czy w fazach miejsca docelowego i propagacji. Jeżeli parametr useCapture jest ustawiony na true , wówczas detektor przetwarza zdarzenie tylko w trakcie fazy przechwytywania, a nie w trakcie fazy miejsca docelowego i propagacji. Jeżeli parametr useCapture ma wartość false , wówczas detektor przetwarza zdarzenie tylko w trakcie fazy miejsca docelowego i propagacji. W celu wykrywania zdarzenia we wszystkich trzech fazach należy wywołać metodę addEventListener dwa razy — raz z parametrem useCapture ustawionym na true , a następnie ponownie, z parametrem useCapture ustawionym na false .
| |
priority:int (default = 0 ) — Poziom priorytetu detektora zdarzeń. Priorytet ma postać 32-bitowej liczby całkowitej ze znakiem. Im wyższa jest liczba, tym wyższy priorytet. Wszystkie detektory z priorytetem n są przetwarzane przed detektorami z priorytetem n-1. Jeżeli dwa lub większa liczba detektorów ma ten sam priorytet, będą one przetwarzane w kolejności, w jakiej zostały dodane. Priorytet domyślny to 0.
| |
useWeakReference:Boolean (default = false ) — Określa, czy odwołanie do detektora jest mocne, czy słabe. Odwołanie mocne (domyślnie) zapobiega usunięciu detektora przy okazji porządkowania pamięci. Odwołanie słabe temu nie zapobiega. Funkcje składowe na poziomie klasy nie podlegają porządkowaniu pamięci, zatem można ustawić właściwość |
close | () | metoda |
public function close():void
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Kończy trwającą operację ładowania. Wszystkie operacje load wykonywane w danym momencie zostaną natychmiast zakończone. Jeśli żaden adres URL nie jest strumieniowany, zgłoszony zostanie błąd niepoprawnego strumienia.
load | () | metoda |
public function load(request:URLRequest):void
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Wysyła dane i ładuje je spod określonego adresu URL. W zależności od wartości przekazanej do właściwości dataFormat
odebranymi danymi mogą być tekst, nieprzetworzone dane binarne lub zmienne zakodowane w postaci URL. Należy zauważyć, że wartością domyślną właściwości dataFormat
jest text. Jeśli dane mają być wysyłane do określonego adresu URL, należy ustawić właściwość data
w obiekcie URLRequest.
Uwaga: jeśli ładowany plik zawiera znaki, które nie są znakami ASCII (co zdarza się w wielu językach innych niż angielski), zalecane jest zapisanie pliku z kodowaniem w systemie UTF-8 lub UTF-16.
Plik SWF w lokalnym obszarze izolowanym z dostępem do systemu plików nie może wczytywać danych z, i dostarczać danych do, zasobu znajdującego się w obszarze izolowanym sieci.
Domyślnie wywołujący plik SWF oraz ładowany URL muszą być w tej samej domenie. Na przykład plik SWF na stronie www.adobe.com może ładować dane jedynie ze źródeł, które również znajdują się na stronie www.adobe.com. Aby ładować dane z różnych domen, należy umieścić plik reguł URL na serwerze przechowującym dane.
Nie można połączyć się z portem, który zazwyczaj jest zastrzeżony. Pełną listę zablokowanych portów zawiera sekcja „Ograniczanie sieciowych interfejsów API” w publikacji ActionScript 3.0 — podręcznik dla programistów.
W programie Flash Player 10 i nowszych wersjach, jeśli użyty zostanie wieloczęściowy nagłówek Content-Type (np. "multipart/form-data"), w którym przesyłane są pliki (wskazywane przez parametr "filename" w nagłówku "content-disposition" w treści operacji POST), wówczas operacja POST podlega regułom zabezpieczeń zastosowanym do wysyłania plików:
- Operację POST należy wykonać w odpowiedzi na działanie zainicjowane przez użytkownika, np. kliknięcie myszy lub naciśnięcie klawisza.
- Jeśli operacja POST jest operacją międzydomenową (cel operacji POST nie znajduje się na tym samym serwerze, co plik SWF, który wysyła żądanie POST), docelowy serwer musi dostarczyć plik reguł URL, który zezwoli na międzydomenowy dostęp.
Dla dowolnego wieloczęściowego nagłówka Content-Type również składnia musi być poprawna (zgodnie ze standardami RFC2046). Jeśli składnia okaże się niepoprawna, operacja POST będzie podlegać regułom zabezpieczeń stosowanym do wysyłania plików.
Więcej informacji na temat zabezpieczeń zawiera odpowiedni temat w Centrum programistów programu Flash Player w kategorii Bezpieczeństwo.
Parametry
request:URLRequest — Obiekt URLRequest określający adresy URL do pobrania.
|
Zdarzenia
complete: — Wywoływane po pomyślnym wczytaniu danych.
| |
httpStatus: — Jeśli dostęp próbowano uzyskać za pomocą protokołu HTTP i bieżące środowisko programu Flash Player obsługuje pobieranie kodów stanu, istnieje możliwość odebrania tych zdarzeń poza zdarzeniami complete i error .
| |
ioError: — Operacja load nie mogła zostać ukończona.
| |
progress: — Wywoływane w trakcie stopniowego wczytywania danych.
| |
securityError: — Operacja load usiłowała pobrać dane z serwera na zewnątrz obszaru izolowanego. Można obejść ten problem używając pliku reguł na serwerze.
| |
securityError: — Operacja load usiłowała załadować plik SWZ (składnik platformy Adobe), ale certyfikat jest nieważny lub skrót jest niezgodny ze składnikiem.
| |
open: — Wywoływane po rozpoczęciu ładowania.
| |
httpResponseStatus: — Wywoływane, jeśli wywołanie metody load() skutkuje próbą uzyskania dostępu do danych za pomocą protokołu HTTP i aplikacja Adobe AIR ma możliwość wykrycia i zwrócenia kodu stanu żądania.
|
Zgłasza
ArgumentError — Obiekty URLRequest.requestHeader mogą nie zawierać pewnych niedozwolonych nagłówków żądań HTTP. Aby uzyskać więcej informacji na ten temat, należy zapoznać się z opisem klasy URLRequestHeader.
| |
MemoryError — Ten błąd może wystąpić z następujących przyczyn: 1) program Flash Player lub środowisko AIR nie może przekonwertować parametru URLRequest.data z kodowania UTF8 na MBCS. Ten błąd ma zastosowanie, gdy obiekt URLRequest przekazany do metody load() został ustawiony, aby przetwarzać operację GET , i jeśli właściwość System.useCodePage ma wartość true . 2) Program Flash Player lub środowisko AIR nie może zaalokować pamięci dla danych operacji POST . Ten błąd ma zastosowanie, gdy obiekt URLRequest przekazany do metody load został ustawiony, aby przetwarzać operację POST .
| |
SecurityError — Niezaufane pliki lokalne mogą nie mieć możliwości komunikowania się z Internetem. Można to obejść przez zaklasyfikowanie tego pliku jako lokalnego pliku z dostępem do sieci lub pliku zaufanego.
| |
SecurityError — Podejmowana jest próba połączenia się z portem, który zazwyczaj jest zastrzeżony. Pełną listę zablokowanych portów zawiera sekcja „Ograniczanie sieciowych interfejsów API” w publikacji ActionScript 3.0 — Podręcznik programistów.
| |
TypeError — Wartością przekazanego parametru request lub właściwością URLRequest.url obiektu URLRequest jest null .
|
Powiązane elementy interfejsu API
Przykład ( Sposób korzystania z tego przykładu )
W celu identyfikacji lokalizacji pliku XML tworzony jest obiekt URLRequest
, który dla tego przykładu znajduje się w tym samym katalogu co plik SWF. Plik jest ładowany w bloku try...catch
w celu przechwycenia błędu, który może się pojawić. (W tym miejscu przechwytywane są błędy SecurityError
). Jeśli pojawi się zdarzenie IO_ERROR
, wywołana zostanie metoda errorHandler()
, która zapisuje komunikat błędu w polu tekstowym xmlTextField
. Po odebraniu i umieszczeniu danych XML we właściwości data obiektu URLLoader o nazwie loader
, wywoływane jest zdarzenie Event.COMPLETE
oraz metoda loaderCompleteHandler()
.
Blok try...catch
w metodzie loaderCompleteHandler()
jest używany do przechwytywania wszelkich błędów analizy, które mogą pojawić się podczas przekształcania danych ładowanych z pliku do obiektu XML. Następnie metoda readNodes()
przechodzi rekursywnie przez wszystkie elementy węzłów dokumentu XML i dołącza pole tekstowe xmlTextField
zawierające listę pierwszych atrybutów wszystkich elementów.
package { import flash.display.Sprite; import flash.events.Event; import flash.net.URLLoader; import flash.net.URLRequest; import flash.text.TextField; import flash.text.TextFieldAutoSize; import flash.xml.*; import flash.events.IOErrorEvent; public class URLLoader_loadExample extends Sprite { private var xmlTextField:TextField = new TextField(); private var externalXML:XML; private var loader:URLLoader; public function URLLoader_loadExample() { var request:URLRequest = new URLRequest("xmlFile.xml"); loader = new URLLoader(); try { loader.load(request); } catch (error:SecurityError) { trace("A SecurityError has occurred."); } loader.addEventListener(IOErrorEvent.IO_ERROR, errorHandler); loader.addEventListener(Event.COMPLETE, loaderCompleteHandler); xmlTextField.x = 10; xmlTextField.y = 10; xmlTextField.background = true; xmlTextField.autoSize = TextFieldAutoSize.LEFT; addChild(xmlTextField); } private function loaderCompleteHandler(event:Event):void { try { externalXML = new XML(loader.data); readNodes(externalXML); } catch (e:TypeError) { trace("Could not parse the XML file."); } } private function readNodes(node:XML):void { for each (var element:XML in node.elements()) { xmlTextField.appendText(element.attributes()[0] + "\n"); readNodes(element); } } private function errorHandler(e:IOErrorEvent):void { xmlTextField.text = "Had problem loading the XML File."; } } }
complete | Zdarzenie |
flash.events.Event
właściwość Event.type =
flash.events.Event.COMPLETE
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Wywoływane, gdy wszystkie odebrane dane zostały zdekodowane i związane z właściwością danych obiektu URLLoader. Dostęp do odebranych danych można uzyskać po wywołaniu tego zdarzenia.
StałaEvent.COMPLETE
definiuje wartość właściwości type
obiektu zdarzenia complete
.
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 sieciowy, którego ładowanie zostało ukończone. |
Powiązane elementy interfejsu API
httpResponseStatus | Zdarzenie |
flash.events.HTTPStatusEvent
właściwość HTTPStatusEvent.type =
flash.events.HTTPStatusEvent.HTTP_RESPONSE_STATUS
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 1.0, AIR 1.0, Flash Lite 4 |
Wywoływane, jeśli wywołanie metody load() skutkuje próbą uzyskania dostępu do danych za pomocą protokołu HTTP i aplikacja Adobe AIR ma możliwość wykrycia i zwrócenia kodu stanu żądania.
W przeciwieństwie do zdarzeniahttpStatus
, zdarzenie httpResponseStatus
jest dostarczane przed danymi odpowiedzi. Ponadto zdarzenia httpResponseStatus
zawiera wartości właściwości responseHeaders
i responseURL
(niezdefiniowane w przypadku zdarzenia httpStatus
). Należy zauważyć, że ewentualne zdarzenie httpResponseStatus
zostanie wysłane przed (i oprócz) wszelkich zdarzeń ukończenia
lubbłędu
.
Stała HTTPStatusEvent.HTTP_RESPONSE_STATUS
definiuje wartość właściwości type
obiektu zdarzenia httpResponseStatus
.
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ń. |
responseURL | Adres URL, z którego została zwrócona odpowiedź. |
responseHeaders | Nagłówki zwróconej odpowiedzi w postaci tablicy obiektów URLRequestHeader. |
status | Zwrócony przez serwer kod stanu HTTP. |
redirected | Czy odpowiedź jest wynikiem przekierowania. |
target | Obiekt sieciowy odbierający kod stanu HTTP. |
Powiązane elementy interfejsu API
httpStatus | Zdarzenie |
flash.events.HTTPStatusEvent
właściwość HTTPStatusEvent.type =
flash.events.HTTPStatusEvent.HTTP_STATUS
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Wywoływane, jeśli wywołanie URLLoader.load() skutkuje próbą dostępu do danych za pośrednictwem protokołu HTTP. W przypadku treści działającej w programie Flash Player to zdarzenie jest wywoływane tylko wtedy, gdy bieżące środowisko Flash Player jest w stanie wykryć i zwrócić kod statusu dla żądania. (Niektóre środowiska przeglądarek mogą nie być w stanie zapewnić tych informacji). Należy zauważyć, że ewentualne zdarzenie httpStatus
zostanie wysłane przed (i oprócz) wszelkich zdarzeń complete
luberror
.
HTTPStatusEvent.HTTP_STATUS
definiuje wartość type
właściwości obiektu zdarzenia httpStatus
.
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ń. |
status | Zwrócony przez serwer kod stanu HTTP. |
target | Obiekt sieciowy odbierający kod stanu HTTP. |
Powiązane elementy interfejsu API
ioError | Zdarzenie |
flash.events.IOErrorEvent
właściwość IOErrorEvent.type =
flash.events.IOErrorEvent.IO_ERROR
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Wywoływane, gdy wywołanie metody URLLoader.load() skutkuje błędem krytycznym, który kończy pobieranie danych.
Definiuje wartość właściwościtype
obiektu zdarzenia ioError
.
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ń. |
errorID | Numer referencyjny skojarzony z konkretnym błędem (tylko w środowisku AIR). |
target | Obiekt sieciowy, w którym wystąpił błąd wejścia/wyjścia. |
text | Tekst, który ma być wyświetlany w charakterze komunikatu o błędzie. |
Powiązane elementy interfejsu API
open | Zdarzenie |
flash.events.Event
właściwość Event.type =
flash.events.Event.OPEN
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Wywoływane, gdy operacja pobierania rozpoczyna się od wywołania metody URLLoader.load()
Event.OPEN
definiuje wartość właściwości type
obiektu zdarzenia open
.
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 sieciowy, który otworzył połączenie. |
Powiązane elementy interfejsu API
progress | Zdarzenie |
flash.events.ProgressEvent
właściwość ProgressEvent.type =
flash.events.ProgressEvent.PROGRESS
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Wywoływane w trakcie stopniowego wczytywania danych.
Należy zauważyć, że korzystając z obiektu URLLoader, nie jest możliwe uzyskanie dostępu do danych, dopóki nie zostaną one całkowicie odebrane. Dlatego zdarzenie progress służy jedynie do powiadamiania o postępie pobierania. Aby uzyskać dostęp do danych przed ich całkowitym pobraniem, należy użyć obiektu URLStream.
Definiuje wartość właściwościtype
obiektu zdarzenia progress
.
To zdarzenie ma następujące właściwości:
Właściwość | Wartość |
---|---|
bubbles | false |
bytesLoaded | Liczba elementów lub bajtów załadowanych w momencie, w którym detektor przetwarza zdarzenie. |
bytesTotal | Łączna liczba elementów lub bajtów, które zostaną ostatecznie załadowane w razie pomyślnego zakończenia operacji ładowania. |
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 informujący o postępie. |
Powiązane elementy interfejsu API
securityError | Zdarzenie |
flash.events.SecurityErrorEvent
właściwość SecurityErrorEvent.type =
flash.events.SecurityErrorEvent.SECURITY_ERROR
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Wywoływane, jeśli wywołanie metody URLLoader.load() skutkuje próbą pobrania danych z serwera na zewnątrz obszaru izolowanego. Wywoływane również, gdy wywołanie metody URLLoader.load()
skutkuje próbą załadowania pliku SWZ, a certyfikat jest nieważny lub skrót jest niezgodny ze składnikiem.
SecurityErrorEvent.SECURITY_ERROR
definiuje wartość właściwości type
obiektu zdarzenia securityError
.
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 sieciowy zgłaszający błąd zabezpieczeń. |
text | Tekst, który ma być wyświetlany w charakterze komunikatu o błędzie. |
Powiązane elementy interfejsu API
Uwaga: aby uruchomić ten przykład, należy umieścić plik o nazwie urlLoaderExample.txt w tym samym katalogu, co plik SWF. Plik powinien zawierać tylko następujący wiersz tekstu: answer=42&question=unknown
Przykładowy kod realizuje następujące zadania:
- Funkcja konstruktora tworzy instancję URLLoader o nazwie
loader
oraz instancję URLRequest o nazwierequest
, która zawiera lokalizację i nazwę pliku do ładowania. - Obiekt
loader
przekazywany jest do metodyconfigureListeners()
, która dodaje detektory dla każdego z obsługiwanych zdarzeń URLLoader: - Następnie obiekt
request
jest przekazywany do metodyloader.load()
, która ładuje plik tekstowy. - Po zakończeniu ładowania przez obiekt URLLoader pliku tekstowego, wywoływane jest zdarzenie
Event.COMPLETE
, które powoduje wywołanie metodycompleteHandler()
. MetodacompleteHandler()
tworzy obiekt URLVariables z tekstu załadowanego z pliku. Obiekt URLVariables przekształca pary nazwa/wartość zakodowane w postaci URL na właściwości ActionScript, aby ułatwić sterowanie załadowanymi danymi.
package { import flash.display.Sprite; import flash.events.*; import flash.net.*; public class URLLoaderExample extends Sprite { private loader:URLoader; public function URLLoaderExample() { loader = new URLLoader(); configureListeners(loader); var request:URLRequest = new URLRequest("urlLoaderExample.txt"); try { loader.load(request); } catch (error:Error) { trace("Unable to load requested document."); } } private function configureListeners(dispatcher:IEventDispatcher):void { dispatcher.addEventListener(Event.COMPLETE, completeHandler); dispatcher.addEventListener(Event.OPEN, openHandler); dispatcher.addEventListener(ProgressEvent.PROGRESS, progressHandler); dispatcher.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler); dispatcher.addEventListener(HTTPStatusEvent.HTTP_STATUS, httpStatusHandler); dispatcher.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler); } private function completeHandler(event:Event):void { var loader:URLLoader = URLLoader(event.target); trace("completeHandler: " + loader.data); var vars:URLVariables = new URLVariables(loader.data); trace("The answer is " + vars.answer); } private function openHandler(event:Event):void { trace("openHandler: " + event); } private function progressHandler(event:ProgressEvent):void { trace("progressHandler loaded:" + event.bytesLoaded + " total: " + event.bytesTotal); } private function securityErrorHandler(event:SecurityErrorEvent):void { trace("securityErrorHandler: " + event); } private function httpStatusHandler(event:HTTPStatusEvent):void { trace("httpStatusHandler: " + event); } private function ioErrorHandler(event:IOErrorEvent):void { trace("ioErrorHandler: " + event); } } }
Tue Jun 12 2018, 12:06 PM Z