Problèmes résolus

Date de publication : 08/10/2012

  • Blocage lors de la navigation vers et depuis le contenu Flash dans Internet Explorer (3328165)
  • Impossible de mettre en package une application avec un fichier ANE sous iOS, car ce fichier n’implémente pas la fonction finalizer. (3325320)
  • Échec avec une exception « null pointer » lors de la mise en package d’un fichier IPA en utilisant uniquement l’implémentation par défaut dans le fichier ANE sous iOS. (3325321)
  • Les données de la base de données sont effacées après chaque lancement sur le simulateur iOS. (3329309)
  • Débogage Wi-Fi sous iOS : le débogage ne fonctionne pas sous iOS lorsque l’interface réseau est sélectionnée comme interface par défaut dans le lecteur d’AIR 3.4. (3325323)

Date de publication : 21/08/2012

  • Netstream se bloque par intermittence lors de la déconnexion (3193417)
  • Problème d’arrêt de la diffusion continue du son en direct sur AIR Android (3188340)
  • drawWithQuality() n’effectue pas correctement le rendu des filtres sur les périphériques Android (3224928)
  • Clipboard.generalClipboard.setData ne fonctionne pas sur iOS (3226045)
  • Certains contenus vidéo FLV ne sont pas lus dans Flash Player sous Windows (3187569)
  • Seul le son du côté droit est lu dans les applications basées sur Flash Player dans Firefox sous Windows (3289279)
  • Fonction de verrouillage de la souris désactivée après le passage en mode plein écran interactif (3174344)
  • [IOS5] Les champs de texte avec des polices incorporées sont altérés sur les périphériques mobiles (3161138)
  • La première image de certains contenus diffusés en continu se bloque (3207896)
  • Les icônes d’application de 50 x 50, 100 x100 et 1 024 x 1 024 sont désormais prises en charge par les applications iOS dans le descripteur d’application (3217144)
  • Blocage occasionnel des applications utilisant des extensions natives sur iOS lors de l’utilisation de certaines bibliothèques externes, p. ex., Libxml2.dylib (3226974) 
  • Une certaine déviation est observée lorsqu’une image de lancement d’une résolution de 768 x 1 004 ou de 1 024 x 748 est mise en package dans une application iPad plein écran. (3230762). Les nouvelles instructions d’utilisation des images de lancement peuvent être consultées ici.
  • Les vidéos H264 sur iOS se bloquent lors de la commutation de deux objets NetStream joints à un objet StageVideo (3206438)
  • Un problème avec CameraRoll.browseForImage() entraîne une perte de transparence et un affichage en blanc (3291312)

Nouvelles fonctionnalités

Date de publication : 08/10/2012

Depuis le 19/09/2012, le kit SDK iOS6 n’est plus en version bêta.

Aucune nouvelle fonctionnalité dans cette version

Date de publication : 21/08/2012

  • Programmes de travail d’ActionScript (Flash Player).
  • Prise en charge du pont de sandbox (Flash Player).
  • Prise en charge de la gestion de licences : fonctionnalités Premium de Flash Player pour les jeux (Flash Player).
  • Profil Stage3D limité pour un meilleur accès au GPU (Flash Player et AIR)
  • Prise en charge de LZMA pour ByteArray (Flash Player et AIR)
  • Amélioration des méthodes attachCamera/Camera sur les objets StageVideo (Flash Player et AIR)
  • Texture compressée avec prise en charge alpha pour Stage3D (Flash Player et AIR)
  • Codage DXT (Flash Player et AIR)
  • API Carbon déconseillées pour AIR (AIR)
  • Déploiement direct d’AIR à l’aide de l’outil ADT (AIR)
  • Notifications Push pour iOS (AIR)
  • Mode de lecture audio ambiant (AIR)
  • Prise en charge des exceptions dans les extensions natives pour iOS (AIR)
  • Nouvelle option dans l’outil ADT permettant d’afficher la liste des périphériques mobiles connectés (AIR)
  • Option d’ADT permettant de résoudre les conflits de symbole ANE sur iOS (AIR)

