API d’ActionScript 3.0 non prises en charge sur les périphériques mobiles

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 .