Rozwiązane problemy

Data wydania: 08.10.2012

  • Program ulega awarii po przejściu do i z zawartości Flash w przeglądarce Internet Explorer (3328165)
  • Nie można spakować aplikacji przy użyciu rozszerzenia natywnego środowiska AIR (ANE, AIR Native Extension) w systemie iOS, gdyż w tym systemie nie jest zaimplementowana funkcja finalizer. (3325320)
  • Pakowanie pliku IPA przy użyciu samej implementacji domyślnej w rozszerzeniu natywnym środowiska AIR w systemie iOS kończy się niepowodzeniem i jest generowany wyjątek dotyczący pustego wskaźnika. (3325321)
  • Dane są usuwane z bazy podczas każdego uruchamiania symulatora systemu iOS. (3329309)
  • Debugowanie przez sieć Wi-Fi w systemie iOS: Debugowanie nie działa w systemie iOS, gdy jest wybrany interfejs sieciowy Domyślny i ustawiony cel odtwarzacza AIR 3.4. (3325323)

Data wydania: 21.08.2012

  • Obiekt NetStream ulega czasami awarii podczas rozłączania. (3193417)
  • Występuje problem związany z zatrzymaniem strumieniowego przesyłania dźwięku na żywo w środowisku AIR for Android. (3188340)
  • Metoda drawWithQuality() nieprawidłowo renderuje filtry na urządzeniach z systemem Android. (3224928)
  • Metoda Clipboard.generalClipboard.setData nie działa w systemie iOS. (3226045)
  • Niektóre materiały wideo FLV nie są odtwarzane w programie Flash Player dla systemu Windows. (3187569)
  • W aplikacjach opartych na programie Flash Player w przeglądarce Firefox dla systemu Windows jest odtwarzany tylko prawy kanał dźwięku. (3289279)
  • Funkcja blokowania myszy jest wyłączana po przejściu do interaktywnego trybu pełnoekranowego. (3174344)
  • [iOS 5] Pola tekstowe z czcionkami osadzonymi są zniekształcone na urządzeniach przenośnych. (3161138)
  • Podczas przesyłania strumieniowego niektórych materiałów na żywo następuje zatrzymanie pierwszej klatki. (3207896)
  • Ikony o wymiarach 50x50, 100x100 i 1024x1024 dla aplikacji dla systemu iOS są obecnie obsługiwane w deskryptorze aplikacji. (3217144) 
  • Aplikacje korzystające z natywnych rozszerzeń czasami ulegają awarii w systemie iOS podczas używania określonych bibliotek zewnętrznych, na przykład Libxml2.dylib. (3226974) 
  • Zaobserwowano pewne odchylenia w przypadku pakietu aplikacji pełnoekranowej dla tabletu iPad z obrazem uruchamiania o wymiarach 768 x 1004 lub 1024 x 748. (3230762) Nowe wytyczne dotyczące używania obrazów uruchamiania można znaleźć tutaj.
  • Występują awarie odtwarzania wideo H.264 w systemie iOS podczas przełączania między dwoma strumieniami NetStream dołączonymi do obiektu StageVideo. (3206438)
  • Problem z metodą CameraRoll.browseForImage() powoduje utratę przezroczystości i wyświetlenie koloru białego. (3291312)

Nowe funkcje

Data wydania: 08.10.2012

Z dniem 19.09.2012 zestaw SDK dla systemu iOS6 przestaje być wersją beta.

W tej wersji nie dodano żadnych nowych funkcji.

Data wydania: 21.08.2012

  • Procesy robocze ActionScript (Flash Player)
  • Obsługa mostów obszarów izolowanych (Flash Player)
  • Obsługa licencji: Funkcje programu Flash Player Premium dotyczące gier (Flash Player)
  • Profil ograniczony obiektu Stage3D umożlwiający używanie dodatkowych procesorów GPU (Flash Player i AIR)
  • Obsługa formatu LZMA dla klasy ByteArray (Flash Player i AIR)
  • Udoskonalenia metod attachCamera i Camera klasy StageVideo (Flash Player i AIR)
  • Obsługa tekstur skompresowanych z kanałem alfa dla obiektu Stage3D (Flash Player i AIR)
  • Kodowanie DXT (Flash Player i AIR)
  • Przestarzałe interfejsy API Carbon dla środowiska AIR (AIR)
  • Bezpośrednie wdrażanie aplikacji AIR przy użyciu narzędzia ADT (AIR)
  • Powiadomienia push dla systemu iOS (AIR)
  • Tryb AudioPlaybackMode w tle (AIR)
  • Obsługa wyjątków w natywnych rozszerzeniach dla systemu iOS (AIR)
  • Nowa opcja narzędzia ADT umożliwiająca wyświetlanie listy podłączonych urządzeń przenośnych (AIR)
  • Opcja narzędzia ADT umożliwiająca rozwiązywanie konfliktów symboli ANE w systemie iOS (AIR)

Wydane wersje

Produkt Wydana wersja
Flash Player dla komputerów (Windows®/Mac)  11.4.402.287
 AIR (Windows®, Mac, urządzenia przenośne)  3.4.0.2710
Zestaw SDK środowiska AIR  3.4.0.2710

Znane problemy