Pour disposer d’une liste complète des fonctions de Flash Player et AIR, y compris celles introduites dans les versions précédentes, consultez le document ici

Versions publiées

Produit Version publiée
 Flash Player Desktop (Windows® /Mac)  11.4.402.287
 AIR (Windows®, Mac, Mobile)  3.4.0.2710
 Kit SDK AIR  3.4.0.2710

Problèmes connus

Date de publication : 21/08/2012
  • transformVector() de Matrix3D ne transforme pas correctement le composant w (3190677)
  • [IOS] Sur iOS 4.3, les objets Cubemap compressés avec Alpha ne sont pas correctement rendus (3282166)
  • L’utilisation de navigateToURL avec des caractères ASCII étendus ne fonctionne pas correctement pour les applications AIR de bureau (3161093)
  • [IOS] Sur certains contenus, l’installation d’un fichier .ipa avec AIR 3.4 échoue parfois en renvoyant l’erreur d’installation suivante : PackageExtractionFailed (3220974)
  • Lors de l’utilisation de l’indicateur –hideAneLibSymbols pendant la mise en package d’une application pour iOS, seules les options de la structure et de la bibliothèque de liaison, ainsi que les options telles que -ios_version_min, doivent être utilisées dans le fichier ANE platform.xml
Adobe continue de travailler sur la version bêta du kit SDK d’iOS 6 et de résoudre les problèmes associés. Les problèmes connus sont les suivants :
  • La boîte de dialogue d’autorisation de la localisation ne s’affiche pas sur iOS 6 bêta (3291688)
  • Les applications AIR mises en package avec le kit SDK d’AIR 3.4 et le kit SDK d’iOS 6 bêta ne prennent pas en charge autoOrients pour l’affichage à l’envers sur l’iPod et l’iPhone (3286288)
  • Les applications mises en package avec le kit SDK d’AIR 3.4 et le kit SDK d’iOS 6 bêta ne prennent pas en charge la balise aspectRatio sur les périphériques iOS 5.1 (3286320)

Améliorations de la sécurité

Bulletin de sécurité Produits concernés
 APSB12-22  Flash Player Desktop (Windows® et Mac)

 Flash Player (AndroidTM)

Nouvelles fonctionnalités : Aperçu


Programmes de travail ActionScript

  • L’introduction de programmes de travail à ActionScript et au moteur d’exécution de Flash permet désormais aux développeurs Flash de se décharger de certaines tâches, telles que les opérations à latence élevée et les calculs à long terme, sur des « programmes de travail en arrière-plan ». Ces programmes de travail en arrière-plan s’exécutent simultanément afin d’utiliser au mieux les ressources de la machine et d’éviter certains problèmes tels que le blocage de l’interface utilisateur. 
  • Remarque : pour tirer le meilleur parti des programmes de travail ActionScript et être capable de les déboguer, vous devez disposer de la prochaine version de Flash Builder. La prochaine version de Flash Builder sera disponible en version bêta dans le courant du mois d’août.
  • Remarque : la prise en charge de la mémoire partagée (ByteArray.shareable) sera finalement disponible dans une prochaine version de Flash Player.

Prise en charge du pont de sandbox

  • Le pont de sandbox permet d’exposer des objets ou fonctions propres à ActionScript lors d’une communication interdomaines entre fichiers SWF. Cette fonction est déjà disponible dans AIR et sera intégrée à Flash Player dans cette version.

Prise en charge de la gestion de licences : fonctions Premium de Flash Player pour les jeux (Flash Player)

  • Avec l’introduction de fonctionnalités Premium destinées aux jeux, les flux de travail non ActionScript peuvent désormais cibler Flash Player. Cette version prend en charge le contrôle de licence des fonctionnalités Premium des API XC (utilisation combinée de l’API de mémoire de domaine et de l’API d’accélération matérielle de la scène 3D) dans Flash Player. Ces API sont utilisées par certains outils tiers, tels que Unity et le compilateur de projets « Alchemy » C/C++ d’Adobe. Pour plus d’informations, rendez-vous sur www.adobe.com/go/fpl_fr.

