Niektóre elementy interfejsu API nie są obsługiwane w aplikacjach działających w profilu urządzenia mobilnego (takich jak aplikacje działające na telefonie iPhone).
W przypadku używania tego samego kodu ActionScript do pisania programu z myślą o wielu profilach (np. komputerze stacjonarnym oraz urządzeniu mobilnym) należy użyć kodu w celu sprawdzenia, czy interfejs API jest obsługiwany. Na przykład klasa NativeWindow nie jest obsługiwana w aplikacjach na telefon iPhone. (W aplikacjach iPhone nie można używać ani tworzyć okien rodzimych.) W celu sprawdzenia, czy aplikacja działa w profilu obsługującym okna rodzime (takim jak profil aplikacji lokalnej na komputerze stacjonarnym), należy sprawdzić właściwość
NativeWindow.isSupported
.
W poniższej tabeli wymieniono interfejsy API, które nie są obsługiwane w profilu urządzenia mobilnego. Ponadto wymieniono tu również właściwości, które można sprawdzić w celu stwierdzenia, czy aplikacja działa na platformie oferującej obsługę interfejsu API.
Interfejs API
|
Test obsługi
|
Accessibility
|
Capabilities.hasAccessibility
|
Camera
|
Camera.isSupported
|
DatagramSocket
|
DatagramSocket.isSupported
|
DNSResolver
|
DNSResolver.isSupported
|
DockIcon
|
NativeApplication.supportsDockIcon
|
DRMManager
|
DRMManager.isSupported
|
EncryptedLocalStore
|
EncryptedLocalStore.isSupported
|
HTMLLoader
|
HTMLLoader.isSupported
|
LocalConnection
|
LocalConnection.isSupported
|
Microphone
|
Microphone.isSupported
|
NativeApplication.exit()
|
—
|
NativeApplication.menu
|
NativeApplication.supportsMenu
|
NativeApplication.isSetAsDefaultApplication()
|
NativeApplication.supportsDefaultApplication
|
NativeApplication.startAtLogin
|
NativeApplication.supportsStartAtLogin
|
NativeMenu
|
NativeMenu.isSupported
|
NativeProcess
|
NativeProcess.isSupported
|
NativeWindow
|
NativeWindow.isSupported
|
NativeWindow.notifyUser()
|
NativeWindow.supportsNotification
|
NetworkInfo
|
NetworkInfo.isSupported
|
Obsługa formatu PDF
|
HTMLLoader.pdfCapability
|
PrintJob
|
PrintJob.isSupported
|
SecureSocket
|
SecureSocket.isSupported
|
ServerSocket
|
ServerSocket.isSupported
|
Shader
|
—
|
ShaderFilter
|
—
|
StorageVolumeInfo
|
StorageVolumeInfo.isSupported
|
XMLSignatureValidator
|
XMLSignatureValidator.isSupported
|
Nie jest możliwe tworzenie aplikacji AIR opartych na językach HTML i JavaScript w profilu urządzenia mobilnego.
Niektóre klasy ActionScript 3.0 są obsługiwane tylko częściowo:
File
Aplikacje telefonu iPhone mają dostęp wyłącznie do katalogu aplikacji oraz katalogu magazynu aplikacji. Ponadto możliwe jest wywołanie metod
File.createTempFile()
oraz
File.createTempDirectory()
. Wywołanie operacji w celu uzyskania dostępu do innego katalogu (np. wywołanie metody odczytu lub zapisu FileStream) skutkuje wyjątkiem IOError.
Aplikacje iPhone nie obsługują okien dialogowych przeglądarki plików rodzimych, takich jak ten udostępniany przez metodę
File.browseForOpen()
.
Loader
W aplikacji na telefon iPhone nie można używać metody
Loader.load()
. Nie można jednak uruchomić kodu ActionScript w treści SWF załadowanej metodą
Loader.load()
. Można jednak użyć zasobów z pliku SWF (takich jak klipy wideo, czcionki oraz dźwięki z biblioteki). Możliwe jest również użycie metody
Loader.load()
do załadowania plików obrazów.
Wideo
W aplikacjach AIR na telefon iPhone obsługiwane jest wyłącznie wideo w formacie Sorensen oraz ON2 VP6.
Można użyć metody
navigateToURL()
do otwarcia wideo w formacie H.264 poza aplikacją. Jako parametr
request
należy przekazać obiekt URLRequest wraz z adresem URL wskazującym na materiał wideo. Wideo uruchamia się w odtwarzaczu wideo telefonu iPhone.
Nieobsługiwane interfejsy API oraz debugowanie za pomocą narzędzia ADL
Niektóre elementy funkcjonalności środowiska AIR nieobsługiwane w telefonie iPhone są mimo to dostępne podczas testowania aplikacji za pomocą narzędzia ADL (na komputerze programisty). Należy pamiętać o tych różnicach podczas testowania treści za pomocą narzędzia ADL.
Funkcjonalność ta obejmuje następujące kodeki audio i wideo: Speex (audio), H.264/AVC (wideo) oraz AAC (audio). Kodeki te są niedostępne dla aplikacji AIR działających w telefonie iPhone. Działają one jednak w sposób normalny na komputerach stacjonarnych.
Ułatwienia dostępu i obsługa czytnika ekranu działają w programie ADL w systemie Windows. Te interfejsy API nie są obsługiwane w telefonie iPhone.
Protokół RTMPE działa normalnie w przypadku używania za pomocą narzędzia ADL na komputerze stacjonarnym. Połączenie NetConnection podejmujące próbę nawiązania połączenia za pomocą protokołu RTMPE nie działa jednak w telefonie iPhone.
Klasa Loader działa bez dodatkowych ograniczeń w przypadku uruchomienia treści za pomocą narzędzia ADL. Jednak podczas wykonywania aplikacji na telefonie iPhone próby załadowania treści SWF zawierającej kod bajtowy ActionScript skutkują komunikatami o błędzie.
Instancje Shader są wykonywane w programie ADL. Jednak w telefonie iPhone kod bajtowy modułu Pixel Bender nie jest interpretowany, zaś moduły cieniujące nie wpływają na wyświetlaną grafikę.
Więcej informacji można znaleźć w sekcji
Debugowanie aplikacji na telefon iPhone
.