Data wydania: 21.08.2012
  • Metoda transformVector() klasy Matrix3D niepoprawnie przekształca składnik w. (3190677)
  • [iOS] W systemie iOS 4.3 skompresowane mapy sześcianów z kanałem alfa są nieprawidłowo renderowane. (3282166)
  • navigateToURL: Problemy ze znakami ASCII o wyższych numerach powodują ich nieprawidłowe działanie w aplikacjach AIR dla komputerów. (3161093)
  • [iOS] W przypadku niektórych materiałów instalacja pliku IPA dla środowiska AIR 3.4 czasami kończy się niepowodzeniem i jest wyświetlany komunikat o błędzie instalacji — niepowodzeniu wyodrębnienia pakietu. (3220974)
  • W przypadku używania flagi –hideAneLibSymbols podczas tworzenia pakietu aplikacji dla systemu iOS w pliku platform.xml ANE należy stosować tylko opcje łączenia platformy i bibliotek, takie jak -ios_version_min.
Firma Adobe kontynuuje prace nad zestawem SDK systemu iOS 6 Beta i rozwiązaniem problemów. Aktualne znane problemy:
  • Okno dialogowe zezwolenia na sprawdzanie lokalizacji geograficznej nie jest wyświetlane w wersji Beta systemu iOS 6. (3291688)
  • Pakiety aplikacji AIR utworzone przy użyciu zestawu SDK środowiska AIR 3.4 i zestawu SDK wersji Beta systemu iOS 6 nie obsługują obiektów AutoOrients w orientacji odwróconej na odtwarzaczach iPod i telefonach iPhone. (3286288)
  • Pakiety aplikacji utworzone przy użyciu zestawu SDK środowiska AIR 3.4 i zestawu SDK wersji Beta nie obsługują znacznika aspectRatio na urządzeniach z systemem iOS 5.1. (3286320)

Ulepszenia zabezpieczeń

Biuletyn zabezpieczeń Uwzględnione produkty
 APSB12-22 Flash Player dla komputerów Windows® i Mac

Flash Player dla systemu AndroidTM

Nowe funkcje — omówienie


Procesy robocze ActionScript

  • Dzięki wprowadzeniu procesów roboczych do języka ActionScript i środowiska wykonawczego Flash programiści mogą przenosić określone zadania, takie jak operacje o dużych opóźnieniach i długotrwałe obliczenia, na procesy robocze działające w tle.Procesy robocze działają w tle równocześnie, dzięki czemu można użyć więcej zasobów komputera i uniknąć problemów z płynnością interfejsu użytkownika. 
  • Uwaga: W celu pełnego korzystania z obiektów roboczych ActionScript i ich debugowania wymagana jest następna wersja programu Flash Builder. Następna wersja oprogramowania Flash Builder zostanie udostępniona w postaci publicznej wersji beta w sierpniu.
  • Uwaga: Obsługa pamięci współużytkowanej (ByteArray.shareable) została przeniesiona do następnej wersji programu Flash Player.

Obsługa mostów obszarów odizolowanych

  • Mosty obszarów odizolowanych umożliwiają udostępnianie obiektów lub funkcji ActionScript na potrzeby komunikacji między domenami plików SWF. Ta funkcja jest już dostępna w środowisku AIR i zostanie przeniesiona do programu Flash Player w najbliższej wersji.

Obsługa licencji: Funkcje programu Flash Player Premium dotyczące gier (Flash Player)

  • Wraz z wprowadzeniem funkcji Premium dotyczących gier możliwa jest obsługa obiegów pracy niezwiązanych z językiem ActionScript w programie Flash Player.Ta wersja obsługuje kontrolę licencji funkcji Premium interfejsów API XC (jednoczesnego używania interfejsu API pamięci domeny oraz interfejsu API przyspieszania sprzętowego Stage3D) w programie Flash Player. Te interfejsy API są używane przez niektóre narzędzia zewnętrzne, takie jak oprogramowanie Unity oraz kompilator C/C++ Project Alchemy firmy Adobe. Więcej informacji można uzyskać na stronie www.adobe.com/go/fpl.

Profil ograniczony Stage3D na potrzeby obsługi dodatkowych funkcji procesorów GPU

  • Program Flash Player korzysta z przyspieszania sprzętowego, gdy data wydania sterownika karty graficznej jest odpowiednia. W poprzednich wersjach nie były obsługiwane sterowniki wydane przed 1 stycznia 2008. W tej wersji obsługa zostanie ograniczona do sterowników udostępnionych nie później niż 1 stycznia 2006. Zawartość, dla której używane są parametry wmode=direct (lub renderMode=direct w środowisku AIR), powinna być przyspieszana sprzętowo w przypadku sterowników karty graficznej wydanych po 1 stycznia 2006. Dotyczy to interfejsów API Stage3D oraz [StageVideo|StageVideo]. Ponadto do technologii Stage3D dodano profil ograniczony, który umożliwia przyspieszanie sprzętowe zawartości za pomocą wcześniej nieobsługiwanych kart Intel® GMA. Poniżej przedstawiono szczegółowe informacje o nowym profilu i sposobie jego używania.

Obsługa algorytmu LZMA dla obiektów ByteArray

  • Poza kompresją zlib dla macierzy ByteArray firma Adobe wprowadza dodatkowy rodzaj kompresji oparty na algorytmie LZMA, który pozwala na kompresję danych wewnątrz macierzy ByteArray za pomocą metod ByteArray.compress() i ByteArray.uncompress().

Obsługa tekstur skompresowanych z kanałem alfa dla obiektu Stage3D (Flash Player i AIR)

  • Obrazy przezroczyste są obecnie obsługiwane w przypadku tekstur skompresowanych (format pliku ATF).