Profil Stage3D limité pour un meilleur accès au GPU

  • Flash Player limite l’utilisation de l’accélération matérielle en fonction de la date du pilote de votre carte vidéo. Dans les versions précédentes, nous limitions la prise en charge des pilotes antérieurs au 1er janvier 2008. Dans cette version, nous modifierons cette limitation aux pilotes antérieurs au 1er janvier 2006. Le contenu utilisant wmode=direct (ou renderMode=direct pour AIR) doit faire l’objet d’une accélération matérielle sur les pilotes de carte graphique ultérieurs au 1/1/2006, lorsque cela est possible. Cela s’applique aux API Stage3D et [StageVideo|StageVideo]. En outre, nous avons ajouté un nouveau profil pour l’API Stage3D appelé profil « limité », qui permet d’exécuter du contenu avec accélération matérielle sur les puces Intel® GMA précédemment mises sur liste noire. Pour obtenir plus d’informations sur ce nouveau profil et savoir comment en tirer parti, voir ci-dessous.

Prise en charge de LZMA pour ByteArray

  • Outre la compression zlib de ByteArray, nous incluons un autre type de compression basé sur LZMA pour compresser les données contenues dans un objet ByteArray via les méthodes ByteArray.compress() et ByteArray.uncompress().

Texture compressée avec prise en charge alpha pour Stage3D (Flash Player et AIR)

  • Les images transparentes sont désormais prises en charge pour les textures compressées (format de fichier ATF).

Amélioration des méthodes attachCamera/Camera sur les objets StageVideo

  • Cette fonction expose une nouvelle méthode sur les objets StageVideo qui permet au code ActionScript de diriger le flux vidéo de la caméra vers un objet StageVideo afin d’utiliser le GPU pour le rendu et non l’interpréteur. Le lecteur traite donc beaucoup plus rapidement le flux vidéo de la caméra lorsque l’accélération via le GPU est disponible.

Codage DXT

  • Cette fonction permet de coder une texture non compressée au format DXT au moment de l’exécution afin que la texture puisse être chargée sur le GPU comme une texture DXT compressée.
    Disponible sur les ordinateurs de bureau pour Flash Player 11.4 et AIR 3.4

API Carbon déconseillées pour AIR

  • A partir de Mac OS X 10.8, les API Carbon ne sont plus prises en charge par Apple. Par conséquent, ces API et tous les codes déconseillés sont supprimés d’AIR dans cette version pour être en conformité avec Mac OSX 10.8.
Déploiement direct d’AIR à l’aide de l’outil ADT
  • Cette nouvelle fonction permet au développeur de déployer une application AIR sur un périphérique iOS sans avoir à utiliser iTunes ou XCode. Notez toutefois qu’il est nécessaire d’installer iTunes 10.5.0 ou une version ultérieure sur l’ordinateur de l’utilisateur pour pouvoir utiliser cette fonction.

Notifications Push sur IOS

  • Cette fonction fait appel au service APNS (Notification Push Apple Service) et à un fournisseur (serveur tiers communiquant avec l’APN) pour générer des notifications. Un nouveau package, flash.notifications, a été introduit. La distribution de notifications Push dépend entièrement du service APNS ; par ailleurs, APNS ne garantit pas la distribution de notifications Push.Apple recommande également la souscription aux notifications Push chaque fois qu’une application est lancée. Chaque fois que l’application cliente souscrit aux notifications Push, APNS lui fournit un ID de jeton ; cet ID de jeton doit être envoyé au serveur tiers ou au fournisseur chargé d’envoyer les notifications à distance.

Mode de lecture audio ambiant

  • Avec AIR 3.4, les utilisateurs ont à leur disposition un autre mode de lecture audio appelé AMBIANT, outre les modes VOIX et MÉDIA. Ce nouveau mode de lecture audio permet aux utilisateurs de forcer leur application à obéir à l’« ’interrupteur de désactivation du son » présent sur leur iPhone/iPad. Ce mode de lecture audio ambiant est particulièrement utile dans les applications de jeu, où l’utilisateur de l’application aura la possibilité de couper le son du jeu et d’écouter la musique de toute autre application en arrière-plan. En mode ambiant, l’application obéit à l’interrupteur de désactivation du son uniquement sur les périphériques iOS. Sur les périphériques AndroidTM, le mode ambiant est identique au mode média.

