Pakiet | flash.media |
Klasa | public class AVURLStream |
Dziedziczenie | AVURLStream URLStream EventDispatcher Object |
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Operacji read w klasie URLStream nie można zablokować. Oznacza to, że w celu określenia, czy dostępna jest wystarczająca ilość danych przed ich odczytem, należy skorzystać z właściwości bytesAvailable
. Jeśli niewystarczająca ilość danych jest dostępna, zostanie zgłoszony wyjątek EOFError
.
Wszystkie dane binarne kodowane są domyślnie w formacie big-endian z najbardziej znaczącym bajtem na początku.
Reguły zabezpieczeń stosowane do pobierania adresów URL za pomocą klasy URLStream są identyczne z regułami stosowanymi do obiektów URLLoader. Pliki reguł można pobrać w razie potrzeby. Reguły zabezpieczeń plików lokalnych są wymuszane i w razie potrzeby zgłaszane są ostrzeżenia o zabezpieczeniach.
Powiązane elementy interfejsu API
URLRequest
Właściwość | Zdefiniowane przez | ||
---|---|---|---|
bytesAvailable : uint [tylko do odczytu]
Zwraca liczbę bajtów, które można odczytać z bufora wejściowego. | URLStream | ||
connected : Boolean [tylko do odczytu]
Wskazuje, czy ten obiekt URLStream jest aktualnie podłączony. | URLStream | ||
constructor : Object
Odwołanie do obiektu klasy lub funkcji konstruktora, dotyczące danej instancji obiektu. | Object | ||
cookieHeader : String [tylko do zapisu] | AVURLStream | ||
endian : String
Przedstawia porządek bajtów danych. | URLStream | ||
objectEncoding : uint
Zapewnia kontrolę nad wersją formatu AMF (Action Message Format) stosowaną przy zapisywaniu i odczycie obiektu. | URLStream |
Metoda | Zdefiniowane przez | ||
---|---|---|---|
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 | ||
Natychmiast zamyka strumień i anuluje operację pobierania. | URLStream | ||
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 | ||
[przesłanianie]
Rozpoczyna pobieranie adresu URL określonego przez parametr żądanie. | AVURLStream | ||
Wskazuje, czy określona właściwość istnieje i jest przeliczalna. | Object | ||
Czyta ze strumienia wartość typu Boolean. | URLStream | ||
Czyta ze strumienia oznakowany bajt. | URLStream | ||
Czyta ze strumienia liczbę bajtów określoną przez parametr długości. | URLStream | ||
Czyta ze strumienia liczbę zmiennoprzecinkową o podwójnej precyzji (wg normy IEEE 754). | URLStream | ||
Czyta ze strumienia liczbę zmiennoprzecinkową o pojedynczej precyzji (wg normy IEEE 754). | URLStream | ||
Czyta ze strumienia 32-bitową liczbę całkowitą ze znakiem. | URLStream | ||
Czyta ze strumienia bajtów wielobajtowy ciąg znaków określonej długości, przy użyciu określonego zestawu znaków. | URLStream | ||
readObject():*
Czyta z gniazda obiekt zakodowany w formacie AMF (Action Message Format). | URLStream | ||
Czyta ze strumienia 16-bitową liczbę całkowitą ze znakiem. | URLStream | ||
Czyta ze strumienia nieoznakowany bajt. | URLStream | ||
Czyta ze strumienia 32-bitową liczbę całkowitą bez znaku. | URLStream | ||
Czyta ze strumienia 16-bitową liczbę całkowitą bez znaku. | URLStream | ||
Czyta ze strumienia ciąg znaków UTF-8. | URLStream | ||
Czyta ze strumienia sekwencję bajtów UTF-8 i zwraca ciąg znaków. | URLStream | ||
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 |
cookieHeader | właściwość |
load | () | metoda |
override public function load(request:URLRequest):void
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Rozpoczyna pobieranie adresu URL określonego w parametrze request
.
Uwaga: jeśli ładowany plik zawiera znaki, które nie są znakami ASCII (co zdarza się w wielu nieangielskich językach), zalecane jest zapisanie pliku z kodowaniem w systemie UTF-8 lub UTF-16 jako przeciwnego w stosunku do formatu niebędącego formatem Unicode np. ASCII.
Jeśli operacja pobierania natychmiast zakończy się niepowodzeniem, zgłoszony zostanie wyjątek IOError lub SecurityError (wraz z błędem zabezpieczeń pliku lokalnego) opisujący niepowodzenie. W innym wypadku wywołane zostanie zdarzenieopen
, jeśli pobieranie adresu URL rozpocznie się pomyślnie lub zdarzenie error, jeśli pojawi się błąd.
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.
W programie Flash Player nie można nawiązywać połączeń z portami, które są zazwyczaj zastrzeżone. Pełną listę zablokowanych portów zawiera sekcja „Ograniczanie sieciowych interfejsów API” w publikacji ActionScript 3.0 — Podręcznik programistów.
W programie Flash Player istnieje możliwość zapobieżenia użyciu tej metody przez plik SWF; należy w tym celu ustawić parametr allowNetworking
znaczników object
oraz embed
na stronie HTML zawierającej treść SWF.
W programie Flash Player 10 i późniejszych wersjach oraz w środowisku AIR 1.5 i późniejszych 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.
Te reguły mają także zastosowanie do treści AIR w nieaplikacyjnych obszarach izolowanych zabezpieczeń. Jednak w aplikacji Adobe AIR treść obszaru izolowanego aplikacji (zawartość instalowana razem z aplikacją AIR) nie podlega ograniczeniom wynikającym z tych reguł zabezpieczeń.
Więcej informacji na temat zabezpieczeń zawiera odpowiedni temat w witrynie Flash Player Developer Center: Bezpieczeństwo.
W środowisku AIR obiekt URLRequest może być zarejestrowany jako odbiorca zdarzeń statusu httpResponse
. W przeciwieństwie do zdarzenia httpStatus
, 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
.
Jeśli faktycznie istnieje detektor zdarzeń httpResponseStatus
, treść komunikatu odpowiedzi jest zawsze wysyłana, a odpowiedzi z kodem statusu HTTP zawsze powodują wywołanie zdarzenia complete
. I to niezależnie od tego, czy kod statusu HTTP w odpowiedzi wskazuje na powodzenie, czy na błąd.
W środowisku AIR, jeśli nie istnieje detektor zdarzeń httpResponseStatus
, zachowanie zależy od wersji pliku SWF:
- W przypadku treści SWF 9 treść komunikatu odpowiedzi HTTP jest wysyłana tylko wtedy, gdy kod statusu HTTP w odpowiedzi wskazuje na powodzenie. W przeciwnym razie (jeśli wystąpił błąd), treść nie jest wysyłana, a obiekt URLRequest wywołuje zdarzenie IOError.
- W przypadku treści SWF 10 treść komunikatu odpowiedzi HTTP jest zawsze wysyłana. Jeśli wystąpi błąd, obiekt URLRequest wywołuje zdarzenie IOError.
Parametry
request:URLRequest — Obiekt URLRequest określający adresy URL do pobrania. Jeśli wartością tego parametru lub właściwości URLRequest.url przekazanego obiektu URLRequest jest wartość null , aplikacja zgłosi błąd wskazujący wartość null.
|
Zdarzenia
complete: — Wywoływane po pomyślnym załadowaniu danych. Jeśli istnieje detektor zdarzeń httpResponseStatus , obiekt URLRequest wywołuje także zdarzenie complete za każdym razem, gdy kod statusu odpowiedzi HTTP wskazuje na powodzenie lub na błąd.
| |
httpStatus: — Jeśli dostęp próbowano uzyskać za pomocą protokołu HTTP i bieżące środowisko obsługuje pobieranie kodów stanu, istnieje możliwość odebrania tych zdarzeń poza zdarzeniami i complete i error .
| |
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.
| |
ioError: — Operacja load nie mogła zostać ukończona.
| |
open: — Wywoływane po rozpoczęciu wczytywania.
| |
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.
|
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 pojawić się z następujących powodów:
| |
SecurityError — Niezaufane lokalne pliki SWF mogą nie mieć możliwości komunikowania się z Internetem. Można to obejść przez zaklasyfikowanie tego pliku SWF 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.
|
Tue Jun 12 2018, 12:06 PM Z