Ulepszenia metod attachCamera i Camera obiektu StageVideo

  • Ta funkcja udostępnia nową metodę dla obiektów StageVideo, która pozwala na kierowanie strumieni wideo za pomocą kodu ActionScript z kamery do obiektu StageVideo przy użyciu renderowania GPU zamiast rasteryzacji. Dzięki temu odtwarzacz może znacznie szybciej przetwarzać strumień wideo z kamery, gdy dostępne jest przyspieszanie GPU.

Kodowanie do formatu DXT

  • Ta funkcja umożliwia kodowanie nieskompresowanych tekstur do formatu DXT w czasie wykonywania programu, dzięki czemu teksturę można przekazać do GPU w postaci skompresowanej tekstury DXT.
    Ta funkcja jest dostępna dla komputerów w przypadku oprogramowania Flash Player 11.4 i AIR 3.4.

Przestarzałe interfejsy API oprogramowania Carbon dla środowiska AIR

  • Wraz z wprowadzeniem systemu Mac OS X 10.8 interfejsy API oprogramowania Carbon nie będą już obsługiwane przez firmę Apple. W związku z tym interfejsy API i pozostały przestarzały kod zostaną usunięte z tej wersji środowiska AIR, aby dostosować je do systemu Mac OS X 10.8.
Bezpośrednie wdrażanie aplikacji AIR przy użyciu narzędzia ADT
  • Nowa funkcja umożliwia programistom wdrażanie aplikacji AIR na urządzeniach z systemem iOS bez korzystania z programu iTunes lub XCode. Używanie tej funkcji wymaga zainstalowania na komputerze użytkownika programu iTunes 10.5.0 lub nowszego.

Powiadomienia push w systemie iOS

  • Ta funkcja generuje powiadomienia przy użyciu usługi APNS (Apple Push Notification Service) i dostawcy (zewnętrznego serwera komunikującego się z usługą APN). Firma Adobe wprowadziła nowy pakiet flash.notifications.Obsługa powiadomień zależy całkowicie od usługi APNS, która nie gwarantuje dostarczania powiadomień push.Firma Apple zaleca włączenie subskrypcji powiadomień push przy każdym uruchomieniu aplikacji. Za każdym razem, gdy aplikacja kliencka subskrybuje powiadomienia push, usługa APNS dostarcza jej identyfikator tokenu, który należy przekazać do zewnętrznego serwera lub dostawcy wysyłającego powiadomienia zdalne.

Tryb AudioPlaybackMode w tle

  • W środowisku AIR 3.4 użytkownicy będą mieli dostęp do dodatkowego trybu (parametru) AudioPlaybackMode: AMBIENT (Otoczenie). Dotąd były dostępne tylko tryby VOICE (Głos) i MEDIA (Multimedia). Nowy tryb AudioPlaybackMode pozwoli użytkownikom wymuszać na aplikacjach uwzględnianie sprzętowego przełącznika wyciszenia, który jest dostępny w telefonach iPhone i tabletach iPad. Najważniejszym przykładem zastosowania tego trybu są gry, w których użytkownik będzie miał możliwość wyciszenia dźwięku i słuchania muzyki z innej aplikacji w tle.W trybie otoczenia sprzętowy przełącznik dźwięku działa tylko na urządzeniach z systemem iOS. W przypadku urządzeń z systemem AndroidTM tryb otoczenia będzie działał tak samo jak tryb multimediów.

Obsługa wyjątków w natywnych rozszerzeniach dla systemu iOS

  • Natywne rozszerzenia dla systemu iOS mogą obecnie obsługiwać wyjątki języków C++ i Objective-C. Przechwytywanie wyjątków generowanych przez kod zależy od rozszerzenia. Środowisko wykonawcze nie przechwytuje wyjątków generowanych przez rozszerzenia.

Opcja narzędzia ADT umożliwiająca wyświetlanie listy podłączonych urządzeń przenośnych

  • W narzędziu ADT wprowadzono nową opcję -devices, która pozwala na wyświetlenie listy podłączonych urządzeń z systemami iOS i AndroidTM. Użytkownicy mogą dzięki tej opcji wyświetlać listę urządzeń bez stosowania polecenia adb (AndroidTM) lub idb (iOS). Używanie tej funkcji wymaga zainstalowania na komputerze użytkownika programu iTunes 10.5.0 lub nowszego.

Opcja narzędzia ADT umożliwiająca rozwiązywanie konfliktów symboli ANE w systemie iOS

  • Programiści aplikacji mogą używać wielu natywnych rozszerzeń uzyskanych z różnych źródeł, dlatego wspólna nazwa symbolu w dwóch rozszerzeniach ANE może spowodować błąd tworzenia pakietu ze względu na powielony symbol w plikach obiektowych lub awarię w czasie uruchamiania. Aby uniknąć tego problemu, w narzędziu ADT wprowadzono nową opcję -hideAneLibSymbols, którą można określić podczas tworzenia pakietu aplikacji. Opcja ta przyjmuje wartości „yes” lub „no”; wartość „yes” powoduje ukrycie symboli bibliotek poszczególnych rozszerzeń ANE przed innymi rozszerzeniami ANE.

Nowe funkcje: wytyczne dotyczące używania

Pierwsze kroki z obiektami roboczymi

Informacje ułatwiające rozpoczęcie pracy z funkcją obiektów roboczych można znaleźć w przykładach zamieszczonych w pliku flashplayer11-4_p1_ex_concurrency.zip.

Uwaga