Prise en charge des exceptions dans les extensions natives pour iOS

  • Une extension native pour iOS peut à présent utiliser les exceptions C++ et Objective-C. C’est à l’extension de détecter toutes les exceptions renvoyées dans son code. Le moteur d’exécution n’est en effet pas en mesure d’intercepter les exceptions renvoyées par les extensions.

Option d’ADT permettant d’afficher une liste des périphériques mobiles connectés

  • Une nouvelle option, « -devices », a été ajoutée à l’outil ADT en vue d’afficher la liste des périphériques iOS/AndroidTM raccordés. Les utilisateurs peuvent recourir à cette option plutôt que d’utiliser adb pour répertorier les périphériques AndroidTM et idb pour dresser la liste des périphériques iOS. Notez toutefois qu’il est nécessaire d’installer iTunes 10.5.0 ou une version ultérieure sur l’ordinateur de l’utilisateur pour pouvoir utiliser cette fonction.

Option d’ADT permettant de résoudre les conflits de symbole ANE sur iOS

  • Etant donné que les développeurs de l’application peuvent utiliser plusieurs extensions natives provenant de diverses ressources, un nom de symbole commun aux 2 ANE peut renvoyer une erreur de mise en package et indiquer qu’il existe un symbole dupliqué dans les fichiers d’objet ou un blocage à l’exécution. Pour contourner ce problème, une nouvelle option d’ADT a été introduite : -hideAneLibSymbols ; cette option peut être spécifiée au moment de la mise en package de l’application. Cette option peut prendre les valeurs « yes » ou « no », où « yes » permet de masquer les symboles de la bibliothèque de chaque ANE aux autres ANE.

Nouvelles fonctionnalités : instructions d’utilisation

Introduction aux programmes de travail

Pour bien démarrer avec les programmes de travail, reportez-vous aux exemples du fichier flashplayer11-4_p1_ex_concurrency.zip.

Remarque

Voici l’encombrement mémoire mesuré par programme de travail sous MacOS et Windows® :

Nombre de programmes de travail

Mac BookPro
Mac OS X 10.7.3 
Intel® CoreTM i7 2,4 GHz
8 Go de RAM 
Mac OS X 10.7 
Mémoire (Mo)

PC 
Windows® 7 32 bits 
Intel® Xeon Quad Core 3,2 GHz 
2 048 Mo de RAM 
Windows® 7 
Mémoire (Mo)

Ordinateur portable Lenovo T61 
Windows® XP 
Intel® CoreTM Duo Core 2,2 GHz 
2 014 Mo de RAM 
Windows® XP 
Mémoire (Mo)

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

Lorsque le code est exécuté dans le contexte d’un programme de travail non primordial (c’est-à-dire en arrière-plan), le comportement de certaines API du moteur d’exécution de Flash sera différent de celui du code ActionScript qui s’exécute dans le thread principal. Les API suivantes se comportent différemment lorsqu’elles sont utilisées à partir d’un programme de travail en arrière-plan.

API non fonctionnelles

