Certaines API d’ActionScript 3.0 ne sont pas prises en charge pour les applications qui s’exécutent dans le profil du périphérique mobile (telles les applications qui tournent sur l’iPhone).
Si vous utilisez le même code ActionScript pour développer des applications relevant de profils divers (bureau et mobile, par exemple), testez à l’aide d’un code la prise en charge d’une API. La classe NativeWindow n’est, par exemple, pas prise en charge par les applications iPhone, puisque ces dernières ne peuvent ni utiliser, ni créer de fenêtres natives. Pour s’assurer qu’une application s’exécute sur un profil qui prend en charge les fenêtres natives (le profil de bureau, par exemple), vérifiez la propriété
NativeWindow.isSupported
.
Le tableau ci-dessous recense les API qui ne sont pas prises en charge par le profil du périphérique mobile. Il dresse également la liste des propriétés qui permettent de déterminer si une application s’exécute sur une plate-forme prenant en charge une API.
API
|
Propriété permettant de tester la prise en charge
|
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
|
PDF support
|
HTMLLoader.pdfCapability
|
PrintJob
|
PrintJob.isSupported
|
SecureSocket
|
SecureSocket.isSupported
|
ServerSocket
|
ServerSocket.isSupported
|
Shader
|
—
|
ShaderFilter
|
—
|
StorageVolumeInfo
|
StorageVolumeInfo.isSupported
|
XMLSignatureValidator
|
XMLSignatureValidator.isSupported
|
Il est impossible de programmer des applications AIR en HTML et JavaScript pour le profil du périphérique mobile.
Certaines classes d’ActionScript 3.0 ne sont que partiellement prises en charge :
Fichier
Les applications iPhone ne peuvent accéder qu’au répertoire de stockage et au répertoire d’une application. Vous pouvez également appeler
File.createTempFile()
et
File.createTempDirectory()
. Appeler une opération pour accéder à un autre répertoire (une méthode de lecture ou d’écriture FileStream, par exemple) entraîne le renvoi d’une exception IOError.
Les applications iPhone ne prennent pas en charge les boîtes de dialogue de navigateur de fichiers natives, telle la boîte de dialogue fournie par la méthode
File.browseForOpen()
.
Loader
Une application iPhone permet d’utiliser la méthode
Loader.load()
. Vous ne pouvez toutefois pas exécuter un code ActionScript dans un contenu SWF chargé à l’aide de la méthode
Loader.load()
. Il est cependant possible d’utiliser les actifs du fichier SWF (tels que les clips, les images, les polices et les sons de la bibliothèque). Vous pouvez également charger des fichiers d’image à l’aide de la méthode
Loader.load()
.
Vidéo
Une application AIR qui s’exécute sur l’iPhone ne prend en charge que les codecs vidéo Sorensen et ON2 VP6.
Vous disposez de la méthode
navigateToURL()
pour ouvrir une vidéo H.264 hors de l’application. Transmettez un objet URLRequest associé à une URL pointant vers la vidéo en tant que paramètre
request
. La vidéo démarre dans le lecteur vidéo de l’iPhone.
Champs de texte
Les polices et autres paramètres des champs de texte sont sujets à des restrictions sur l’iPhone (voir
Polices et entrée de texte
).
API non prises en charge et débogage avec ADL
Certaines fonctionnalités AIR qui ne sont pas prises en charge par l’iPhone sont néanmoins disponibles lorsque vous testez une application avec ADL (sur l’ordinateur de développement). Tenez compte de ces différences lorsque vous testez un contenu avec ADL.
Cette fonctionnalité comprend les codecs vidéo et audio suivants : Speex (audio), H.264/AVC (vidéo) et AAC (audio). Ces codecs ne sont pas gérés par les applications AIR qui s’exécutent sur l’iPhone. Ils continuent toutefois à fonctionner normalement sur le bureau.
Sous Windows, la prise en charge des fonctions d’accessibilité et des logiciels de lecture d’écran est assurée dans ADL. Ces API ne sont toutefois pas prises en charge sur l’iPhone.
Le protocole RTMPE fonctionne normalement à partir d’ADL sur le bureau. Toutefois, un objet NetConnection qui essaie de se connecter par le biais du protocole RTMPE échoue sur l’iPhone.
La classe Loader fonctionne sans restriction complémentaire lorsqu’un contenu est exécuté avec ADL. Toutefois, lors d’une exécution sur l’iPhone, les tentatives de chargement de contenu SWF qui inclut un pseudo-code ActionScript entraînent la génération d’un message d’erreur.
Les occurrences de Shader s’exécutent dans ADL. Toutefois, le pseudo-code Pixel Bender n’est pas interprété et les shaders n’ont aucun effet graphique sur l’iPhone.
Pour plus d’informations, voir
Débogage d’une application iPhone
.