Poniżej przedstawiono zmierzone użycie pamięci przez procesy robocze w systemach MacOS i Windows®:

Liczba procesów roboczych

MacBook Pro
Mac OS X 10.7.3 
2,4 GHz Intel® CoreTM i7 
8 GB RAM 
Mac OSX 10.7 
Pamięć (MB)

Komputer PC 
Windows® 7 32bit 
Intel® Xeon Quad Core 3,2 GHz 
2048 MB RAM 
Windows® 7 
Pamięć (MB)

Laptop Lenovo T61
Windows® XP 
Intel® CoreTM Duo Core 2,2 GHz 
2014 MB RAM 
Windows® XP 
Pamięć (MB)

0

10 

4,78 

4,39 

1

15,75 

9,33 

8,59 

2

21,47 

13,8 

12,77 

3

27,28 

18,35 

16,39 

4

33 

22,8 

20,67 

5

38,81 

26,39 

24,58 

6

44,25 

31,1 

28,8 

7

50 

35,62 

32,67 

8

55,89 

40,16 

35,75 

9

61,7 

44,73 

39,6 

10

67,47 

48,83 

43,9

Gdy kod jest wykonywany w kontekście procesu roboczego innego niż pierwotny (czyli kod działa w tle), zachowanie interfejsu API środowiska wykonawczego Flash będzie różnić się od zachowania kodu ActionScript wykonywanego w wątku głównym. Poniższe interfejsy API działają inaczej, gdy są używane w procesie roboczym w tle.

Niedziałające interfejsy API

Poniższe interfejsy API są niedostępne w procesie roboczym działającym w tle. Próba skonstruowania takiego wystąpienia spowoduje wygenerowanie wyjątku IllegalOperationError niedozwolonej operacji z komunikatem „Ta funkcja jest niedostępna w tym kontekście”. Identyfikator tego błędu jest taki sam dla wszystkich wystąpień, co ułatwia programistom ich identyfikację na podstawie tej wartości.

  • flash.desktop.Clipboard // Wywołanie konstruktora powoduje wygenerowanie wyjątku. Wywołanie metody generalClipboard spowoduje zwrócenie wartości null.
  • flash.desktop.NativeDragManager // Metoda isSupported zwraca wartość false.
  • flash.desktop.Updater // Metoda isSupported zwraca wartość false.
  • flash.display.NativeMenu // Metoda isSupported zwraca wartość false.
  • flash.display.NativeWindow // Metoda isSupported zwraca wartość false.
  • flash.display.ToastWindow // Nie można uzyskać dostępu do wystąpienia, ponieważ obiekt stage.window nigdy nie będzie zdefiniowany.
  • flash.display.Window // Nie można uzyskać dostępu do wystąpienia, ponieważ obiekt stage.window nigdy nie będzie zdefiniowany.
  • flash.external.ExtensionContext // Metoda createExtensionContext() zawsze zwraca wartość null lub generuje wyjątek z informacją o błędzie.
  • flash.external.ExternalInterface // Parametr available zwraca wartość false.
  • flash.html.* // Metoda HTMLLoader.isSupported zwraca wartość false.
  • flash.media.CameraRoll // Metody supportsAddBitmapData i supportsBrowseForImage zwracają wartość false.
  • flash.media.CameraUI // Metoda isSupported zwraca wartość false.
  • flash.media.StageWebView // Metoda isSupported zwraca wartość false.
  • flash.net.drm.* // Metoda DRMManager.isSupported zwraca wartość false.
  • flash.printing.* // Metoda PrintJob.isSupported zwraca wartość false.
  • flash.security.XMLSignatureValidator // Metoda isSupported zwraca wartość false.
  • flash.system.IME // Metoda isSupported zwraca wartość false.
  • flash.system.SystemUpdater // Wywołanie konstruktora powoduje wygenerowanie wyjątku.
  • flash.text.StageText // Wywołanie konstruktora powoduje wygenerowania wyjątku.
  • flash.ui.ContextMenu // Metoda isSupported zwraca wartość false.
  • flash.ui.GameInput // Metoda isSupported zwraca wartość false.
  • flash.ui.Mouse // Wszystkie metody są operacjami pustymi; ustawienie właściwości „cursor” jest operacją pustą.

Zmiany zachowania interfejsów API

Poniższe interfejsy API działają w zmodyfikowany sposób, gdy są uruchamiane w procesie roboczym działającym w tle. Niektóre wywołania metod są operacjami pustymi, natomiast inne powodują wygenerowanie wyjątku IllegalOperationError (lub jego odpowiednika) zgodnie z udokumentowanym interfejsem API. Zwracane wartości powinny być maksymalnie zgodne z dokumentacją. Jeśli na przykład w normalnych warunkach metoda zwraca tablicę zawierającą elementy, wykonanie jej w procesie roboczym działającym w tle spowoduje zwrócenie pustej tablicy.

  • flash.accessibility.Accessibilty
    • active // Zawsze zwraca wartość false.
    • updateProperties(); // Nie jest wykonywana żadna operacja.
  • Właściwości klasy flash.desktop.NativeApplication**