Les API suivantes ne seront pas disponibles à partir d’un programme de travail en arrière-plan. Toute tentative de créer une occurrence de l’une de ces fonctions renvoie une exception IllegalOperationError accompagnée du message « Cette fonction n’est pas disponible dans ce contexte » ; l’ID d’erreur est le même dans tous les cas, ce qui permet aux développeurs d’agir en fonction de cette valeur.

  • flash.desktop.Clipboard // l’appel du constructeur renvoie ; l’appel de generalClipboard renvoie la valeur null
  • flash.desktop.NativeDragManager // isSupported renvoie false
  • flash.desktop.Updater // isSupported renvoie false
  • flash.display.NativeMenu // isSupported renvoie false
  • flash.display.NativeWindow // isSupported renvoie false
  • flash.display.ToastWindow // impossible d’accéder à l’occurrence, car stage.window ne sera jamais défini
  • flash.display.Window // impossible d’accéder à l’occurrence, car stage.window ne sera jamais défini
  • flash.external.ExtensionContext // createExtensionContext() renvoie toujours la valeur null ou renvoie une erreur
  • flash.external.ExternalInterface // available renvoie false
  • flash.html.* // HTMLLoader.isSupported renvoie false
  • flash.media.CameraRoll // supportsAddBitmapData and supportsBrowseForImage renvoient false
  • flash.media.CameraUI // isSupported renvoie false
  • flash.media.StageWebView // isSupported renvoie false
  • flash.net.drm.* // DRMManager.isSupported renvoie false
  • flash.printing.* // PrintJob.isSupported renvoie false
  • flash.security.XMLSignatureValidator // isSupported renvoie false
  • flash.system.IME // isSupported renvoie false
  • flash.system.SystemUpdater // l’appel du constructeur renvoie
  • flash.text.StageText // l’appel du constructeur renvoie
  • flash.ui.ContextMenu // isSupported renvoie false
  • flash.ui.GameInput // isSupported renvoie false
  • flash.ui.Mouse // toutes les méthodes sont des instructions non opératoires ; le réglage de la propriété « cursor » n’est pas opératoire

Changements de comportement des API

Les API suivantes modifient leur comportement lorsqu’elles sont exécutées à partir d’un programme de travail en arrière-plan. Certains appels de méthodes ne sont pas opératoires, alors que d’autres renvoient IllegalOperationError ou une exception équivalente, conformément à l’API documentée. Dans la mesure du possible, les valeurs renvoyées doivent être conformes à la documentation. Par exemple, si une méthode renvoie un tableau contenant des éléments dans des conditions normales, elle renvoie un tableau vide lorsqu’elle est exécutée à partir d’un programme de travail en arrière-plan.

  • flash.accessibility.Accessibilty
    • active // renvoie toujours false
    • updateProperties(); // non opératoire
  • propriétés de flash.desktop.NativeApplication**

·          

  • flash.display.Stage
    • allowsFullScreen // renvoie toujours false
    • stage3Ds // renvoie toujours un vecteur vide
    • stageVideos // renvoie toujours un vecteur vide
    • supportsOrientationChange // renvoie toujours false
    • wmodeGPU // renvoie toujours false
  • flash.filesystem.File
    • browseForDirectory(), browseForOpen(), browseForOpenMultiple(), browseForSave() // non opératoires
  • flash.net.FileReference** browse(), download(), save() // non opératoires ; renvoient toujours false
  • flash.net.FileReferenceList** browse() // non opératoire ; renvoie toujours false
  • flash.system.System
    • ime // renvoie toujours null
    • exit() // force ce programme de travail en arrière-plan à s’arrêter et à se fermer
    • setClipboard() // non opératoire
  •  
    • méthodes
      • activate(), clear(), copy(), cut(), paste(), selectAll() // non opératoires
      • exit() // force ce programme de travail en arrière-plan à s’arrêter et à se fermer
    • événements
      • seul l’événement exiting est pris en charge : cet événement est distribué lorsque le programme de travail s’arrête (lors de l’appel de la méthode de cycle de vie ou lorsque le programme de travail « principal » s’arrête, notamment lorsque le moteur d’exécution se ferme ; non annulable depuis le programme de travail en arrière-plan)
    •  
      • supportsDefaultApplication, supportsDockIcon, supportsMenu, supportsStartAtLogin, supportsSystemTrayIcon // renvoient false
      • activeWindow // renvoie null
      • autoExit // l’accesseur Set n’est pas opératoire
      • idleThreshold // l’accesseur Set n’est pas opératoire
      • openedWindows // renvoie un tableau vide []
      • systemIdleMode // l’accesseur Set n’est pas opératoire

Accès au GPU amélioré - Profil Stage3D limité

