Thursday 30 November 2017

Urlloader as3 opcje binarne


Mam dane XML w AS3, które muszą być skompresowane, zatwierdzone w moim aplecie Engine App aplikacji Java, a następnie zapisane w pliku w Google Cloud Storage. Później ten plik zostanie otwarty i zdekompresowany przez klienta AS3. Proces działa, jeśli robię to za pomocą zwykłego XML lub tekstu, ale jeśli I ByteArraycompresuje dane, to umiera podczas ByteArrayuncompress z wystąpił błąd dekompresji danych. Próbowałem już ustawić typ zawartości i typ MIME w różnych punktach, a także kodowanie za pomocą Base64, ale każda próba wydaje się łamać w inny sposób i nigdy nie otrzymuję tego samego XML, który wysłałem. Czy muszę używać wieloczęściowego? Kompresuję na serwerze Co najlepiej do tego służy Wysyłanie danych z AS3: Odbieranie go w serwletce Java i tworzenie pliku: Otwieranie nowego pliku w AS3: URLLoaderDataFormat - AS3 Określa, że ​​pobrane dane są odbierane jako zmienne zakodowane za pomocą adresu URL . W poniższym przykładzie użyto klasy URLLoaderDataFormatExample w celu wyświetlenia formatu danych i informacji o stanie dla pliku załadowanego w środowisku wykonawczym. Można to zrobić, wykonując następujące kroki: Konstruktor klasy tworzy moduł ładujący o nazwie URLLoader o nazwie loader i instancję URLRequest o nazwie request. która jest lokalizacją i nazwą pliku, który ma zostać załadowany. Obiekt modułu ładującego jest przekazywany do metody configureListeners (), która dodaje detektory dla każdego z obsługiwanych zdarzeń URLLoader: completeHandler (). wyszukuje pełne zdarzenie, które jest wywoływane po pomyślnym załadowaniu pliku TextFile. txt. openHandler (). nasłuchuje zdarzenia otwartego, wysyłanego po rozpoczęciu pobierania (do odtwarzacza) pliku TextFile. txt. progressHandler (). nasłuchuje zdarzeń postępu, wywoływanych, gdy dane są odbierane wraz z postępem pobierania. securityErrorHandler (). nasłuchuje zdarzeń securityError, które byłyby wywoływane, gdyby dostęp do pliku tekstowego był możliwy z niepoprawnym lokalnym ustawieniem bezpieczeństwa odtwarzania. httpStatusHandler (). nasłuchuje zdarzeń zdarzenia httpStatusHandler, które nie będą wysyłane w tym przypadku, ponieważ plik TextFile. txt jest lokalny. ioErrorHandler (). nasłuchuje zdarzeń ioError, które miałyby miejsce tylko wtedy, gdy wystąpił poważny problem z plikiem, na przykład w przypadku jego braku. Obiekt żądania jest następnie przekazywany do metody loader. load (), która ładuje plik tekstowy do pamięci za pomocą obiektu DisplayObject. Uwagi: Należy skompilować plik SWF z ustawieniami zabezpieczeń lokalnego odtwarzania, aby uzyskać dostęp tylko do plików lokalnych. W tym przykładzie plik o nazwie TextFile. txt należy umieścić w tym samym katalogu, co plik SWF. Jeśli chcesz zobaczyć ten przykład identyfikujący pliki z danymi binarnymi lub zakodowanymi w URL, musisz podać plik w odpowiednim formacie danych i zmienić plik TextFile. txt na nazwę i lokalizację nowego pliku. copy 2018 Adobe Systems Incorporated. Wszelkie prawa zastrzeżone. Poniedziałek 12 2018, 01:20 PM -08: 00Ładowanie zewnętrznego tekstu we Flashu Korzystanie z AS3 URLLoader Flash jest w stanie ładować zewnętrzną zawartość tekstową w czasie wykonywania przy użyciu klasy URLLoader ActionScript 3. Ładowanie zewnętrznego tekstu w czasie wykonywania to technika używana do tworzenia filmów Flash, które można łatwo aktualizować bez potrzeby wracania do FLA. Klasa URLLoader jest odpowiedzialna za ładowanie całej zawartości tekstowej, która oprócz zwykłych plików tekstowych zawiera także XML. HTML i CSS. Tekst wyświetlany w poniższym filmie Flash jest ładowany z oddzielnego pliku tekstowego za każdym razem, gdy wyświetlany jest ten plik SWF. Ten samouczek nauczy Cię, jak używać klasy URLLoader do ładowania podstawowych tekstów i zmiennych z pliku tekstowego. Jest to początkowy samouczek dotyczący języka ActionScript 3.0, który wymaga znajomości tylko podstaw obsługi zdarzeń w systemie AS3, aby móc go śledzić. URLLoader służy do ładowania tylko treści tekstowych. Jeśli chcesz wiedzieć, jak załadować zawartość graficzną, zapoznaj się z samouczkiem klasy AS3 Loader. Nasz samouczek jest podzielony na następujące małe sekcje: Ustawienia w górę Pliki Szybki kod ActionScript 3.0 Test Wyjaśnienie Wyświetlanie zawartości zewnętrznej w polu tekstowym Wczytywanie zmiennych z pliku tekstowego Ustawianie plików Pierwszym krokiem podczas ładowania zewnętrznego pliku jest jego utworzenie Ładowanie zewnętrznego pliku nie jest łatwe, o ile zarówno plik zewnętrzny, jak i film Flash, który go wywołuje, znajdują się na tym samym serwerze. Aby było jeszcze łatwiej i nie zależy nam na rzeczywistym adresie URL, umieścimy zarówno plik tekstowy, jak i film Flash w tym samym folderze. Utwórz nowy folder, w którym będą przechowywane wszystkie pliki, które będą używane w tym projekcie. Utwórz w tym folderze plik tekstowy o nazwie myText. wpisz dowolny tekst w tym pliku tekstowym, a następnie zapisz go. Uwaga dotycząca języków innych niż angielski: Jeśli planujesz ładować tekst w języku innym niż angielski, prawdopodobnie użyjesz znaków specjalnych. Aby upewnić się, że twoje postacie są wyświetlane poprawnie, musisz zakodować swój plik przy pomocy Unicode. Opcje kodowania zwykle można znaleźć w oknie Zapisz jako dowolnego edytora tekstów. Po zapisaniu pola tekstowego wystarczy utworzyć nowy plik Flash w tym samym folderze. Możesz nazwać ten plik Text Loader, chociaż nie wpłynie to na nasz projekt. Back in Flash - Szybki test Natychmiast rozpoczniemy kodowanie. Kliknij prawym przyciskiem myszy jedyną ramkę na osi czasu i wybierz Akcje, aby otworzyć panel Operacje. Skopiuj i wklej poniższy kod, aby szybko zobaczyć zewnętrzny tekst wyświetlany w oknie wyjściowym. Wyjaśnienie nastąpi. var myTextLoader: URLLoader nowa funkcja URLLoader () naLoaded (e: Event): void trace (e. target. data) Możesz nacisnąć CtrlEnter na klawiaturze, aby zobaczyć tekst wyświetlany w oknie wyjściowym tekstu Wyjaśnienie To był szybki test tylko po to, aby pokazać jak łatwo jest załadować zewnętrzny plik tekstowy. Wyjaśnimy teraz szczegółowo, co robi ten kod. Aby użyć klasy URLLoader, należy wykonać poniższą procedurę: Utwórz instancję klasy URLLoader. Użyj odbiornika zdarzeń, aby wiedzieć, kiedy plik się zakończy. Utwórz funkcję odbiornika zdarzeń, aby podjąć działanie po otrzymaniu powiadomienia od nasłuchującego zdarzenia. Użyj metody. load (), aby załadować rzeczywisty plik tekstowy. Jest to bardzo prosty proces w prawdziwym kodzie, jak widzieliście powyżej. Podobnie jak w przypadku większości klas ActionScript 3.0, pierwszym krokiem przy użyciu dowolnej z klas jest utworzenie instancji tej klasy (tworzenie instancji). Można to łatwo zrobić za pomocą nowego operatora. Tak więc pierwsza linia naszego kodu tworzy instancję klasy URLLoader i nazywa ją myTextLoader: var myTextLoader: URLLoader new URLLoader () Następnie musimy zarejestrować detektor zdarzeń, aby podjąć działanie z plikiem tekstowym, który zakończył się pomyślnie. Jest to po prostu wykonywane przy użyciu narzędzia. addEventListener w celu zarejestrowania naszej instancji za pomocą zdarzenia EventPLETE i funkcji o nazwie Załadowano, którą później zdefiniujemy za pomocą czynności, która zostanie podjęta: var myTextLoader: URLLoader new URLLoader () Możesz dowiedzieć się więcej o programach nasłuchujących zdarzenia czytając nasz samouczek dotyczący obsługi zdarzeń w ActionScript 3.0. Następnym krokiem jest utworzenie funkcji, która podejmie działanie po wywołaniu przez detektor zdarzeń. Wcześniej określiliśmy, że ta funkcja będzie nazywać się OnLoaded. Zadaniem tej funkcji będzie po prostu wyprowadzanie zawartości naszego pliku tekstowego na ekranie testowym za pomocą komendy trace (). Dane naszego pliku tekstowego można uzyskać za pośrednictwem właściwości o nazwie. data dołączonej do celu naszego zdarzenia COMPLETE (tj. Naszego wystąpienia klasy URLLoader). Należy zauważyć, że tej właściwości można uzyskać tylko po pomyślnym załadowaniu pliku: var myTextLoader: URLLoader new URLLoader () Ostatnia linia z wyzwalaniem całego procesu poprzez załadowanie pliku tekstowego za pomocą metody. load (). Metoda. load () faktycznie ładuje adres URL tekstu, który chcesz wczytać. Należy pamiętać, że nie można przypisać adresu URL bezpośrednio jako ciąg. ale zamiast tego musisz przekazać go jako instancję klasy URLRequest, jak pokazano w poniższym kodzie: var myTextLoader: URLLoader nowa funkcja URLLoader () naLoaded (e: Event): void trace (e. target. data) Możesz sprawdzić wpis dla Klasa URLRequest w odnośniku ActionScript, aby dowiedzieć się więcej na ten temat. To powinno wystarczyć. Możesz ponownie przetestować film (CtrlEnter), aby zobaczyć zawartość pliku tekstowego w oknie wyjściowym. Wyświetlanie tekstu w polu tekstowym Chociaż nie jest to ściśle częścią tego samouczka, ale pomyślałem, że dostarczę ci szybki przykład, jak wyświetlić zawartość w polu tekstowym, które tworzymy dynamicznie. Jest to dokładnie ta sama procedura, ale mamy także (1) stworzenie instancji klasy TextField. (2) ustaw właściwość. text po wczytaniu pliku i ostatecznie (3) wyświetl je na ekranie, dodając je do listy wyświetlania. Poniższy kod pokazuje te trzy dodatkowe kroki wyraźnie wytłuszczone. var myTextLoader: URLLoader nowy URLLoader () var myTextFieldtxt: TextField nowa funkcja TextField () naLoaded (e: Event): void myTextFieldtxt. text e. target. data addChild (myTextFieldtxt) Metoda addChild () dodaje obiekt docelowy do listy wyświetlania . Jeśli zostanie użyta na głównej osi czasu bez żadnych kwalifikacji, wyświetli obiekt na ekranie, jeśli jest używany przez obiekt, ten obiekt docelowy zostanie wyświetlony, gdy wyświetlany jest obiekt nadrzędny. Jeśli ładujesz ciąg tekstu przekraczający jedną linię, musisz również ustawić właściwości TextField. wrapText i. autoSize, aby upewnić się, że pole jest automatycznie rozciągnięte, aby wyświetlić cały tekst: var myTextLoader: URLLoader new URLLoader () var myTextFieldtxt: TextField new TextField () myTextFieldtxt. wordWraptrue myTextFieldtxt. autoSizeTextFieldAutoSize. LEFT Funkcja onLoaded (e: Event): void myTextFieldtxt. text e. target. data addChild (myTextFieldtxt) Sprawdź wpis klasy TextField w dokumentacji ActionScript, aby zapoznać się ze wszystkimi dostępne właściwości pola tekstowego. Ponownie, wszystko, co musisz teraz zrobić, to przetestować swój film (CtrlEnter), zobaczyć pole tekstowe i tekst Wczytywanie zmiennych z pliku tekstowego Oprócz możliwości załadowania całego fragmentu tekstu we Flashu z pliku tekstowego, możliwe jest podzielić tę treść tekstową na części logiczne za pomocą zmiennych. Na przykład jeśli masz ciąg tekstu jako tytuł, blok tekstu jako tekst podstawowy i ciąg zawierający adres URL. Masz wszystko w jednym pliku tekstowym, ale każdy z nich jest przechowywany we własnej zmiennej. Można to zrobić za pomocą operatora znaku równości, aby określić wartość zmiennej i ampersand znaku amp do identyfikacji nowej zmiennej. Jeśli otworzysz nasz oryginalny plik tekstowy myText. możesz zastąpić jego oryginalną zawartość następującymi elementami, aby zobaczyć niektóre zmienne w akcji: myTitleOman3DampmyBodyOman3D ma wiele interesujących tutorialiampirycznyURLpubliczny kod Powyższy kod definiuje trzy zmienne, myTitle. moje ciało . i myURL. Wartość każdej z tych zmiennych jest określona po znaku równości, podczas gdy początek nowej zmiennej (innej niż pierwsza) jest określony za pomocą znaku ampersand i znaku amp. Tutaj jest to samo pole tekstowe z nazwami zmiennych i podświetlonymi operatorami: myTitle Oman3D ampmyBody Oman3D ma wiele interesujących tutoriali Replikofype kodu ampmyURL W jaki sposób możemy pobrać te zmienne za pomocą ActionScript Najpierw musimy poinformować Flash Playera, że ​​ładujemy zmienne, a nie prosty tekst. Odbywa się to poprzez ustawienie właściwości klasy URLLoader o nazwie URLLoaderDataFormat. Po prostu ustawiamy jego wartość na URLLoaderDataFormat. VARIABLES: var myTextLoader: URLLoader new URLLoader () myTextLoader. dataFormatURLLoaderDataFormat. VARIABLES function onLoaded (e: Event): void trace (e. target. data) Zamiast pobierać całą zawartość pliku. właściwość danych naszego celu dokładniej zagłębiamy się w rzeczywiste zmienne właściwości. data, które zdefiniowaliśmy w naszym pliku tekstowym: var myTextLoader: URLLoader new URLLoader () myTextLoader. dataFormatURLLoaderDataFormat. VARIABLES funkcja onLoaded (e: Event): void trace ( e. target. data. myTitle) trace (e. target. data. myBody) trace (e. target. data. myURL) Żadne inne zmiany nie są wymagane. Możesz teraz przetestować swój film (CtrlEnter), aby zobaczyć każdą zmienną wyświetlaną w linii w oknie wyjściowym. Zastosowanie tej techniki różni się w zależności od projektu, nad którym pracujesz. Należy jednak zawsze rozważyć użycie XML zamiast zmiennych pliku tekstowego, jeśli chciałbyś załadować małe elementy informacji, które dodadzą logikę do twojego projektu, klasa XML zapewnia znacznie szerszy zestaw metod filtrowania i przeszukiwania załadowanych danych. To kończy nasz tutorial. Możesz pobrać plik źródłowy z naszego ostatniego przykładu tutaj. Jeśli masz jakieś uwagi lub pytania, opublikuj je na forum Oman3D. - End of Tutorial.

No comments:

Post a Comment