·          

  • flash.display.Stage
    • allowsFullScreen // Zawsze zwraca wartość false.
    • stage3Ds // Zawsze zwraca pusty wektor.
    • stageVideos // Zawsze zwraca pusty wektor.
    • supportsOrientationChange // Zawsze zwraca wartość false.
    • wmodeGPU // Zawsze zwraca wartość false.
  • flash.filesystem.File
    • browseForDirectory(), browseForOpen(), browseForOpenMultiple(), browseForSave() // Nie są wykonywane żadne operacje.
  • flash.net.FileReference** browse(), download(), save() // Nie jest wykonywana żadna operacja. Zawsze jest zwracana wartość false.
  • flash.net.FileReferenceList** browse() // Nie jest wykonywana żadna operacja. Zawsze jest zwracana wartość false.
  • flash.system.System
    • ime // Zawsze zwraca wartość null.
    • exit() // Wymusza zatrzymanie i wyłączenie danego procesu roboczego działającego w tle.
    • setClipboard() // Nie jest wykonywana żadna operacja.
  •  
    • Metody
      • activate(), clear(), copy(), cut(), paste(), selectAll() // Nie jest wykonywana żadna operacja.
      • exit() // Wymusza zatrzymanie i wyłączenie danego procesu roboczego działającego w tle.
    • Zdarzenia
      • Obsługiwane jest tylko zdarzenie wyjścia. Zdarzenie to jest wywoływane, gdy proces roboczy kończy działanie. Dzieje się to zarówno w przypadku wywołań metody cyklu życia, jak i zamknięcia głównego procesu roboczego (czyli rodowiska wykonawczego). Nie można anulować tej operacji z poziomu procesu roboczego działającego w tle.
    •  
      • supportsDefaultApplication, supportsDockIcon, supportsMenu, supportsStartAtLogin, supportsSystemTrayIcon // Wszystkie zwracają wartość false.
      • activeWindow // Zwraca wartość null.
      • autoExit // Metoda ustawiająca nie wykonuje żadnych operacji.
      • idleThreshold // Metoda ustawiająca nie wykonuje żadnych operacji.
      • openedWindows // Zwraca pustą tablicę ([]).
      • systemIdleMode // Metoda ustawiająca nie wykonuje żadnych operacji.

Zwiększony zasięg GPU — ograniczony profil Stage3D

Do klasy Context3D został dodany nowy parametr „profile”. Ten parametr jest przekazywany do funkcji Stage3D.requestContext3D() i można mu nadać jedną z dwóch wartości: Context3DProfile.BASELINE („baseline”), która zwraca typowy obiekt Context3D dostępny w poprzednich wersjach środowiska, lub Context3DProfile.BASELINE_CONSTRAINED („baselineConstrained”), która zwraca nowy rodzaj obiektu Context3D umożliwiający przyspieszanie sprzętowe przy użyciu wcześniej nieobsługiwanych procesorów GPU. Profil ograniczony ułatwia projektantom materiałów tworzenie zawartości Stage3D przeznaczonej dla starszych systemów z kartami graficznymi takimi jak Intel® GMA 900/950 w systemie Windows®. Wadą obsługi mniej wydajnego sprzętu za pomocą profilu ograniczonego jest fakt, że możliwości klasy Stage3D będą ograniczone w celu zagwarantowania prawidłowej obsługi zawartości przez taki sprzęt. Karty graficzne takie jak GMA 900/950 obsługują tylko technologię Pixel/Vertex Shader w wersji 2.0, co w przypadku profilu ograniczonego nakłada na pakiet Stage3D następujące ograniczenia:

  • Są dostępne maksymalnie 64 instrukcje ALU i 32 instrukcje tekstur na obiekt cieniowany.
  • Są dostępne tylko 4 pośrednie odczyty tekstur na obiekt cieniowany.
  • Jest mniej stałych/zmiennych/wartości tymczasowych na obiekt cieniowany.
  • Brak obsługi rejestru predykatów. Wpływa to na instrukcje sln/sge/seq/sne oraz wymaga zastąpienia instrukcjami złożonymi mov/cmp dostępnymi w standardzie Pixel Shader 2.0. (Odbywa się to w procedurach wewnętrznych i wymaga użycia większej liczby gniazd instrukcji w porównaniu z technologią Pixel Shader 2.x).
  • Bufor tylny obiektu Context3D musi zawsze znajdować się w obrębie stołu montażowego.
  • W ramach jednego wystąpienia programu Flash Player dozwolone jest tylko jedno wystąpienie klasy Context3D z profilem ograniczonym.
  • Tak jak w przypadku urządzeń przenośnych, elementy listy wyświetlania programu Flash nie są aktualizowane przy widocznej zawartości obiektu Stage3D z profilem ograniczonym, chyba że zostanie wywołana metoda Context3D.present().

Drugim opcjonalnym parametrem metody requestContext3D jest profil. Programiści mogą zażądać profilu „baselineConstained” w celu użycia obiektu Context3D w trybie ograniczonym, jak pokazano w następującym wywołaniu interfejsu API: function requestContext3D ( context3DRenderMode : String = "auto", profile : String = "baseline" ) : void;
Przykład:

stage.stage3Ds[0].addEventListener(Event.CONTEXT3D_CREATE, createdHandler);
stage.stage3Ds[0].requestContext3D(Context3DRenderMode.AUTO, Context3DProfile.BASELINE_CONSTRAINED); 

Bezpośrednie wdrażanie aplikacji AIR przy użyciu narzędzia ADT