Un nouveau paramètre appelé « profile » a été introduit à Context3D. Ce paramètre est fourni à la fonction Stage3D.requestContext3D() et vous pouvez lui attribuer l’une des deux valeurs suivantes : Context3DProfile.BASELINE ("baseline"), qui renvoie le Context3D standard ayant existé dans les versions précédentes, ou Context3DProfile.BASELINE_CONSTRAINED ("baselineConstrained"), qui renvoie un nouveau type de Context3D capable de s’exécuter avec accélération matérielle sur les GPU auparavant non pris en charge. Le profil limité permet aux auteurs du contenu de créer du contenu Stage3D qui cible des systèmes utilisant d’anciennes cartes graphiques telles qu’Intel® GMA 900/950 sur Windows®. Pour cibler d’anciens systèmes avec le profil limité, il est nécessaire de limiter les fonctions de la scène 3D afin de garantir que le contenu s’exécute correctement avec ce système. Les cartes telles que GMA 900/950 prennent en charge uniquement la version 2.0 du shader de pixels/de fragments, qui impose les limites suivantes sur la scène 3D lors de l’utilisation du profil limité :

  • Vous êtes limité à 64 ALU et à 32 instructions de texture par shader.
  • Vous êtes limité à 4 indirections de lecture de textures par shader.
  • Vous êtes limité à un nombre inférieur de constantes/variation/temps. par shader.
  • Il n’existe aucune assistance pour l’enregistrement de prédicats. Ceci affecte les instructions sln/sge/seq/sne, qui doivent être remplacées par des instructions mov/cmp, disponibles avec ps_2_0 (cette opération s’effectue en arrière-plan, avec l’inconvénient de devoir utiliser davantage d’instructions par rapport à ps_2_x).
  • Le tampon d’arrière-plan de Context3D doit toujours être dans les limites de la scène.
  • Une seule occurrence d’un objet Context3D exécuté dans le profil limité est autorisée dans une occurrence de Flash Player.
  • Comme c’est le cas avec les périphériques mobiles, les éléments classiques de la liste d’affichage de Flash ne sont pas mis à jour tant que le contenu de la scène 3D limitée est visible, sauf lors de l’appel de Context3D.present().

« profile » est le second paramètre facultatif de la méthode requestContext3D. Les développeurs peuvent solliciter le profil "baselineConstained" pour obtenir un contexte 3D en mode limité, comme le montre l’API ci-dessous : function requestContext3D ( context3DRenderMode : String = "auto", profile : String = "baseline" ) : void;
Exemple :

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

Déploiement direct d’AIR à l’aide de l’outil ADT

Installation :
pour installer un IPA sur un périphérique, utilisez la commande suivante :
adt -installApp -platform ios -device <deviceID> -package <ipa-file> 
Désinstallation :
pour désinstaller un IPA d’un périphérique, utilisez la commande suivante :
adt -uninstallApp -platform ios -device <deviceID> -appid <app-id> 
<deviceID> de votre périphérique connecté représenterait la valeur « Handle » affichée par la commande suivante :
@SDKLocation/bin/adt –devices –platform ios 
<app-id> est spécifiée dans le fichier descripteur de l’application (.xml app) au sein de la balise <id>. Si vous créez votre projet en utilisant Flash Builder, il est, par défaut, identique au nom de votre application. 

Si vous connectez un seul périphérique à l’ordinateur de bureau, omettez l’argument « -device <deviceID> » afin que l’application soit installée/désinstallée sur le périphérique connecté.
adt -installApp -platform ios -package <ipa-file> 

Notifications Push sur IOS

1)     L’identifiant d’application (balise id) dans app-xml doit être identique à l’identifiant d’application du certificat de configuration mobile activé avec les notifications Push.
2)     Incluez le droit aps-environment dans le fichier descripteur de l’application :

<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>

Pour soumettre l’application à l’App Store avec les notifications Push activées, vous devez définir le droit aps-environment sur le mode de production. Le développeur doit utiliser le profil de configuration avec les notifications Push activées. Vérifiez les droits de l’application signée à l’aide de la commande suivante.

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

3) Utilisez la classe flash.notification nouvellement ajoutée à l’application pour activer la prise en charge des notifications Push. Par exemple,

// 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
}

L’application cliente peut stocker dans son regroupement les chaînes de message d’alerte traduites pour chaque localisation qu’elle prend en charge. Le fournisseur spécifie les propriétés loc-key et loc-args dans le dictionnaire aps de la charge utile de la notification. Lorsque l’appareil reçoit la notification, il utilise les propriétés du dictionnaire aps pour trouver et formater la chaîne localisée correspondant à la langue qui s’affiche sur l’écran de l’utilisateur.