Instalowanie:
Aby zainstalować plik IPA na urządzeniu, należy użyć następującego polecenia:
adt -installApp -platform ios -device <identyfikator urządzenia> -package <plik IPA> 
Dezinstalacja:
Aby odinstalować plik IPA z urządzenia, należy użyć następującego polecenia:
adt -uninstallApp -platform ios -device <identyfikator urządzenia> -appid <identyfikator aplikacji> 
Parametr <identyfikator urządzenia> podłączonego urządzenia będzie wartością „Handle” uzyskaną po wprowadzeniu następującego polecenia:
@SDKLocation/bin/adt –devices –platform ios 
Parametr <identyfikator aplikacji> jest określony w pliku deskryptora aplikacji (app.xml) w znaczniku <id>. Jeśli projekt został utworzony w oprogramowaniu Flash Builder, identyfikator aplikacji jest domyślnie taki sam jak jej nazwa. 

Jeżeli do komputera jest podłączone tylko jedno urządzenie, należy pominąć argument -device <identyfikator urządzenia>. Aplikacja zostanie zainstalowana na podłączonym urządzeniu lub zostanie z niego odinstalowana.
adt -installApp -platform ios -package <plik IPA> 

Powiadomienia push w systemie iOS

1) Identyfikator aplikacji (znacznik id) w kodzie XML aplikacji powinien być taki sam jak identyfikator aplikacji dla certyfikatu konfiguracji urządzenia przenośnego, dla którego włączono powiadomienia push.
2) Uprawnienie aps-environment należy uwzględnić w deskryptorze aplikacji:

<iPhone>
    <Entitlements>
            <![CDATA[
                          <key>get-task-allow</key>
                          <true/>
                          <key>aps-environment</key>
                          <string>development</string>
                          <key>keychain-access-groups</key>
                          <array>
                         <string>KEYCHAIN_ACCESS_GROUP</string>
                          </array>
                ]]>
    </Entitlements>
</iPhone>

Aby przesłać aplikację z włączonymi powiadomieniami push do sklepu App Store, należy ustawić parametr aps-environment na wartość „production”. Programista musi użyć profilu konfiguracji z włączonymi powiadomieniami push. Należy sprawdzić uprawnienia podpisanej aplikacji, wywołując poniższe polecenie.

codesign -d --entitlements - <NazwaAplikacji>.app

3) Za pomocą nowej klasy flash.notification można włączyć w aplikacji obsługę powiadomień push. Przykład:

// empty Vector List is returned on platforms on which none of the notification styles is supported.
if (RemoteNotifier.supportedNotificationStyles != " " )
{
var preferredNotificationStyles:Vector.<String> = new Vector.<String>();
preferredNotificationStyles.push(NotificationStyle.ALERT);
preferredNotificationStyles.push(NotificationStyle.SOUND);
preferredNotificationStyles.push(NotificationStyle.BADGE);
var subscribeOptions:RemoteNotifierSubscribeOptions = new RemoteNotifierSubscribeOptions();
subscribeOptions.notificationStyles = preferredNotificationStyles;
var rn:RemoteNotifier = new RemoteNotifier();
rn.addEventListener(RemoteNotificationEvent.TOKEN,tokenEventHandler);
rn.addEventListener(RemoteNotificationEvent.NOTIFICATION,notificationEventHandler);
rn.addEventListener(StatusEvent.STATUS,statusHandler);
// calling subscribe method without any subscribe options automatically subscribes for all notification styles supported on that platform
rn.subscribe(subscribeOptions);
}
function tokenEventHandler(event:RemoteNotificationEvent):void
{
// AIR developer can send the tokenId received in event.data to his server via URL request
var urlRequest:URLRequest;
var urlLoader:URLLoader = new URLLoader();
var urlString:String = "https://url.com/api/device_tokens/" + event.tokenId;
urlRequest = new URLRequest(urlString);
urlRequest.authenticate = true;
urlRequest.method =URLRequestMethod.PUT;
URLRequestDefaults.setLoginCredentialsForHost("url.com",<userId>,<password>);
urlLoader.load(urlRequest);
urlLoader.addEventListener(IOErrorEvent.IOERROR, onError);
urlLoader.addEventListener(Event.COMPLETE, onComplete);
urlLoader.addEventListener(HTTPStatusEvent.HTTPSTATUS,onStatus);
}
public function notificationEventHandler(e:RemoteNotificationEvent):void
{
//Code to handle the data received from the RemoteNotificationEvent event of type Notification
  for (var x:String in e.data)
            {
                trace("\n"+ x + ":  " + e.data[x]);
            }
}
public function statusHandler(e:StatusEvent):void
{
        //code to handle the event when subscription is failed
}
private function onError(e:IOErrorEvent):void
{
         //Code to handle the error which occurred while making url request by the url loader
}
private function onComplete(e:Event):void
{
            //Code to know what if the url request made by the url loader is complete        }
}   
private function onStatus(e:HTTPStatusEvent):void
{
           //Code to know the http status of the url request made by the url loader
}

Aplikacja kliencka może przechowywać w pakiecie ciągi komunikatów przetłumaczone na wszystkie obsługiwane języki. Dostawca określa właściwości loc-key i loc-args w słowniku zawartości powiadomień aplikacji. Gdy urządzenie otrzymuje powiadomienie, na podstawie właściwości słownika aplikacji znajduje i formatuje ciąg zlokalizowany w bieżącym języku, a następnie wyświetla go użytkownikowi.

Zlokalizowane ciągi muszą znajdować się w pliku o nazwie Localizable.strings w odpowiednim folderze <język>.lproj. Każdy wpis w tym pliku zawiera klucz i wartość zlokalizowanego ciągu. Dany ciąg może zawierać definicje formatu na potrzeby zastępowania wartości zmiennych. Gdy aplikacja oczekuje określonego ciągu, pobiera zasób zlokalizowany w języku aktualnie wybranym przez użytkownika.

Aby otrzymywać zlokalizowane powiadomienia zdalne, aplikacja AIR musi zawierać zlokalizowane pary wartości kluczy w pliku Localizable.strings w folderze <język>.lproj wewnątrz pakietu IPA.Aby dodać plik Localizable.strings do pakietu IPA, programista może dodać odpowiedni folder <język>.lproj w poleceniu adt:

adt -package -target ipa-app-store -provisioning-profile <MobileProvisioningCertificate> -storetype pkcs12 -keystore <Certificate.p12> -storepass <HASŁO> app.xml sample.swf en.lproj es.lproj fr.lproj

Folder lproj musi znajdować się w bieżącym katalogu, aby narzędzie ADT mogło scalić pliki w odpowiednim folderze lproj. Jeśli folder lproj znajduje się w ścieżce a/b/c/en.lproj, narzędzie ADT doda go jako a/b/c/en.lproj, w związku z czym zlokalizowane pary wartości kluczy nie będą dostępne dla aplikacji.

Opcja narzędzia ADT umożliwiająca wyświetlanie listy podłączonych urządzeń przenośnych

Poniższe polecenie umożliwia uzyskanie informacji o podłączonych urządzeniach z systemem iOS lub AndroidTM:

adt -devices -platform (android | ios)

Użycie tego polecenia generuje następujące dane wyjściowe:

Lista podłączonych urządzeń:

Uchwyt   Klasa urządzenia   Identyfikator UUID                                                    Nazwa

7           iPhone         783fc8af34a6022c924c34fe7025e7e39d9d123b iPhone użytkownika ABC


Obsługa licencji: Funkcje programu Flash Player Premium dotyczące gier (tylko Flash Player)

Jednoczesne korzystanie z pamięci domeny (używanej przez niektóre narzędzia innych firm i kompilator C/C++ Project Alchemy) i przyspieszania sprzętowego Stage3D wymaga licencji.W przypadku równoczesnego korzystania z obu funkcji w debugerze zawartości programu Flash Player (odtwarzaczu z włączonym debugowaniem) będzie wyświetlany informacyjny znak wodny.Ten wymóg dotyczący licencji nie dotyczy zawartości objętej przyspieszaniem sprzętowym Stage3D bez pamięci domeny (lub z pamięcią domeny bez przyspieszania Stage3D) oraz nie obejmuje materiałów wdrożonych przy użyciu środowiska Adobe AIR. 

Obsługa utraty urządzenia

Nielicencjonowana zawartość będzie nadal uruchamiana dzięki automatycznej zmianie renderowania opartego na obiekcie Stage3D na renderowanie programowe. Aby upewnić się, że zawartość prawidłowo obsługuje utratę zasobów karty graficznej, należy wykrywać zdarzenia Event.CONTEXT3D_CREATE obiektu Stage3D w celu ponownego inicjowania grafiki. Zdarzenie utraty urządzenia można zasymulować, wywołując metodę context3D.dispose(). (Cała zawartość obiektu Stage3D powinna obsługiwać utratę urządzenia, która może nastąpić również w przypadku zablokowania komputera lub aktywacji wygaszacza ekranu).

Opcja narzędzia ADT umożliwiająca rozwiązywanie konfliktów symboli ANE w systemie iOS

Aby utworzyć pakiety aplikacji przy użyciu tej opcji, można zastosować następujące polecenie:

 adt -package –target ( ipa-test | ipa-debug | ipa-app-store | ipa-ad-hoc | ipa-test-interpreter | ipa-debug-interpreter | ipa-test-interpreter-simulator | ipa-debug-interpreter-simulator ) ( CONNECT_OPTIONS? | LISTEN_OPTIONS? ) ( -sampler )? –hideAneLibSymbols (yes|no) SIGNING_OPTIONS <output-package> ( <app-desc> PLATFORM-SDK-OPTION? FILE-AND-PATH-OPTIONS | <input-package> PLATFORM-SDK-OPTION? )

Przykład:

 adt -package –target ipa-test
–hideAneLibSymbols yes
–provisioning-profile xxx.mobileprovision
–storetype pkcs12 –keystore Certificates.p12 –storepass password
Sample.ipa sample-app.xml sample.swf
–extdir ANEFolder

Użycie wartości „yes” zapobiega konfliktom symboli, zaś wartość „no” pozwala uzyskać takie samo zachowanie jak poprzednio. Ta funkcja nie jest jeszcze dostępna w oprogramowaniu Flash Builder/Flash Professional.

Kodowanie do formatu DXT


var texture1:Texture = context3D.createTexture(256, 256, Context3DTextureFormat.COMPRESSED, false);
texture1.uploadFromBitmapData(myPNGBitmap.bitmapData);  // or you can upload from a byteArray as well
 
var texture2:Texture = context3D.createTexture(256, 256, Context3DTextureFormat.COMPRESSED_ALPHA, false);
texture2.uploadFromByteArray(myPNGByteArray);


Skompresowana tekstura i kanał alfa


[Embed( source = "rsc/MyCompressed.atf", mimeType="application/octet-stream")]
private var MyATF_DXT1:Class;
 
[Embed( source = "rsc/MyCompressedAlpha.atf", mimeType="application/octet-stream")]
private var MyATF_DXT5:Class;
 
//-----------------------------------------------------------------------------------
 