Les chaînes localisées must se trouvent dans le fichier appelé Localizable.strings du dossier <langue>.lproj correspondant. Chaque entrée dans ce fichier dispose d’une clé et d’une valeur de chaîne localisée ; la chaîne peut disposer de spécificateurs de format pour la substitution de valeurs variables. Lorsqu’une application sollicite une chaîne particulière, elle obtient la ressource localisée dans la langue actuellement sélectionnée par l’utilisateur.

Pour recevoir les notifications distantes localisées, une application AIR doit disposer de paires clé-valeur localisées dans le fichier Localizable.strings du dossier <langue>/lproj de l’IPA. Pour ajouter le fichier Localizable.strings à l’IPA, il suffit au développeur d’ajouter le dossier <langue>.lproj respectif dans la commande ADT, comme suit :

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

Notez que le dossier lproj doit se trouver dans le répertoire en cours afin que l’outil ADT puisse fusionner les fichiers dans le dossier lproj approprié. Si le dossier lproj est fourni comme dossier a/b/c/en.lproj, l’outil ADT l’ajoute comme a/b/c/en.lproj ; par conséquent, les paires clé-valeur localisées ne seront pas accessibles à l’application.

Option d’ADT permettant d’afficher une liste des périphériques mobiles raccordés

Vous pouvez utiliser la commande suivante pour obtenir des informations sur les périphériques iOS/AndroidTM raccordés :

adt -devices -platform (android | ios)

L’utilisation de cette commande génère le type de résultat suivant :

Liste des périphériques raccordés :

Handle   DeviceClass   DeviceUUID                                                    DeviceName

7           iPhone         783fc8af34a6022c924c34fe7025e7e39d9d123b abc’s iPhone


Prise en charge de la gestion de licences : fonctionnalités Premium de Flash Player pour les jeux (Flash Player uniquement)

L’utilisation conjointe de la mémoire de domaine (utilisée par certains outils tiers et par le compilateur de projets « Alchemy » C/C++) et de l’accélération matérielle de la scène 3D requiert une licence. Lorsque vous utilisez ces deux fonctions conjointement, un filigrane d’informations s’affiche dans le débogueur de contenu de Flash Player (lecteur de débogage). Cette exigence en matière de licence ne s’applique pas au contenu qui utilise l’accélération matérielle de la scène 3D sans mémoire de domaine (ou la mémoire de domaine sans la scène 3D) et ne s’applique pas au contenu déployé à l’aide d’Adobe AIR. 

Gestion de la perte de périphérique

Le contenu sans licence continue à s’exécuter en basculant automatiquement la scène 3D sur le rendu logiciel. Pour vous assurer que votre contenu gère correctement la perte des ressources de la carte graphique, écoutez les événements Event.CONTEXT3D_CREATE sur l’objet Stage3D afin de réinitialiser les graphiques de votre contenu. Vous pouvez simuler un événement de perte de périphérique en appelant context3D.dispose(). (Tout le contenu de l’objet Stage3D doit gérer la perte de périphérique, qui peut également se produire si un ordinateur est verrouillé ou si l’économiseur d’écran est activé.)

Option d’ADT permettant de résoudre les conflits de symbole ANE sur iOS

Vous pouvez utiliser la commande suivante pour mettre en package des applications à l’aide de cette option :

 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? )

Par exemple,

 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

Utilisez la valeur « yes » pour éviter les conflits de symbole et la valeur « no » pour obtenir le même comportement que précédemment. Notez que cette fonctionnalité n’est pas encore disponible dans Flash Builder/Flash Professional.

Codage 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);


Texture compressée avec prise en charge alpha


[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);

Instructions de création

Création pour Flash Player 11.4