var fragmentShaderForCompressedTexture:String                          = "tex oc, v0, fs0 <2d, dxt1>";
var fragmentShaderForCompressedAlphaTexture:String              = "tex oc, v0, fs1 <2d, dxt5>";
 
//-----------------------------------------------------------------------------------
 
var texture1:Texture = context3D.createTexture(256, 256, Context3DTextureFormat.COMPRESSED, false);
texture1.uploadCompressedTextureFromByteArray(new MyATF_DXT1() as ByteArray, 0);
 
var texture2:Texture = context3D.createTexture(256, 256, Context3DTextureFormat.COMPRESSED_ALPHA, false);
texture2.uploadCompressedTextureFromByteArray(new MyATF_DXT5() as ByteArray, 0);

Wytyczne dotyczące tworzenia zawartości

Tworzenie zawartości dla programu Flash Player 11.4

Aby użyć nowego programu Flash Player, należy utworzyć plik SWF dla wersji 17, przekazując do kompilatora Flex dodatkowy argument: -swf-version=17. Instrukcje zostały podane poniżej. W przypadku używania zestawu SDK środowiska Adobe Flex:

  • Pobierz nowy plik playerglobal.swc dla programu Flash Player 11.4
  • Pobierz zestaw SDK oprogramowania Flex 4.5.1 (4.5.1.21328) dostępny w tabeli zestawów SDK oprogramowania Flex 4.5.
  • Zainstaluj kompilację w środowisku programistycznym.
  • W programie Flash Builder utwórz nowy projekt ActionScript (Plik -> Nowy -> Projekt ActionScript).
  • Otwórz panel właściwości projektu (kliknij prawym przyciskiem myszy i wybierz opcję Właściwości). Wybierz kompilator ActionScript z listy po lewej stronie.
  • Użyj opcji Skonfiguruj zestawy SDK programu Flex w prawym górnym rogu, aby wskazać dla projektu kompilację Flex 21328. Kliknij przycisk OK.
  • Skonfiguruj projekt jako przeznaczony dla formatu SWF w wersji 17.
  • Otwórz panel właściwości projektu (kliknij prawym przyciskiem myszy i wybierz opcję Właściwości). Wybierz kompilator ActionScript z listy po lewej stronie.
  • W obszarze Dodatkowe argumenty kompilatora dodaj tekst: -swf-version=17. Dzięki temu wynikowe pliki SWF będą zgodne z formatem SWF w wersji 17. Jeśli kompilacja jest przeprowadzana w wierszu polecenia, a nie w programie Flash Builder, należy dodać ten sam argument kompilatora.
  • Upewnij się, że w przeglądarce zainstalowano nową kompilację oprogramowania Flash Player 11.4.

Tworzenie zawartości dla środowiska AIR 3.4 Aktualizacja przestrzeni nazw do wersji AIR 3.4

Aby korzystać z nowych elementów interfejsu API środowiska AIR 3.4 oraz nowych sposobów działania, należy zaktualizować plik deskryptora, tak aby uwzględniał przestrzeń nazw wersji 3.4. Jeżeli aplikacja nie wymagana nowych elementów interfejsu API ani sposobów działania środowiska AIR 3.4, nie trzeba aktualizować przestrzeni nazw. Firma Adobe zaleca wszystkim użytkownikom korzystanie z przestrzeni nazw środowiska AIR 3.4, nawet jeżeli nie używają jeszcze nowych funkcji środowiska w wersji 3.4. Aby zaktualizować przestrzeń nazw, należy zamienić atrybut xmlns w deskryptorze aplikacji na następującą wartość: <application xmlns="http://ns.adobe.com/air/application/3.4">

Zgłaszanie błędów

Wystąpił błąd? Prosimy o zgłoszenie błędu w bazie danych błędów programu Flash Player i środowiska Adobe AIR.

Program Flash Player i środowisko AIR mogą dekodować i odtwarzać wideo w formacie H.264 przy użyciu elementów sprzętowych do obsługi grafiki. W przypadku zawartości wideo mogą występować błędy, do których odtworzenia jest konieczne użycie konkretnego sprzętu i sterownika graficznego. Podczas zgłaszania błędu dotyczącego wideo bardzo ważne jest wskazanie urządzenia graficznego, sterownika, systemu operacyjnego i przeglądarki (jeśli jest używany program Flash Player), tak aby było możliwe odtworzenie i zbadanie problemu. Podaj te informacje zgodnie z opisem w artykule o instrukcjach dotyczących zgłaszania błędów wideo. Uwaga: Otrzymujemy bardzo dużo wiadomości e-mail, dlatego nie jesteśmy w stanie wysłać odpowiedzi na każde zgłoszenie.

Dziękujemy za używanie programu Adobe® Flash Player® oraz środowiska AIR® i za przesłanie opinii.

Wymagania systemowe

Najnowsze informacje o wymaganiach systemowych oprogramowania Flash Player i AIR można znaleźć w tym dokumencie.


Historia wersji środowisk wykonawczych

 

Data wydania Wersja środowiska wykonawczego Ulepszenia zabezpieczeń
  21 sierpnia 2012  Flash Player dla komputerów (Windows, Mac OS):  11.4.402.265
 Środowisko AIR (Windows, Mac OS i urządzenia przenośne): 3.4.0.2540
 Zestaw SDK środowiska AIR: 3.4.0.2540
 APSB12-19

Ta zawartość jest licencjonowana na warunkach licencji Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License  Posty z serwisów Twitter™ i Facebook nie są objęte licencją Creative Commons.

Informacje prawne   |   Zasady prywatności online