Pour utiliser la nouvelle version de Flash Player, vous devez cibler la version 17 du SWF en transmettant un argument de compilateur supplémentaire au compilateur Flex : -swf-version=17. Suivez les instructions ci-dessous. Si vous utilisez le kit SDK d’Adobe Flex :

  • Téléchargez le nouveau fichier playerglobal.swc pour Flash Player 11.4.
  • Téléchargez le kit SDK Flex 4.5.1 (4.5.1.21328) du tableau SDK Flex 4.5.
  • Installez l’application dans votre environnement de développement.
  • Dans Flash Builder, créez un projet ActionScript : Fichier -> Nouveau -> Projet ActionScript.
  • Ouvrez le panneau des propriétés (cliquez avec le bouton droit de la souris et sélectionnez ensuite « Propriétés »). Sélectionnez Compilateur ActionScript dans la liste de gauche.
  • Utilisez l’option « Configurer le SDK de Flex » située dans le coin supérieur droit pour diriger le projet vers l’application Flex 21328. Cliquez sur OK.
  • Configurez votre projet pour cibler la version 17 du SWF.
  • Ouvrez le panneau des propriétés (cliquez avec le bouton droit de la souris et sélectionnez ensuite « Propriétés »). Sélectionnez Compilateur ActionScript dans la liste de gauche.
  • Ajoutez à l’entrée « Arguments de compilateur supplémentaires » : -swf-version=17. Vous vous assurez ainsi que le fichier SWF cible la version 17 du SWF. Si vous compilez sur la ligne de commande et non dans Flash Builder, vous devez ajouter le même argument de compilateur.
  • Assurez-vous d’avoir installé la nouvelle version de Flash Player 11.4 dans votre navigateur.

Création pour AIR 3.4 Mise à jour vers l’espace de noms d’AIR 3.4

Vous devez mettre à jour le fichier descripteur d’application vers l’espace de noms 3.4 pour accéder aux nouvelles API et au nouveau comportement d’AIR 3.4. Si votre application n’a pas recours aux nouvelles API et au nouveau comportement d’AIR 3.4, il n’est pas nécessaire de mettre à jour l’espace de noms. Nous recommandons toutefois à tous les utilisateurs de commencer à utiliser l’espace de noms d’AIR 3.4 même s’ils ne profitent pas encore des nouvelles fonctionnalités de la version 3.4. Pour mettre à jour l’espace de noms, remplacez l’attribut xmlns dans le descripteur d’application par : <application xmlns="http://ns.adobe.com/air/application/3.4">

Notification d’un bogue

Vous avez repéré un bogue ? Envoyez-le sur la Base de données de bogues Flash Player et Adobe AIR.

Il est possible que Flash Player et AIR utilisent votre matériel vidéo pour décoder et lire les vidéos H.264. Il est possible que certains bogues vidéo ne puissent être reproduits qu’avec votre matériel et lecteur vidéo particuliers. Lorsque vous signalez un bogue qui implique du contenu vidéo, il est indispensable d’annoter les informations concernant votre matériel et lecteur vidéo, ainsi que votre système d’exploitation et navigateur (si vous utilisez Flash Player), afin que nous puissions reproduire les problèmes et faire des recherches. Veillez à inclure ces informations conformément aux Instructions concernant la notification de problèmes relatifs à la lecture de vidéos. Remarque : En raison du grand nombre de courriers électroniques reçus, nous ne pouvons donner suite à chaque demande.

Nous vous remercions d’utiliser Adobe® Flash Player® et AIR®, et de prendre le temps de nous faire part de vos impressions !

Configuration système

Pour connaître la configuration requise pour les dernières versions de Flash Player et d’AIR, consultez le document ici.


Historique des versions du moteur d’exécution

 

 Date de publication Version du moteur d’exécution Améliorations de sécurité
21 août 2012 Flash Player Desktop (Windows, Mac) : 11.4.402.265
AIR (Windows, Mac, Mobile) : 3.4.0.2540
SDK AIR : 3.4.0.2540
 APSB12-19

Ce produit est distribué sous licence Creative Commons Attribution - Pas d’utilisation commerciale - Partage à l’identique 3.0 non transposé  Les publications Twitter™ et Facebook ne sont pas couvertes par les dispositions Creative Commons.

Mentions légales   |   Politique de confidentialité en ligne