Utilisation
d’ADOB E ®
DIGITAL PUBLISHING SUITE
Dernière mise à jour le 1/2/2013
Mentions légales
Mentions légales
Pour en savoir plus sur les mentions légales, consultez http://help.adobe.com/fr_FR/legalnotices/index.html.
iii
Dernière mise à jour le 1/2/2013
Sommaire
Chapitre 1 : Présentation de Digital Publishing Suite
Préparation à l’utilisation de Digital Publishing Suite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
Présentation du flux de publication numérique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
Installation des outils de publication numérique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
Utilisation d’un ID Adobe pour la publication numérique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
Prise en main de Digital Publishing Suite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
Ressources Digital Publishing Suite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
Guide d’achat de Digital Publishing Suite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
Présentation de Single Edition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
Nouveautés de cette version . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
Historique des notes de mise à jour sur les nouvelles fonctionnalités . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
Notes de mise à jour sur les nouvelles fonctionnalités (toutes les langues) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
Liste des fonctions prises en charge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
Chapitre 2 : Création de documents
Présentation de la conception de mise en page . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
Création de publications numériques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
Création de documents source . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
Création de documents pour divers périphériques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
Création de contenu pour les modèles d’iPads . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
Création de contenu pour l’iPhone . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
Création d’articles PDF multirendus pour les appareils iOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
Différences entre les lecteurs de contenu iOS et Android . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
Structure des dossiers pour les articles importés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
Chapitre 3 : Interactivité
Présentation des incrustations interactives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
Incrustations d’hyperliens . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
Incrustations de diaporamas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
Séquence d’images en incrustation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
Panorama en incrustation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
Incrustations audio et vidéo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
Contenu Web en incrustation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
Panorama et zoom en incrustation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
Incrustations de cadres défilants . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
Imbrication d’incrustations interactives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
Chapitre 4 : Folios et articles
Création et gestion des folios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
Création d’articles et de mises en page . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
Importation d’articles HTML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
Gestion des articles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
Aperçu des folios et des articles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
UTILISATION DE DIGITAL PUBLISHING SUITE iv
Sommaire
Dernière mise à jour le 1/2/2013
Chapitre 5 : Assemblage et publication
Production et publication de folios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
Présentation de la publication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
Tableau de bord Digital Publishing Suite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
Organiseur Folio Producer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
Listes de contrôle pour lecteurs de contenu personnalisés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
DPS App Builder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122
Création d’un lecteur de contenu personnalisé pour l’iPad et l’iPhone . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
Création d’un lecteur de contenu personnalisé pour l’iPad (Single Edition) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134
Création d’un lecteur de contenu personnalisé pour les périphériques Android et Amazon . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134
A propos des lecteurs de contenu personnalisés pour les périphériques PlayBook . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
Création d’une instance personnalisée d’Adobe Content Viewer pour iPad et l’iPhone . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
Création d’un lecteur signé par l’entreprise . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140
Chapitre 6 : Analyses et services
Omniture Analytics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142
Vente de contenu numérique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143
Outil Administration de comptes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144
Maintenance de votre abonnement DPS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149
Abonnements et droits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149
Notifications Push . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150
Utilisation du partage sur les réseaux sociaux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152
Nombre de médias sociaux téléchargés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
1
Dernière mise à jour le 1/2/2013
Chapitre 1 : Présentation de Digital
Publishing Suite
Le logiciel Adobe Digital Publishing Suite permet aux utilisateurs de périphériques mobiles d’afficher du contenu
interactif dans un format magazine. Les concepteurs créatifs qui publient des magazines imprimés avec Adobe®
InDesign® CS5, InDesign CS5.5 ou InDesign CS6 ont la possibilité de transférer ce contenu sur des périphériques
mobiles. Les éditeurs peuvent compléter leurs maquettes avec un contenu interactif, permettant ainsi à leur public de
visualiser du contenu multimédia d’une manière totalement différente. A l’aide de mouvements tactiles, les clients
peuvent parcourir un diaporama, effectuer un panoramique d’images, zoomer, faire pivoter des objets à 360°, et bien
plus encore.
Préparation à l’utilisation de Digital Publishing Suite
Avant de commencer à créer des publications numériques, installez les outils nécessaires, obtenez et utilisez l’ID
Adobe approprié, et enfin découvrez les bases.
Articles connexes
Présentation du flux de publication numérique
Adobe InDesign est le composant central du flux de travaux. Grâce à InDesign, les équipes de conception créent des
mises en page et ajoute des éléments d’interactivité. Ensuite, les équipes de production assemblent les mises en page,
ajoutent des métadonnées et les publient dans un format de folio.
Un utilisateur qui utilise InDesign CS5 ou une version supérieure peut créer, prévisualiser et partager des folios de
publication numériques. Toutefois, pour créer des applications personnalisées à des fins commerciales, vous devez
procéder de l’une des manières suivantes :
• Abonnez-vous à Digital Publishing Suite avec un compte Professional ou Enterprise Un abonnement DPS permet
de créer un nombre illimité d’applications pour App Store Apple, Google Play Store et Amazon Appstore.
• Obtenir un abonnement Adobe Creative Cloud Avec un abonnement Creative Cloud, vous pouvez créer un
nombre illimité d’applications simple folio (iPad uniquement).
• Obtenir une licence Single Edition pour créer un seul lecteur (iPad uniquement).
Pour effectuer cette action : Consultez la section :
Comprendre le flux de publication numérique « Présentation du flux de publication numérique » à la page 1
« Prise en main de Digital Publishing Suite » à la page 8
Voir une présentation de Single Edition « Présentation de Single Edition » à la page 10
Installer les outils Folio Producer « Installation des outils de publication numérique » à la page 4
Utiliser un ID Adobe valide « Utilisation d’un ID Adobe pour la publication numérique » à la page 6
Installer Adobe Content Viewer sur des périphériques mobiles « Aperçu des folios et des articles » à la page 98
UTILISATION DE DIGITAL PUBLISHING SUITE 2
Présentation de Digital Publishing Suite
Dernière mise à jour le 1/2/2013
Transposition de la mise en page InDesign sur l’iPad
Etape 1 : installation des outils Folio Producer
Si vous êtes un utilisateur novice de Digital Publishing Suite, installez la version la plus récente de DPS Tools. Pour
InDesign CS6, choisissez Aide > Mises à jour et installez les outils DPS Desktop. Pour InDesign CS5/CS5.5, installez
les outils Folio Producer et le panneau Folio Builder. Le programme d’installation des outils Folio Producer installe ou
met à jour le panneau Folio Overlays, un module externe obligatoire et Desktop Viewer. Le programme d’installation
du panneau Folio Builder installe uniquement le panneau Folio Builder (voir la section « Installation des outils de
publication numérique » à la page 4).
Si vous disposez d’un iPad ou d’un Android, installez la dernière version d’Adobe Content Viewer depuis la boutique
(Apple App Store, Google Play Store ou Amazon Appstore).
Etape 2 : création de documents source dans InDesign
Créez des documents InDesign qui serviront de mise en page de base pour le contenu numérique. Dans
InDesign CS5/CS5.5, vous pouvez créer à la fois des mises en page au format portrait (vertical) et paysage (horizontal)
dans des documents distincts pour chaque article. Dans InDesign CS6, vous pouvez créer des mises en page
horizontales et verticales au sein d’un même document. Vous pouvez également limiter votre création à une seule
orientation. (voir la section « Création de publications numériques » à la page 37).
Outre l’utilisation de fichiers InDesign comme contenu source, vous pouvez également créer des articles basés sur
HTML. (voir la section « Importation d’articles HTML » à la page 89).
Etape 3 : ajout d’objets interactifs
Utilisez le panneau Folio Overlays pour créer et modifier des objets interactifs. Toutes les fonctions d’interactivité
d’InDesign ne sont pas prises en charge (voir le chapitre « Interactivité » à la page 55).
Pour afficher des exemples et connaître les instructions associées à chaque type d’incrustation, téléchargez
l’application Digital Publishing Suite Tips sur l’iPad ou un autre périphérique mobile.
InDesign Lecteur Adobe Lecteur personnalisé
Création
Folio
Production
Article 1 Article 2 Article 3
Folio
Builder
Overlay
Creator
UTILISATION DE DIGITAL PUBLISHING SUITE 3
Présentation de Digital Publishing Suite
Dernière mise à jour le 1/2/2013
Etape 4 : utilisation de Folio Builder pour créer un folio et des articles
La connexion au panneau Folio Builder est facultative. Si vous vous connectez à l’aide d’un ID Adobe vérifié, les folios
que vous créez sont téléchargés vers un site acrobat.com. Vous pouvez ensuite télécharger ces folios vers l’application
Adobe Content Viewer en vous connectant en utilisant le même compte. Si vous disposez d’un abonnement Creative
Cloud, connectez-vous en utilisant votre compte Creative Cloud. Si vous ne disposez pas d’un ID Adobe vérifié,
rendez-vous sur le site https://digitalpublishing.acrobat.com/fr_FR/welcome.html, cliquez sur Créer un compte, puis
suivez les instructions.
Le panneau Folio Builder permet de créer ou d’ouvrir un folio et d’y ajouter des articles. Chaque article peut avoir deux
mises en page pour les orientations horizontale et verticale. (voir le chapitre « Folios et articles » à la page 79).
Vous pouvez également modifier les métadonnées d’un folio en utilisant Folio Producer Organizer sur le site
http://digitalpublishing.acrobat.com/fr (voir la section « Organiseur Folio Producer » à la page 108).
Etape 5 : aperçu et partage d’articles
Pour afficher un aperçu du folio à l’aide d’Adobe Content Viewer for Desktop, sélectionnez un folio ou un article dans
le panneau Folio Builder puis cliquez sur Aperçu (voir la section « Utilisation de Desktop Viewer pour prévisualiser le
contenu » à la page 98).
Pour prévisualiser le folio sur des périphériques mobiles comme l’iPad, installez le programme gratuit Adobe Content
Viewer sur l’appareil, puis connectez-vous à l’aide de l’ID Adobe que vous utilisez pour vous connecter au panneau
Folio Builder. Utilisez la bibliothèque du lecteur pour télécharger et afficher des folios (voir la section « Aperçu des
folios et des articles » à la page 98).
Utilisez la commande Partager du panneau Folio Builder pour partager le folio avec des tiers. Toutes les personnes qui
disposent d’un ID Adobe valide peuvent afficher le folio que vous partagez gratuitement avec elles. Lorsqu’elles
utilisent leur ID Adobe pour se connecter à Adobe Content Viewer, tous les folios que vous partagez avec elles sont
disponibles au téléchargement (voir la section « Partage de folios » à la page 86).
Etape 6 : mise à disposition des folios pour les utilisateurs (abonnés et Single Edition uniquement)
Si vous êtes un client Professional ou Enterprise, utilisez Folio Producer Organizer pour apporter les touches finales
au folio et le publier dans Distribution Service pour le rendre public (voir la section « Assemblage et publication » à la
page 103).
Utilisez DPS App Builder pour créer un lecteur de contenu personnalisé que vous pouvez soumettre à Apple Store,
Google Play Store ou Amazon Appworld. Si vous disposez d’un abonnement Creative Cloud ou obtenez une licence
Single Edition, vous pouvez créer une application à publication unique pour l’iPad. Si vous disposez d’un compte
Professional ou Enterprise, vous pouvez activer les abonnements (iOS et Amazon), les notifications Push (iOS
uniquement) et les analyses Omniture (voir la section « DPS App Builder » à la page 122).
Etape 7 : analyse des données client et ajout/mise à jour des folios (abonnés DPS uniquement)
Après avoir publié le folio, utilisez la page Analyses du tableau de bord Digital Publishing Suite pour procéder au suivi
des données utilisateur (voir la section « Omniture Analytics » à la page 142).
Continuez à ajouter des folios à votre lecteur personnalisé à folios multiples.
UTILISATION DE DIGITAL PUBLISHING SUITE 4
Présentation de Digital Publishing Suite
Dernière mise à jour le 1/2/2013
Installation des outils de publication numérique
Adobe Digital Publishing Suite est disponible pour InDesign CS5, InDesign CS5.5 et InDesign CS6. Pour installer
l’ensemble complet des outils pour InDesign CS6, sélectionnez Aide > Mises à jour dans InDesign et exécutez le
programme d’installation de DPS Desktop. Pour installer l’ensemble complet des outils de publication numérique
pour InDesign CS5/CS5.5, deux installations séparées sont requises. Installez les outils Folio Producer et le panneau
Folio Builder.
AIR 2.x est nécessaire pour exécuter les applications AIR comme Desktop Viewer. La dernière version d’AIR est
disponible sur http://get.adobe.com/fr/air/.
Si vous rencontrez des problèmes lors de l’installation des outils, consultez la page Problèmes d’installation.
Liens d’installation
Outils d’administration DPS CS6 pour Windows
Outils d’administration DPS CS6 pour Mac OS
Outils Folio Producer CS5.5/CS5 pour Windows
Outils Folio Producer CS5.5/CS5 pour Mac OS
Panneau Folio Builder CS5.5/CS5 pour Windows
Panneau Folio Builder CS5.5/CS5 pour Mac OS
Archive des anciens outils Folio Producer pour Windows
Archive des anciens outils Folio Producer pour Mac OS
Installation des outils DPS Desktop Tools (InDesign CS6)
❖ Dans InDesign, choisissez Aide > Mises à jour et mettez à jour DPS Desktop Tools.
Le programme d’installation des outils de bureau DPS installe le panneau Folio Overlays, le panneau Folio Builder,
un module externe obligatoire et Desktop Viewer.
Remarque : chaque fois qu’une nouvelle version devient disponible, un délai de quelques jours peut s’écouler avant
l’inclusion du programme d’installation le plus récent au programme d’installation des mises à
jour·InDesign Updates. Pendant cette période, vous pouvez mettre à jour les outils DPS Desktop en cliquant sur le lien
dans le panneau Folio Builder ou en téléchargeant le programme d’installation le plus récent à partir du tableau de
bord DPS ou de la page de téléchargements Adobe.
Installation des outils Folio Producer et du panneau Folio Builder (InDesign CS5/CS5.5)
1 Quittez InDesign.
2 Installez les outils DPS Tools.
Windows : Télécharger les outils Folio Producer pour Windows
Mac OS : Télécharger les outils Folio Producer pour Macintosh
3 Installez le panneau Folio Builder.
Windows : Télécharger le panneau Folio Builder pour Windows
Mac OS : Télécharger le panneau Folio Builder pour Macintosh
UTILISATION DE DIGITAL PUBLISHING SUITE 5
Présentation de Digital Publishing Suite
Dernière mise à jour le 1/2/2013
Installation d’Adobe Content Viewer sur un périphérique mobile
Si vous possédez un iPad, un périphérique Android ou un PlayBook, installez la version la plus récente d’Adobe
Content Viewer à partir de la boutique. Dans la boutique, recherchez « Content Viewer ».
Mise à jour des outils DPS Desktop (InDesign CS6)
Chaque fois qu’un nouveau jeu d’outils est mis à disposition, choisissez Aide > Mises à jour dans InDesign et mettez à
jour les outils DPS Desktop. Si vous avez besoin de créer des folios qui sont compatibles avec un lecteur plus ancien
(v20 ou une version ultérieure), vous pouvez utiliser le panneau Folio Builder pour cibler cette version.
Mise à jour du panneau Folio Builder et/ou des outils de programmation (InDesign CS5/CS5.5)
Les outils Digital Publishing Suite sont fréquemment mis à jour. Dès qu’une nouvelle version est publiée, le service
Folio Producer est mis à jour sur le Web. Il existe un programme d’installation distinct pour le panneau Folio Builder.
Vous pouvez ainsi mettre à jour le panneau sans mettre à jour les outils. Chaque fois qu’Adobe met à jour le client Web,
mettez à jour le panneau Folio Builder pour veiller à tenir synchronisés le client Web et le panneau Folio Builder.
Notez que la mise à jour du panneau Folio Builder ne met pas à jour vos outils de création.
Les mises à jour du panneau Folio Builder sont disponibles sur les pages de téléchargement Adobe :
Windows : Télécharger le panneau Folio Builder pour Windows
Mac OS : Télécharger le panneau Folio Builder pour Macintosh
Vous avez la possibilité de mettre à jour les outils de création dès qu’une nouvelle version est disponible. Lorsque vous
mettez à jour les outils de création, aucun folio que vous publiez n’est compatible avec les lecteurs antérieurs à la
version v20. Pour les lecteurs v20 ou ultérieurs, mettez à jour les outils de création et vous pouvez spécifier la version
du lecteur lors de la création d’un folio. Voir « Création d’un folio » à la page 80.
Pour InDesign CS5/CS5.5, il peut être nécessaire de rétablir un ensemble précédent d’outils Folio Producer pour
assurer la compatibilité avec un lecteur personnalisé plus ancien (version v19 ou antérieure). Désinstallez les outils
Folio Producer, puis téléchargez et installez la version appropriée. Des outils plus anciens sont disponibles sur ces
pages :
Windows : Archive des anciens outils Folio Producer pour Windows
Mac OS : Archive des anciens outils Folio Producer pour Macintosh
Pour voir une table correspondant aux versions d’outils, reportez-vous à la note technique Erreur « Mettez à jour votre
application ».
Désinstallation des outils de publication numérique (InDesign CS5/CS5.5)
Pour désinstaller les outils Folio Producer, effectuez l’une des opérations suivantes :
• Sous Windows, ouvrez le panneau de configuration, puis Ajout/Suppression de programmes pour désinstaller les
outils.
• Sous Mac OS, utilisez le programme de désinstallation situé sous Applications > Utilitaires > Adobe Installers.
Dans InDesign CS6, les outils de publication numérique sont intégrés à InDesign. Vous pouvez supprimer les
outils DPS uniquement si vous désinstallez InDesign.
UTILISATION DE DIGITAL PUBLISHING SUITE 6
Présentation de Digital Publishing Suite
Dernière mise à jour le 1/2/2013
Utilisation d’un ID Adobe pour la publication numérique
Le panneau Folio Builder, le tableau de bord Digital Publishing Suite et DPS App Builder nécessitent un ID Adobe
vérifié pour pouvoir se connecter.
La connexion au panneau Folio Builder est facultative. Si vous ne vous connectez pas, vous pouvez créer des folios
locaux et les prévisualiser en utilisant Desktop Viewer ou Adobe Content Viewer sur un périphérique mobile. La
connexion au panneau Folio Builder permet de télécharger des folios sur le serveur acrobat.com. Vous pouvez
télécharger ces folios sur votre périphérique mobile ou les partager avec d’autres utilisateurs.
Création et vérification d’un ID Adobe (non-abonnés)
Si vous n’êtes pas abonné à DPS ou Creative Cloud, vous pouvez utiliser les outils DPS pour créer et partager des folios.
Pour créer des ID Adobe individuels, rendez-vous sur le site
https://digitalpublishing.acrobat.com/fr_FR/welcome.html et cliquez sur Créer un compte. Utilisez une adresse e-mail
valide pour créer votre compte. Adobe vous envoie ensuite un message de vérification. Ouvrez-le et vérifiez son
contenu. Utilisez l’ID Adobe pour vous connecter au panneau Folio Builder, au tableau de bord ou à DPS App Builder.
Abonnement Creative Cloud
Si vous disposez d’un abonnement à Creative Cloud, utilisez le compte Creative Cloud pour vous connecter. Lorsque
vous vous connectez à DPS App Builder en utilisant le compte Creative Cloud, vous pouvez créer des applications iPad
que vous pouvez proposer à Apple.
ID Adobe lié à une application (abonnés Professional ou Enterprise)
Vous pouvez utiliser un ID Adobe pour une personne (par exemple « pierredurand@gmail.com ») pour la connexion
au panneau Folio Builder et la création de folios. Cependant, si vous publiez un lecteur de contenu pour folios
multiples, par exemple un magazine mensuel, nous vous recommandons d’utiliser un ID Adobe spécifique pour cette
application (par exemple « dps.publication@editeur.com »). Utilisez l’outil d’administration de compte pour attribuer
le rôle Application à un compte de messagerie.
UTILISATION DE DIGITAL PUBLISHING SUITE 7
Présentation de Digital Publishing Suite
Dernière mise à jour le 1/2/2013
ID Adobe d’application
A. Panneau Folio Builder B. DPS App Builder C. Un lecteur de contenu personnalisé créé avec DPS App Builder affiche les folios créés avec le
panneau Folio Builder
L’ID Adobe que vous utilisez pour vous connecter au panneau Folio Builder est lié à l’ID Adobe (appelé « ID de titre »)
que vous définissez lors de la création du lecteur de contenu dans DPS App Builder.
Supposons, par exemple, que vous fassiez partie d’une entreprise appelée Sporty et que vous publiiez des magazines
traitant du kayak et du cyclisme. Pour des résultats optimaux, créez un ID Adobe intitulé « dps.kayak@sporty.com »
et un autre intitulé « dps.cyclisme@sporty.com ».
Lors de la création et de la publication des folios concernant le kayak, utilisez l’ID Adobe de kayak pour vous connecter
au panneau Folio Builder et à Folio Producer. Lorsque vous créez le lecteur de contenu personnalisé pour le kayak,
vous pouvez spécifier l’ID Adobe de kayak dans le champ de l’ID de titre dans DPS App Builder. (L’ID Adobe que vous
utilisez pour vous connecter à DPS App Builder peut être un ID Adobe différent, en fonction des paramètres définis
dans l’outil d’administration de compte.)
De même, pour l’application de cyclisme, vous devez utiliser l’ID Adobe de cyclisme pour créer et publier des folios,
et vous devez spécifier l’ID Adobe de cyclisme en tant qu’ID de titre dans DPS App Builder.
Les folios que vous publiez à l’aide de l’ID Adobe de kayak apparaissent dans l’application de kayak. Les folios que vous
publiez à l’aide de l’ID Adobe de cyclisme apparaissent dans l’application de cyclisme.
A B
C
UTILISATION DE DIGITAL PUBLISHING SUITE 8
Présentation de Digital Publishing Suite
Dernière mise à jour le 1/2/2013
Création d’ID Adobe délégués (abonnés)
Un ID Adobe délégué est attaché à un compte de publication spécifique et peut uniquement être utilisé pour ce
compte. Si vous souhaitez utiliser une adresse électronique comme ID Adobe délégué, utilisez l’outil d’administration
de comptes pour créer l’ID Adobe. Si vous utilisez une autre méthode pour transformer une adresse électronique en
ID Adobe, cette adresse électronique ne peut pas devenir un ID Adobe délégué.
Si vous êtes abonné Professional ou Enterprise, utilisez l’outil d’administration de compte pour affecter un rôle
différent à l’ID Adobe pour pouvoir l’utiliser pour créer une application ou vous connecter à DPS App Builder (voir
la section « Outil Administration de comptes » à la page 144).
Prise en main de Digital Publishing Suite
Didacticiels vidéo
Colin Fleming a créé une série de vidéos consacrées à l’utilisation des outils Digital Publishing Suite. Ces didacticiels
et d’autres vidéos sont disponibles sur AdobeTV.
AdobeTV - Learn Digital Publishing Suite
Outre les vidéos disponibles sur DPS Learn Channel, d’autres vidéos sont accessibles sur le site AdobeTV - Digital
Publishing Channel.
Didacticiels Web
Pour obtenir une présentation de base du flux DPS, téléchargez les exemples de ressources et consultez Didacticiels de
création.
Pour renforcer votre apprentissage, téléchargez un autre groupe de ressources et consultez le site Digital Publishing
Suite hands-on tutorial.
Voir aussi
« Présentation du flux de publication numérique » à la page 1
« Ressources Digital Publishing Suite » à la page 8
Ressources Digital Publishing Suite
Outre ce système d’aide, les ressources de publication numérique suivantes sont disponibles :
Forums des utilisateurs
Rendez-vous sur le forum public des utilisateurs Digital Publishing Suite pour poser vos questions et échanger avec
d’autres clients.
Sites Web Adobe
• La page Aide et support de Digital Publishing Suite répond aux questions de support les plus courantes et fournit
des liens vers des articles et du contenu utiles.
• La page du produit Digital Publishing Suite fournit entre autres des exemples d’utilisation du produit, des
informations sur le prix et une FAQ sur la publication numérique.
UTILISATION DE DIGITAL PUBLISHING SUITE 9
Présentation de Digital Publishing Suite
Dernière mise à jour le 1/2/2013
• La galerie Digital Publishing contient des liens vers les publications créées à l’aide des outils Digital Publishing
Suite.
• Le centre de développement Digital Publishing Suite Developer Center offre de nombreuses ressources pour les
tâches avancées telles que comprendre les analyses et configurer des notifications Push.
• La page d’état DPS fournit des informations sur les indisponibilités en cours et les maintenances planifiées du
serveur.
Ressources de formation
L’application Digital Publishing Suite Tips (Astuces Digital Publishing Suite) est disponible sur l’Apple Store. Il s’agit
en quelque sorte de la combinaison d’un guide d’utilisateur, d’un blog et d’astuces. Cette application est également
disponible dans Google Play Store et dans Amazon Appstore (effectuez une recherche sur « DPS Tips »). Si vous ne
disposez pas d’un iPad ni d’un périphérique mobile, vous pouvez afficher les publications DPS Tips sur un ordinateur.
Pour en savoir plus sur le processus de publication numérique et tester des exemples de fichiers, consultez les
didacticiels de création DPS ou la page Digital Publishing Suite hands-on tutorial (Didacticiel pratique Digital
Publishing Suite).
Suivez le flux Digital Publishing Suite sur Twitter ou la page Digital Publishing Suite sur Facebook.
Documents sur les lecteurs de contenu de publication
• Le PDF du Guide d’accompagnement pour les professionnels et les entreprises sur la publication iOS et le PDF du
Guide de publication pas à pas pour Single Edition vous guident à travers la procédure de création des certificats,
écrans de démarrage et icônes requis pour soumettre un lecteur personnalisé à l’App Store d’Apple. Vous pouvez
télécharger ces guides dans le menu Aide de DPS App Builder.
• Le guide Publishing Process for Android Mobile Devices Guide (Guide du processus de publication sur
périphériques mobiles Android) explique comment créer un lecteur de contenu personnalisé à soumettre sur
Google Play Store ou Amazon Appstore.
Voir aussi
« Prise en main de Digital Publishing Suite » à la page 8
Guide d’achat de Digital Publishing Suite
Combien coûte Digital Publishing Suite ? Tout dépend du type d’utilisation que vous souhaitez en faire. Vous avez le
choix entre plusieurs options :
Gratuit Si vous possédez InDesign CS5 ou une version ultérieure, il est possible d’installer gratuitement les outils de
publication numérique. Vous pouvez alors créer des folios, les prévisualiser sur votre ordinateur de bureau ou sur des
périphériques mobiles, et les partager avec d’autres personnes. Tant que vous ne publiez pas les folios ou créez de
lecteurs de contenu personnalisés destinés aux boutiques, vous n’avez rien à débourser de plus pour l’utilisation des
outils DPS.
Abonnement Creative Cloud Obtenir un abonnement Adobe Creative Cloud. Avec un abonnement Creative Cloud,
vous pouvez créer un nombre illimité d’applications simple folio pour l’iPad.
Single Edition Si vous n’êtes pas membre de Creative Cloud, vous pouvez payer des frais pour créer une application
personnalisée contenant un folio unique pour l’iPad. Voir « Présentation de Single Edition » à la page 10.
UTILISATION DE DIGITAL PUBLISHING SUITE 10
Présentation de Digital Publishing Suite
Dernière mise à jour le 1/2/2013
Professional Edition Disponible sur abonnement mensuel, Professional Edition vous autorise à créer un nombre
illimité de lecteurs et de folios de contenu personnalisés. Vous pouvez créer des applications pour folios simples ou
folios multiples pour l’iPad. Vous pouvez créer des applications multi-folios pour les plates-formes Android, Amazon
et iOS (iPad et iPhone). Vous avez le droit enfin de créer des applications avec abonnement à plusieurs folios pour les
boutiques iPad et Amazon. L’un des autres intérêts de Professional Edition est de pouvoir générer des rapports
d’analyse de base pour le suivi des données utilisateur.
Enterprise Edition Enterprise Edition offre tous les avantages de Professional Edition, plus la possibilité de
personnaliser l’interface utilisateur du lecteur de contenu, de créer des serveurs de droits personnalisés et de concevoir
des applications d’entreprise en interne (privées).
Cliquez ici pour en savoir plus sur les tarifs : http://www.adobe.com/fr/products/digitalpublishingsuite/pricing/
Voir aussi
« Types de lecteurs de contenu personnalisés » à la page 103
« Prise en main de Digital Publishing Suite » à la page 8
Présentation de Single Edition
Single Edition s’adresse aux studios de création de petite ou moyenne envergure et aux concepteurs indépendants
souhaitant produire des brochures, des catalogues, des portfolios et du matériel de formation destinés à l’iPad. Pour
créer une application personnalisée pour iPad qui contient un folio intégré, devenez membre d’Adobe Creative Cloud
ou choisissez de payer des frais (un seul versement). Si vous disposez d’un abonnement Creative Cloud, vous pouvez
créer un nombre illimité d’applications Single Edition pour iPad.
Configuration requise
Eléments nécessaires pour créer votre folio :
• InDesign CS5, InDesign CS5.5 ou InDesign CS6.
• Outils DPS Desktop (panneau Folio Overlays et panneau Folio Builder).
Eléments nécessaires pour créer votre application :
• Ordinateur Mac OS fonctionnant sous Mac OS X 10.6 (Snow Leopard) ou 10.7 (Lion). Apple exige un ordinateur
Mac OS pour créer les certificats requis et télécharger l’application. Vous pouvez utiliser un ordinateur Windows
pour créer les folios dans InDesign.
• DPS App Builder.
• Adhésion au programme des développeurs iOS d’Apple (inscription payante à l’année). Pour en savoir plus,
rendez-vous sur http://developer.apple.com/programs/ios/.
• Un abonnement Creative Cloud ou un numéro de série Single Edition.
Vidéos et ressources Single Edition
Utilisez votre compte Creative Cloud pour vous connecter à la page de mise en route et visualiser des vidéos et
télécharger des ressources pratiques.
https://creative.adobe.com/#dpsse
Ces vidéos, ainsi que d’autres, sont disponibles sur AdobeTV.
Chaîne : apprendre DPS Single Edition
UTILISATION DE DIGITAL PUBLISHING SUITE 11
Présentation de Digital Publishing Suite
Dernière mise à jour le 1/2/2013
L’application iPad « DPS Tips » inclut une version de Single Edition qui détaille le processus complet d’utilisation de
Single Edition en vue de créer et d’envoyer une application à Apple. Dans l’Apple Store ou l’iTunes Store, faites une
recherche sur « DPS Tips ».
Procédure de création d’un lecteur de contenu pour folios simples
Voici les différentes étapes générales à suivre pour créer votre propre lecteur de contenu et l’envoyer à l’Apple Store.
Etape 1 : familiarisation Avant de commencer à créer du contenu avec InDesign, il est important d’avoir une bonne
connaissance de base du processus. Prenez le temps de regarder des vidéos, d’exécuter les didacticiels et de consulter
les rubriques d’aide. Voir « Prise en main de Digital Publishing Suite » à la page 8.
Vous pouvez également approfondir vos connaissances grâce à l’application DPS Tips et à diverses autres ressources.
Etape 2 : installation des outils de publication numérique Pour InDesign CS6, installez les outils DPS Desktop. Pour
InDesign CS5 ou CS5.5, exécutez deux programmes d’installation distincts. Installez d’abord les outils Folio Producer
afin d’ajouter le panneau Folio Overlays, un module InDesign obligatoire, et Desktop Viewer. Installez ensuite le
panneau Folio Builder. Voir « Installation des outils de publication numérique » à la page 4.
Installation des outils de publication numérique pour travailler avec InDesign.
N’oubliez pas non plus d’installer Adobe Content Viewer sur votre iPad. Lorsque vous créez un folio, le contenu est
téléchargé sur un client Web hébergé par acrobat.com. Servez-vous du lecteur pour télécharger et prévisualiser ce folio.
Faites une recherche sur « Adobe Content Viewer » dans l’Apple Store de l’iPad ou dans la boutique iTunes.
Etape 3 : création et prévisualisation du folio Utilisez le panneau Folio Builder pour créer le folio. Affichez un aperçu
de votre folio à l’aide de l’application Adobe Content Viewer sur iPad. Lorsque votre folio est terminé, sélectionnez-le,
puis choisissez Créer l’application dans le menu de panneau Folio Builder.
Etape 4 : abonnement à Creative Cloud ou obtention d’un numéro de série Single Edition Si vous disposez d’un
abonnement Creative Cloud, vous pouvez créer un nombre illimité d’applications iPad Single Edition . Ou bien,
UTILISATION DE DIGITAL PUBLISHING SUITE 12
Présentation de Digital Publishing Suite
Dernière mise à jour le 1/2/2013
utilisez le site Web Adobe pour acheter un numéro de série Single Edition. Si cette édition n’est pas encore
commercialisée dans votre pays, inscrivez-vous afin d’être averti dès qu’elle sera disponible.
Procurez-vous le numéro de série de Single Edition dont vous avez besoin pour créer l’application.
Etape 5 : téléchargement du guide pas à pas Le PDF du Guide de publication pas à pas pour Single Edition comprend
les informations dont vous aurez besoin pour créer les images et les certificats requis, vous inscrire en tant que
développeur Apple, créer votre application pour iPad et la soumettre à Apple.
Vous pouvez également télécharger le Guide de publication pas à pas à partir du menu Aide de DPS App Builder.
Nouveautés de cette version
Les fonctions suivantes sont disponibles pour la version v25. La section « Historique des notes de mise à jour sur les
nouvelles fonctionnalités » à la page 14 dresse la liste détaillée des notes de mise à jour. Pour obtenir une liste des
résolutions de bogues, voir Notes de mise à jour - Résolution des bogues de DPS.
Améliorations de l’interface utilisateur de bibliothèque (iOS) La conception de la bibliothèque du lecteur a été
repensée pour inclure des images de couverture de grille plus grandes. Si vous touchez l’image de couverture d’un folio
téléchargé, le folio s’ouvre. Si vous touchez l’image de couverture d’un folio qui n’est pas encore téléchargé, le volet de
prévisualisation s’ouvre. Les lecteurs peuvent utiliser le bouton de menu en forme d’engrenage pour sélectionner et
supprimer des folios.
La vue du folio comporte plusieurs changements. Le bouton d’accueil est maintenant le bouton Bibliothèque dans les
applications pour folios multiples. La fonction du bouton Parcourir et la barre de défilement inférieure sont désormais
combinées. Utilisez la barre de défilement pour faire défiler les articles de mode de navigation. Les flèches en regard
de la barre de défilement qui permettent d’accéder à l’article suivant ou précédent ont été supprimées.
Dans DPS App Builder, vous pouvez également supprimer les boutons S’abonner et Se connecter qui s’affichent dans
le coin supérieur gauche de la bibliothèque dans les applications d’abonnement Enterprise.
Premier folio de vente au détail gratuit En sélectionnant une option appropriée dans DPS App Builder, les éditeurs
peuvent rendre disponible le folio de vente au détail publié le plus récemment pour les utilisateurs qui téléchargent
l’application pour la première fois. Voir « Panneau Détails de l’application » à la page 124.
Contenu HTML conditionnel (édition Enterprise uniquement) Conçu pour être utilisé avec la fonction de premier folio
gratuit, cette fonction permet à un éditeur de créer soit un article HTML, soit une incrustation de contenu Web pour
afficher du contenu différent en fonction de la manière dont le folio a été obtenu. Par exemple, si un utilisateur
télécharge un folio gratuit, le contenu peut inclure une offre de souscription. Si un utilisateur obtient le folio via un
abonnement, le contenu peut afficher une offre concernant des produits supplémentaires.
Pour configurer ce contenu HTML conditionnel, vous devez effectuer deux opérations. D’abord, sélectionnez l’option
Autoriser l’accès aux informations d’habilitation pour l’incrustation du contenu Web ou l’article HTML (voir la
section « Contenu Web en incrustation » à la page 73). Deuxièmement, ajoutez une API JavaScript personnalisée à
votre code HTML. Pour plus d’informations sur cette API JavaScript, contactez votre représentant Adobe.
UTILISATION DE DIGITAL PUBLISHING SUITE 13
Présentation de Digital Publishing Suite
Dernière mise à jour le 1/2/2013
Ouvrir automatiquement une publication téléchargée en arrière-plan Lorsque ce paramètre est sélectionné dans
DPS App Builder, tout folio téléchargé en arrière-plan depuis la session d’affichage précédente s’ouvre au lancement
de l’application. Si cette option n’est pas sélectionnée, le folio le plus récemment affiché s’ouvre dans sa dernière
position de lecture.
Ouvrir le folio à la dernière position de lecture de l’article Lorsque vous passez d’un folio à l’autre, le folio affiché
précédemment n’est plus réinitialisé. Au lieu de cela, le lecteur de contenu se souvient de la position de lecture de tous
les folios. Pour réinitialiser un folio, affichez les barres de navigation dans un article et tapotez trois fois sur la barre de
titre.
Test simplifié des applications Amazon Lorsque vous utilisez DPS App Builder pour créer une application
(fichier .apk) pour Amazon, vous pouvez désormais charger et tester le fichier .apk sur le périphérique Amazon sans
avoir à charger un fichier .json distinct. L’utilisation d’un fichier .json n’est désormais requise que pour tester le
contenu de vente au détail. Pour plus d’informations, consultez la section Processus de publication DPS pour les
périphériques Amazon et Android.
Prise en charge du stockage local sur les applications Android Dans les versions précédentes, les lecteurs Android ne
prenaient pas en charge le stockage local. Fermer une application avait pour conséquence de perdre la position de
lecture ou les données entrées dans les formulaires. Avec les applications Android version v25, ces informations sont
désormais conservées, comme c’est le cas dans les applications iOS.
goto:// navigation (édition Enterprise uniquement) Le format goto:// permet aux éditeurs d’entreprise de créer des
liens dans l’affichage folio vers tout contenu d’icône personnalisée dans la bibliothèque. Par exemple, si vous créez une
icône personnalisée dans DPS App Builder avec une étiquette « Magasin », vous pouvez créer un bouton associé à une
action « goto://ApplicationViewState/Magasin » qui ouvre automatiquement le contenu de la banque de
données HTML, à l’instar de taper sur l’icône de stockage personnalisée. Voir « Création de liens de type atteindre
(« goto ») vers les icônes personnalisées » à la page 62.
Masquer la barre de navigation supérieure Lorsque ce paramètre est sélectionné dans DPS App Builder, seule la barre
de navigation inférieure s’affiche lorsqu’un utilisateur touche un article. Cela permet aux éditeurs de créer une barre
de navigation permanente sur toutes les pages de l’article afin de naviguer au sein du folio.
Améliorations au niveau de l’API de flux de travaux automatisé (édition Enterprise uniquement) Lors de l’utilisation
d’API pour les flux de travaux automatisés de publication DPS, vous pouvez désormais publier et mettre à jour des
folios, ainsi que mettre à jour les métadonnées d’article (la mise à jour des articles est prévue pour une prochaine
version).
Amélioration du partage Facebook pour iOS6 Lorsque les utilisateurs ont saisi leurs informations de compte
Facebook dans leurs paramètres iOS, ils sont aisément connectés lors du partage d’un article sur Facebook au lieu de
recevoir une invite de connexion.
Améliorations des analyses SiteCatalyst SiteCatalyst présente des améliorations, notamment les rapports de durée de
lecture des vidéos.
Génération de rapports sur l’exécution des téléchargements Les éditeurs peuvent désormais générer des rapports
pour afficher des données de téléchargement depuis Adobe Distribution Service. Si vous vous connectez au tableau de
bord DPS à l’aide d’un compte d’application, vous pouvez choisir l’option de rapport d’exécution pour télécharger un
fichier .csv qui inclut les statistiques de téléchargement facturables depuis Adobe Distribution Service pour cette
application. Si vous vous connectez à l’aide d’un compte d’administration, vous pouvez cliquer sur un lien dans le
tableau de bord pour obtenir un rapport qui indique le total des téléchargements exécutés. Voir « Omniture
Analytics » à la page 142.
Version iOS4 plus prise en charge Les lecteurs de contenu v25 ne prennent plus en charge la version iOS4. Les lecteurs
de contenu v25 ne prennent en charge que les versions iOS5 ou ultérieures.
UTILISATION DE DIGITAL PUBLISHING SUITE 14
Présentation de Digital Publishing Suite
Dernière mise à jour le 1/2/2013
Historique des notes de mise à jour sur les nouvelles
fonctionnalités
Les outils Digital Publishing Suite font l’objet de mises à jour fréquentes. Pour obtenir la liste des correctifs de bogues,
voir Notes de mise à jour - Résolution des bogues de DPS.
Version 25 (en cours)
Pour avoir une description des nouvelles fonctionnalités de l’ensemble actuel d’outils, reportez-vous à la section
« Nouveautés de cette version » à la page 12.
Version 24
Téléchargement de l’arrière-plan de la bibliothèque (iOS) Quand vos clients téléchargent un folio dans une
application v24, ils peuvent quitter l’application, vérifier leurs e-mails ou afficher un autre folio, puis revenir au
téléchargement une fois le folio téléchargé. Notez que le téléchargement s’interrompt après dix minutes. Seul un folio
peut être téléchargé à la fois.
Mise à jour simultanée de plusieurs articles Vous pouvez sélectionner plusieurs articles dans le panneau Folio Builder
et choisir Mettre à jour pour mettre à jour tous les articles sélectionnés. Pour sélectionner des articles, appuyez sur la
touche Maj ou Ctrl/Commande et cliquez sur les articles.
Sections La nouvelle fonctionnalité Sections permettra à vos clients de télécharger des sections individuelles d’un
folio. Par exemple, vous pouvez diviser un folio en plusieurs sections : Actualité, Sports, Business, Style et Finance et
vos clients peuvent choisir de télécharger uniquement les articles des sections Sports et Finance. Voir « Création de
sections » à la page 112.
Désactivation de l’Affichage de la couverture dans la bibliothèque du lecteur iPad Par défaut, toutes les bibliothèques
de lecteur iPad comprennent également un Affichage de la grille et un Affichage de la couverture, qui ne permettent
d’afficher qu’un folio à la fois. Avec DPS App Builder v24, vous pouvez sélectionner une option pour inclure
uniquement l’Affichage de la grille ou pour afficher la grille et la couverture sur iPad. (Avec les lecteurs Android, vous
pouvez déjà choisir Affichage de la grille, Affichage de la couverture, ou les deux.)
Améliorations de l’interface utilisateur DPS Lorsque vous créez un folio, un paramètre d’orientation n’est plus
sélectionné par défaut. Si vous cliquez sur OK sans sélectionner de paramètre d’orientation, un cadre rouge apparaît
autour de l’option. Cette modification devrait permettre d’éviter la création par erreur d’un folio au paramètre
d’orientation incorrect.
En outre, la plupart des messages d’erreur incluent désormais un lien vous redirigeant vers une note technique.
Améliorations de la publication du folio Lorsque la publication d’un folio échoue en raison d’une erreur du serveur,
vous pouvez cliquer sur le bouton Réessayer pour reprendre le processus de publication après la résolution du
problème de serveur.
Améliorations des serveurs DPS La bande passante d’Adobe Distribution Service a été augmentée, ce qui entraîne une
amélioration de la stabilité et des performances.
De plus, les serveurs DPS sont maintenant séparés dans un groupe distinct sur acrobat.com, ce qui permet de
continuer le téléchargement des folios même si acrobat.com est en maintenance.
Modification de la boîte de dialogue « Restaurer les achats » La boîte de dialogue « Restaurer les achats » s’affiche
désormais uniquement lorsque les utilisateurs choisissent Restaurer les achats dans le menu d’options de la
bibliothèque.
Activation de la mise en cache des informations du folio dans la bibliothèque (iOS) Dans DPS App Builder, vous
pouvez activer la mise en cache des informations du folio pour améliorer les performances des applications dotées de
UTILISATION DE DIGITAL PUBLISHING SUITE 15
Présentation de Digital Publishing Suite
Dernière mise à jour le 1/2/2013
grandes bibliothèques. Notez que si vous sélectionnez cette option, certaines informations du folio peuvent devenir
obsolètes. Par exemple, si vous sélectionnez cette option et modifiez le coût du folio, votre bibliothèque affichera des
informations erronées. Cette option est actuellement disponible uniquement pour les applications nécessitant une
souscription.
Améliorations des applications signées par une entreprise (iOS, Enterprise uniquement) Vous pouvez à présent
signer une application interne avec un fichier mobileprovision d’entreprise qui contient un ID d’application explicite
(non générique). Cette modification vous permet de gérer l’application indépendamment des autres applications de
votre entreprise.
Améliorations des analyses SiteCatalyst fait désormais une distinction entre les différents types de périphériques
mobiles et les différents systèmes d’exploitation. Un nouveau rapport de suivi d’URL vous permet de suivre les adresses
URL, les clics vers une URL, la source d’une URL (incrustation d’hyperlien, incrustation de contenu Web ou
application). Vous pourrez également savoir de quelle manière l’URL est ouverte : dans Web Wiewer, dans un lecteur
d’application ou dans le navigateur d’un périphérique. Les rapports sur l’utilisation vous permettent de connaître les
jours/heures où l’utilisation de l’application est la plus forte et de connaître le nombre de lancements de l’application
depuis la dernière mise à jour. Ces modifications ne s’appliquent qu’aux analyses SiteCatalyst et non pas aux analyses
de base.
Version 23
Infrastructure Distribution Service mise à jour La publication des folios dans Distribution Service est maintenant
beaucoup plus rapide. Ces modifications de serveur doivent réduire le nombre de dépassements de délai d’attente et
améliorer la fiabilité des téléchargements en arrière-plan pour iOS Newsstand.
Améliorations de l’interface utilisateur du panneau de Folio Builder Le panneau Folio Builder est plus large, les icônes
de navigation sont plus grandes et plus intuitives, il existe un plus grand nombre d’info-bulles, les options ont été
renommées pour plus de clarté et les autres modifications facilitent son utilisation. Vous pouvez également lancer DPS
App Builder (qui s’appelait auparavant Viewer Builder) depuis le panneau.
Modifications apportées à DPS App Builder (qui s’appelait auparavant Viewer Builder) DPS App Builder inclut
plusieurs améliorations d’interface. Le programme d’installation InDesign CS6 installe désormais DPS App Builder.
Glisser-déposer de fichiers dans DPS App Builder Vous pouvez à présent faire glisser et déposer des icônes, des écrans
de démarrage et d’autres fichiers depuis le Finder vers App Builder.
Choix entre le format vectoriel et le format bitmap pour les diaporamas et les blocs défilants (iOS uniquement) Dans
les incrustations des articles PDF, vous pouvez sélectionner le format vectoriel ou bitmap. Les images vectorielles sont
plus nettes, mais requièrent un petit délai de chargement. Pour les incrustations dans les articles JPG/PNG, les
diaporamas et les blocs défilants ont toujours le format bitmap.
Articles multirendus (iOS uniquement) Désormais, vous pouvez créer des articles PDF d’une belle apparence et qui
fonctionnent correctement sur les versions HD et SD des périphériques. Lorsque vous créez des incrustations, vous
pouvez inclure des ressources SD et HD dans le folio. Le lecteur utilise les ressources d’incrustation correspondant au
périphérique iOS.
Si vous créez une application simple folio, vous pouvez créer un folio en utilisant des articles PDF qui fonctionnent
parfaitement avec tous les modèles d’iPads. Si vous créez une application à folios multiples, vous pouvez créer des
articles multirendus dans un folio ou des rendus de folio différents. Reportez-vous à « Création d’articles PDF
multirendus pour les appareils iOS » à la page 48.
Folios Single Edition illimités avec un abonnement Creative Cloud (iPad uniquement) Avec un abonnement Adobe
Creative Cloud, vous pouvez créer un nombre illimité d’applications simple folio pour l’iPad.
UTILISATION DE DIGITAL PUBLISHING SUITE 16
Présentation de Digital Publishing Suite
Dernière mise à jour le 1/2/2013
Lecture audio en arrière-plan (IOS uniquement) Les clips vidéo peuvent être lus pendant que les utilisateurs
parcourent les articles dans le folio. Un bouton audio apparaît dans la barre de navigation supérieure pour permettre
aux utilisateurs de suspendre et de lire les données audio. Voir la section « Incrustations audio et vidéo » à la page 71.
Arrêt sur la dernière image (iOS uniquement) Le panneau Incrustations de folio contient maintenant une option pour
arrêter la vidéo intégrée sur la dernière image.
Désactivation des commandes des vidéos intégrées (iOS uniquement) Si vous créez une vidéo intégrée devant être lue
automatiquement, vous pouvez sélectionner l’option Ne pas autoriser les pauses pour désactiver les commandes de
lecture. Cette fonction est particulièrement pratique pour les vidéos de couverture.
Nouveau comportement d’Adobe Content Viewer pour les folios non valides Dans les versions précédentes, les folios
non valides n’apparaissent pas dans Adobe Content Viewer. Avec la nouvelle version, les folios non valides
apparaissent dans la bibliothèque et génèrent un message d’erreur lors du téléchargement. Cette modification améliore
les performances de la bibliothèque Adobe Content Viewer et fournit des informations de vérification plus détaillées.
Par exemple, si vous créez un folio à double orientation avec un ou plusieurs articles à orientation unique, le message
d’erreur indique le problème plutôt que de vous laisser le déduire.
Prise en charge des fichiers PDF pour les articles à défilement lisse (iOS uniquement) Vous pouvez utiliser le format
d’image PDF pour les articles à défilement lisse, quelle que soit leur longueur. Toutefois, le pincement et le zoom ne
sont pas pris en charge dans les articles à défilement lisse.
Option « Evaluer l’application » Lorsque vous créez des lecteurs personnalisés, vous pouvez sélectionner une option
qui affiche l’invite « Evaluer l’application ». Vous pouvez personnaliser les paramètres de cette fonction dans DPS App
Builder.
Zones actives pour afficher des barres de navigation Outre les zones actives latérales de la page de l’article, il existe
une nouvelle option de zone active pour le bas de la page de l’article. Si vous appuyez dans la zone active dans le bas de
la page, les barres de navigation (également appelées « HUD » ) s’affichent. Si vous appuyez n’importe où au-dessus de
la zone active du bas, aucune barre de navigation ne s’affiche. Voir « Panneau Détails de l’application » à la page 124.
Les boutons sont prioritaires sur la zone active du bas, la zone active du bas est prioritaire sur les zones actives latérales
et les zones actives sont prioritaires sur les incrustations ne correspondant pas à des boutons.
Prise en charge des actions Atteindre la page suivante/précédente Lorsque vous créez un bouton, les actions
Atteindre la page suivante et Atteindre la page précédente sont maintenant prises en charge.
Option opt-out d’Analytics Dans DPS App Builder, vous pouvez permettre aux clients de désactiver les analyses lors
de l’utilisation de l’application. Cette option est particulièrement utile dans certaines régions qui appliquent un
contrôle strict sur la collecte des données.
Chaînes de lecteur personnalisables Vous pouvez personnaliser toutes les chaînes stockées dans le lecteur dans toutes
les langues prises en charge, y compris le texte des boutons dans la bibliothèque et le texte dans les boîtes de dialogue.
DPS App Builder permet de télécharger un modèle XML. Vous pouvez ensuite modifier ce fichier XML et le spécifier
lors de la création de l’application. Voir « Panneau Détails de l’application » à la page 124.
Améliorations du partage sur les réseaux sociaux (iOS uniquement) Notez les améliorations suivantes du partage sur
les réseaux sociaux. Voir « Utilisation du partage sur les réseaux sociaux » à la page 152.
• Support d’autorisation directe du lecteur Web (Enterprise uniquement). Lorsque les clients atteignent la limite de
paywall dans le lecteur Web, ils peuvent à présent se connecter en utilisant leur compte d’abonnement pour
poursuivre la consultation des articles.
• Le lecteur Web prend en charge Internet Explorer 10/Windows 8.
• Vous pouvez également configurer un paywall pour les folios gratuits.
• Le lecteur Web prend en charge toutes les incrustations, sauf pour les panoramas et les clips audio.
UTILISATION DE DIGITAL PUBLISHING SUITE 17
Présentation de Digital Publishing Suite
Dernière mise à jour le 1/2/2013
• Si vous créez un folio 1 024 x 768 en utilisant le format d’image PDF, le contenu est désormais chargé sur le serveur
du lecteur Web dans le format PNG.
Nouveau guide de publication pas à pas pour Single Edition Lorsque vous cliquez sur le lien sur le tableau de bord
pour télécharger le DPS Publishing Companion Guide, un fichier .zip est téléchargé qui contient à la fois le Guide
d’accompagnement pour les professionnels et les entreprises et un guide de publication pas à pas pour les utilisateurs
de Single Edition. Vous pouvez également télécharger le Guide d’accompagnement et le Guide étape-par-étape à partir
du menu Aide de DPS App Builder. Prochainement, le Guide d’accompagnement pour les professionnels et les
entreprises sera mis à jour avec la nouvelle conception.
Version 22
Filtres de bibliothèque Si vous créez des folios v22 ou version ultérieure, vous pouvez utiliser Folio Producer
Organizer pour spécifier une catégorie de filtre pour chaque folio, telle que « Anglais », « Espagnol », « Français » et
« Allemand ». Dans la bibliothèque du lecteur, les utilisateurs peuvent ensuite sélectionner des options de filtre. Par
exemple, ils peuvent afficher uniquement les folios en espagnol et en allemand, et masquer les folios en anglais et en
français dans la bibliothèque du lecteur. Voir « Création de filtres de bibliothèque » à la page 110.
Bibliothèque HTML personnalisée Les éditeurs d’entreprise peuvent créer leur propre bibliothèque au lieu de la
bibliothèque de lecteur par défaut. Voir « Création d’une bibliothèque personnalisée (Entreprise) » à la page 133.
Améliorations apportées aux zones chaudes Désormais les éditeurs Professional et Enterprise peuvent activer des
zones actives dans DPS App Builder. Les zones chaudes permettent aux utilisateurs d’appuyer sur les bords de l’article
pour passer aux articles suivants ou précédents. La logique de remplacement des incrustations a également changé. Les
zones chaudes ont la priorité sur toutes les incrustations à l’exception des boutons. Voir « Panneau Détails de
l’application » à la page 124.
Rendus stricts pour périphériques Android 7" Par défaut, les lecteurs des périphériques Android affichent les folios de
toutes les tailles. Pour que le lecteur affiche uniquement les folios qui correspondent au format de l’appareil,
sélectionnez l’option correspondante dans Viewer Builder. Actuellement, les rendus stricts affichent uniquement les
folios 1 024 x 600 pour les périphériques comme Kindle Fire et les folios 1 280 x 800 pour les périphériques Android à
écran extra-large. Cette option est particulièrement utile pour empêcher l’affichage de rendus indésirables sur des
périphériques Kindle Fire. Si vous avez créé des rendus Android comme des folios 1 232 x 752, n’activez pas les rendus
stricts lorsque vous créez le lecteur pour le marché Android. Voir « Création d’un lecteur de contenu personnalisé
pour les périphériques Android et Amazon » à la page 134.
Masquage automatique des barres de défilement Par défaut, une zone de défilement de 6 pixels s’affiche sur le côté
droit des articles dans un folio. Si vous sélectionnez cette option dans Viewer Builder, la barre de défilement s’affiche
uniquement lorsque l’utilisateur fait défiler l’article. Voir « Panneau Détails de l’application » à la page 124.
Améliorations de la vidéo HTML Il est possible de faire se comporter les vidéos des articles HTML comme des
incrustations vidéo. Par exemple, le fait de pivoter le périphérique affichant un article HTML à orientation unique fait
également pivoter la vidéo en mode plein écran. (voir la section « Importation d’articles HTML » à la page 89).
Moteur d’exécution captif AIR dans les lecteurs de contenu Android Pour éviter de dépendre de la présence préalable
d’AIR sur les périphériques Android, les lecteurs incluent désormais une version intégrée d’AIR (version 3.2 ou
ultérieure). Bien que ce changement augmente la taille de lecteurs de 2 Mo à 10 Mo, il devrait améliorer la stabilité et
les performances.
Améliorations apportées à l’interface utilisateur du lecteur Android Les icônes et les autres éléments de l’interface
utilisateur dans les affichages de bibliothèque et de folios sont dorénavant plus grands : il est donc plus facile de cliquer
sur les icônes, en particulier sur le périphérique Kindle Fire.
Glissement à deux doigts activé pour iOS Le geste de glissement à deux doigts est à présent activé pour les lecteurs iPad
et iPhone. Ce mouvement est particulièrement utile pour « aplatir » les articles dans lesquels le glissement horizontal
UTILISATION DE DIGITAL PUBLISHING SUITE 18
Présentation de Digital Publishing Suite
Dernière mise à jour le 1/2/2013
uniquement est activé. Ainsi, les lecteurs peuvent ignorer les pages restantes de l’article pour accéder directement à
l’article précédent ou suivant.
Améliorations apportées au partage sur les réseaux sociaux Notez les améliorations suivantes du partage sur les
réseaux sociaux. Voir « Utilisation du partage sur les réseaux sociaux » à la page 152.
• Le partage sur les réseaux sociaux est maintenant pris en charge pour les lecteurs iPhone.
• Le mappage de rendu est maintenant pris en charge. Lorsque l’article partagé est affiché dans le navigateur Web
d’un ordinateur de bureau, seuls les articles au format PNG ou JPG 1 024 x 768 s’affichent correctement dans le
Lecteur de contenu Web. Dans les versions précédentes, aucun folio partagé dans un rendu iPad HD (2 048 x 1 536)
ne pouvait être affiché dans le lecteur de contenu Web. Si vous créez des rendus pour les périphériques iOS, le
partage de l’article depuis n’importe quel périphérique va créer un lien vers la version 1 024 x 768 de l’article dans
Web Viewer. Pour des résultats optimaux, assurez-vous que les rendus sont correctement configurés et que les
valeurs des noms de l’article sont identiques dans chaque rendu de folio.
• Les liens profonds de Facebook sont dorénavant pris en charge. Lorsqu’un client affiche le message du mur de
l’appli Facebook sur un iPad, il lui suffit d’appuyer sur le lien de l’article pour ouvrir directement l’article. Assurezvous
d’activer les liens profonds lors de la configuration de votre application sur le site des développeurs Facebook.
Voir Setting up a DPS App for Social Networking (Configuration d’une application DPS pour mise en réseau
social).
• La nouvelle option Activer la limite d’exécution de l’outil d’administration de compte permet de limiter le nombre
de vues d’article dans le lecteur Web, à l’instar d’une fonction qui indiquerait qu’une publication est épuisée. Voir
« Outil Administration de comptes » à la page 144.
• Le lecteur de contenu Web prend désormais en charge les blocs défilants.
• L’activation d’un paywall affecte uniquement les folios au détail.
Version 21
Contrôle de la version du lecteur de contenu Lorsque vous créez un folio à lı’aide du panneau Folio Builder v21, vous
pouvez cibler la version v20 ou v21 du lecteur de contenu. Cette option est particulièrement utile si la dernière version
dı’Adobe Content Viewer est en attente d’approbation ou si vous créez des folios pour un lecteur de contenu v20. La
version v20 est sélectionnée par défaut. Si vous créez un v20 folio, vous pouvez modifier les propriétés du folio pour le
mettre à jour vers la version v21. Cependant, vous ne pouvez pas revenir à un folio v20 depuis un folio v21. Vous ne
pouvez pas spécifier une version de lecteur de contenu antérieure à v20. Voir « Création d’un folio » à la page 80.
Aperçu sur le périphérique pour la mise en forme active (iOS) Avant la version v21, l’aperçu sur le périphérique était
disponible uniquement pour des folios complets. Avec la version v21, vous pouvez maintenant utiliser l’aperçu sur un
périphérique dans le panneau Incrustations de folio pour prévisualiser la mise en forme actuelle (iOS uniquement).
Connectez l’iPad ou l’iPhone à votre ordinateur et ouvrez l’application Adobe Content Viewer. Dans le folio panneau
Incrustations de folio, choisissez Aperçu sur [nom de périphérique]. (Voir « Utilisation de la fonction Aperçu sur le
périphérique » à la page 101).
Améliorations du partage sur les réseaux sociaux Plusieurs limitations du partage sur les réseaux sociaux ont été
traitées. Désormais, les incrustations imbriquées, les boutons, les vidéos, les articles HTML et les blocs défilants
fonctionnent beaucoup mieux dans le lecteur de contenu Web. En outre, maintenant, le lecteur de contenu Web
affiche correctement les articles affectés de l’attribut d’annonce publicitaire ou de masquage depuis la table des
matières. Voir « Utilisation du partage sur les réseaux sociaux » à la page 152.
Utilisez l’outil d’administration de compte pour désactiver le lecteur de contenu Web tout en permettant le partage sur
les réseaux sociaux sur l’iPad. (Voir « Outil Administration de comptes » à la page 144).
Affichage automatique pendant le téléchargement de folio Lorsque vous touchez le bouton de téléchargement ou
d’achat dans la bibliothèque du lecteur de contenu, ce dernier affiche le folio pendant que le téléchargement des articles
UTILISATION DE DIGITAL PUBLISHING SUITE 19
Présentation de Digital Publishing Suite
Dernière mise à jour le 1/2/2013
restants se poursuit. Avant cette version, le bouton d’affichage devenait actif pendant le téléchargement, mais vous
deviez le toucher pour afficher le folio.
Téléchargement automatique à l’achat d’un abonnement Lorsque l’utilisateur s’abonne à une application de lecteur
de contenu, le téléchargement automatique du dernier folio commence. L’utilisateur n’a plus à toucher le bouton de
téléchargement.
Date de couverture L’option de date de couverture est désormais disponible dans l’organiseur Folio Producer. Cette
option donne aux éditeurs d’entreprise un contrôle supplémentaire des métadonnées quant aux droits directs du
contenu de l’abonnement.
Version 20
Compatibilité avec InDesign CS6 InDesign CS6 comporte plusieurs nouvelles fonctions qui simplifient la création de
fichiers source InDesign. Avec les fonctions de variantes de mise en page et de règles de mise en page liquide, vous
pouvez créer des mises en page avec des orientations et des périphériques cible différents dans le même document. La
largeur souple des colonnes, les blocs de texte à dimensionnement automatique et l’affichage fractionné de la mise en
page contribuent également à créer des mises en page dynamiques. En outre, l’insertion du code HTML permet de
créer rapidement une incrustation Web en copiant le code ; le document InDesign inclut désormais les ressources
d’incrustation. Voir « Création de documents InDesign source (InDesign CS6) » à la page 43 .
Prise en charge de l’iPhone Digital Publishing Suite prend désormais en charge l’iPhone 3GS, 4 et 4S (l’iPhone 3G
n’est pas pris en charge). Lorsque vous utilisez le Viewer Builder, vous pouvez créer un lecteur personnalisé qui
fonctionne pour l’iPhone, l’iPad ou les deux à la fois. Lorsque vous créez une application à la fois pour l’iPad et
l’iPhone, vos clients ont le droit d’acheter des folios sur n’importe quel périphérique iOS pris en charge. Le lecteur de
contenu sur l’iPhone comprend une page de nouveaux paramètres, un mode étendu de navigation et un écran de
bienvenue que les éditeurs peuvent contrôler.
Le partage sur les réseaux sociaux, les signets et l’archivage automatique ne sont pas encore pris en charge par l’iPhone.
Pour le moment, vous ne pouvez pas créer de lecteur de contenu à édition unique pour l’iPhone (voir la section
« Création de contenu pour l’iPhone » à la page 47).
Lecteur Web pour le partage sur les réseaux sociaux Si vous activez le partage sur les réseaux sociaux dans votre
application, les représentations des articles d’un folio sont téléchargées sur un serveur Web pour être affichées dans un
navigateur de bureau. Utilisez le paramètre Protégé dans l’éditeur Folio Producer pour déterminer les articles qui sont
affichables sur un ordinateur de bureau. Utilisez l’outil Administration de comptes pour limiter le nombre d’articles
non protégés visibles et définir une zone payante. Voir « Utilisation du partage sur les réseaux sociaux » à la page 152.
Améliorations apportées au partage sur les réseaux sociaux Le partage sur les réseaux sociaux est maintenant
disponible par le biais des réseaux sociaux Facebook, Twitter, du courrier électronique et de la fonction Copier/coller.
Si vous activez le partage social dans votre application, un client peut accéder à un article et le partager par le biais de
Twitter, par exemple. Si l’article est protégé, le lien dans le tweet renvoie à l’URL de publication. Si l’article est non
protégé, toute personne qui clique sur le lien dans un navigateur de bureau pris en charge examine le folio dans
l’afficheur Web. Par ailleurs, une personne qui clique sur le lien sur un iPad peut télécharger l’application, télécharger
ou acheter le folio ou encore lire l’article, selon les éléments qui sont déjà téléchargés. Voir « Utilisation du partage sur
les réseaux sociaux » à la page 152.
Option Masquer la table des matières Le paramètre Masquer la table des matières d’un article permet de masquer un
article dans la table des matières sans avoir à le signaler comme étant une publicité. (voir la section « Modification des
propriétés de l’article » à la page 93).
Publication en arrière-plan Lorsque vous utilisez l’organiseur Folio Producer pour publier ou mettre à jour un article,
le travail est ajouté à la file d’attente de publication et vous pouvez continuer à utiliser l’organiseur et ajouter d’autres
folios à la file d’attente. Vous pouvez vérifier l’état de la file d’attente en choisissant la commande Affichage >
UTILISATION DE DIGITAL PUBLISHING SUITE 20
Présentation de Digital Publishing Suite
Dernière mise à jour le 1/2/2013
Demandes de publication dans l’organiseur (voir la section « Publication de folios dans Distribution Service » à la
page 115).
Affichage d’un compteur de téléchargement Les clients des éditions professionnelle et d’entreprise peuvent
maintenant voir un compteur de téléchargement sur le tableau de bord Digital Publishing Suite. Le compteur de
téléchargement apparaît uniquement pour les comptes dont l’exactitude a fait l’objet de vérifications.
Desktop Viewer désormais redimensionnable Si vous utilisez Desktop Viewer pour afficher un aperçu d’un folio
2 048 x 1 536, vous pouvez appuyer sur les touches Commande + 1 pour afficher sa taille réelle ou Commande + 0
pour l’ajuster à la fenêtre. Vous pouvez également effectuer un zoom avant ou arrière (voir la section « Utilisation de
Desktop Viewer pour prévisualiser le contenu » à la page 98).
Aperçu simplifié sur le périphérique Lorsque vous utilisez Viewer Builder pour créer un lecteur Adobe Content
Viewer personnalisé pour l’iPad, la fonction Aperçu sur le périphérique ne nécessite plus l’utilitaire Phone Disk. (Voir
« Utilisation de la fonction Aperçu sur le périphérique » à la page 101).
Améliorations apportées à l’interface utilisateur Dans le panneau Folio Builder, la taille du folio s’affiche au-dessous
du nom du folio, ce qui permet d’identifier plus aisément les rendus. La conception de Viewer Builder facilite la
vérification des icônes utilisées sur les différents modèles d’iPhone et d’iPad. Les fenêtres de l’organiseur Folio
Producer et de l’éditeur Folio Producer ont également été rémaniées.
Paramètre du format d’URL Le paramètre du format d’URL facultatif dans Viewer Builder est maintenant disponible
pour tous les types de lecteurs de contenu iOS et non seulement pour les applications sous abonnement. Le format
d’URL permet de créer un lien entre une application de lecteur de contenu et une autre application ou mobile Safari.
Verrouillage de l’orientation du contenu HTML des icônes personnalisées Si vous êtes éditeur dı’entreprise, vous
pouvez définir l’orientation des pages HTML qui s’affichent lorsque l’utilisateur touche les icônes de la barre de
navigation personnalisée. Voir « Barre d’outils de navigation (édition Enterprise uniquement) » à la page 129.
Performances améliorées de Viewer Builder Viewer Builder génère maintenant les applications beaucoup plus
rapidement, généralement en quelques secondes.
Défilement lisse avec prise en charge PDF limitée Si votre article à défilement lisse ne dépasse pas deux pages, vous
pouvez utiliser le format d’image PDF. En revanche, s’il fait plus de deux pages, le format JPG ou PNG est préconisé
dans le cadre d’un article à défilement lisse.
Navigation dans les « zones chaudes » Les éditeurs d’entreprise peuvent activer les zones actives qui apparaissent sur
les côtés gauche et droit de chaque article. Si vous touchez une zone chaude invisible, vous accédez à lı’article suivant
ou précéent. Voir « Barre d’outils de navigation (édition Enterprise uniquement) » à la page 129.
Version 19
Prise en charge de rendu d’iOS Le nouveau modèle HD d’iPad a été récemment annoncé. Lorsque vous utilisez
Viewer Builder pour créer un nouveau lecteur, vous pouvez spécifier les icônes et écrans de démarrage pour des tailles
différentes. Les rendus sont activés pour les périphériques iPad, ce qui vous permet de créer des rendus de folio d’une
taille différente. Chaque modèle iOS télécharge des folios qui correspondent de manière optimale à l’affichage de la
tablette.
Cadres défilants améliorés Le panneau Folios Overlays a un nouveau type d’incrustation appelé Blocs défilants, qui
remplace l’option Panorama uniquement dans l’incrustation de panorama et de zoom. Lorsque vous créez le contenu
défilant, vous pouvez déterminer le sens de défilement, baser l’affichage initial sur l’emplacement du cadre de contenu
et masquer la barre de défilement.
Partage sur réseaux sociaux Si vous enregistrez votre application sur Facebook, vous pouvez activer une option de
partage sur réseau social dans la barre de navigation de votre lecteur personnalisé. Les clients peuvent appuyer sur
l’option Facebook et saisir un message. Ce message et un lien vers votre site de publication sont ensuite publiés sur le
UTILISATION DE DIGITAL PUBLISHING SUITE 21
Présentation de Digital Publishing Suite
Dernière mise à jour le 1/2/2013
mur Facebook de l’utilisateur. Pour le moment, seul un lien vers le site Web de publication est affiché et Facebook est
le seul site de médias sociaux disponible.
Folios d’archivage automatique (iOS uniquement) Dans Viewer Builder, vous pouvez activer l’archivage automatique
des folios et indiquer le nombre maximal de folios téléchargés pour votre lecteur de contenu. Lorsque le nombre seuil
est atteint, les folios dont le téléchargement est le plus ancien sont archivés automatiquement. Les clients peuvent
activer ou désactiver l’archivage automatique du périphérique, mais ils ne peuvent pas modifier le seuil. Les clients
peuvent télécharger à nouveau tout folio archivé.
Améliorations du défilement lisse Dans les versions précédentes, la création d’articles à défilement lisse à double
orientation nécessitait la création des articles par importation. A présent, lorsque vous créez un article à l’aide du
bouton Ajouter, vous pouvez définir les options de défilement lisse. Lors de l’importation d’articles à défilement lisse,
assurez-vous que vous choisissez une option de défilement lisse.
Signets Si vous activez les signets dans Viewer Builder, les clients peuvent marquer un article comme signet, puis
choisir celui-ci dans un menu déroulant de la barre de navigation pour accéder à l’article mis en signet. Les signets
fonctionnent dans plusieurs folios au sein d’un même lecteur de contenu.
Optimisation des performances de mise à jour de la bibliothèque Lorsque vous revenez dans la bibliothèque du
lecteur, celui-ci recherche seulement les modifications, permettant ainsi un traitement plus rapide. Le message
d’erreur « Impossible de mettre à jour la bibliothèque » doit s’afficher moins fréquemment : uniquement lorsque la
mise à jour de la bibliothèque ne s’effectue pas lors du premier lancement ou lorsque la bibliothèque est vide et que la
mise à jour ne s’effectue pas.
Analyses de fichiers HTML5 Une API JavaScript qui capture les analyses de contenu HTML5 sur iOS et les
périphériques Android est désormais disponible. Cette API JS permet aux éditeurs d’inclure les analyses HTML5 dans
les rapports de SiteCatalyst au lieu d’afficher des rapports distincts. Pour plus de détails, contactez votre représentant
Adobe.
Distribution restreinte de folios (édition Entreprise uniquement) Les éditeurs d’entreprise peuvent maintenant
déterminer si les deux folios gratuits et de vente au détail apparaissent dans la bibliothèque selon la connexion. Les
éditeurs peuvent configurer la bibliothèque afin que seuls les folios gratuits téléchargés apparaissent dans la
bibliothèque. Pour les folios de vente au détail, les folios téléchargés et autorisés peuvent tous apparaître dans la
bibliothèque. Les éditeurs n’ont pas besoin d’utiliser un magasin Web personnalisé pour rendre des folios de vente au
détail disponibles.
Améliorations de l’icône de la barre de navigation (édition Entreprise uniquement) Dans Viewer Builder, les éditeurs
d’entreprise peuvent ajouter jusqu’à huit icônes de la barre de navigation. Vous pouvez à présent modifier l’aspect des
deux icônes par défaut : l’icône du lecteur et celle de la bibliothèque. En outre, les fichiers HTML locaux utilisés pour
ces icônes peuvent inclure jusqu’à cinq niveaux de dossiers de fichiers imbriqués. Les fichiers HTML n’ont plus besoin
d’être au même niveau dans la structure HTML.
Lien au magasin depuis un article (édition Entreprise uniquement) Vous pouvez créer un bouton ou un hyperlien qui
permet aux clients de passer d’un article à la page de magasin. Lors de la création d’un bouton ou d’un hyperlien,
remplacez « http:// » dans le champ URL par « ww.gotoStore » (« ww »n’est pas une erreur typographique). Vous
devez également utiliser Viewer Builder pour créer une étiquette « Magasin » pour l’icône personnalisée.
Améliorations de l’incrustation imbriquée Bon nombre des bogues et des limitations dans les incrustations
imbriquées ont été résolus. Par exemple, les boutons ancrés dans des cadres défilants ne perdent plus leur aspect
lorsque qu’ils sont en dehors du bloc conteneur, et la solution pour renommer les objets d’image défilante dans le
panneau Calques n’est plus nécessaire.
UTILISATION DE DIGITAL PUBLISHING SUITE 22
Présentation de Digital Publishing Suite
Dernière mise à jour le 1/2/2013
Version 18
Incorporation d’incrustations dans un diaporama Les objets interactifs sont désormais pris en charge dans les objets à
états multiples. Les états de diaporamas prennent en charge l’ensemble des objets interactifs (à l’exception d’un autre
diaporama).
Incrustations améliorées de bouton Les actions Vidéo et Son sont désormais prises en charge ; vous pouvez donc
utiliser ces boutons pour lire, suspendre et arrêter des vidéos. De plus, il est également possible de créer une lecture
séquentielle d’actions multiples. Par exemple, un bouton peut désormais lire un clip audio, puis faire place à une
nouvelle diapositive à la fin de la lecture.
Boutons MSO dans un cadre défilant Les actions qui déclenchent l’état d’un objet à états multiples fonctionnent
désormais dans les cadres défilants. Remarque : quand vous collez le cadre de contenu dans le bloc conteneur, l’action
est supprimée et vous devez la rajouter après le collage.
Mouvement de pincement avec les doigts et zoom dans toutes les incrustations Quand vous créez un article PDF,
vous pouvez effectuer un mouvement de pincement avec les doigts et zoomer sur une page, même si elle contient des
objets interactifs. Vous pouvez même effectuer cette opération pendant la lecture d’une incrustation. Les articles PDF
restent disponibles uniquement sur les lecteurs iPad, pas sur le lecteur de bureau ou d’autres lecteurs AIR. Lorsque
vous créez ou mettez à jour le lecteur de contenu personnalisé, veillez à sélectionner l’option « Activer le zoom des
fichiers PDF » dans Viewer Builder.
Adobe Content Viewer personnalisé Si vous possédez un compte professionnel ou d’entreprise, vous pouvez utiliser
Viewer Builder pour créer votre propre version d’Adobe Content Viewer pour iPad. Cette possibilité comporte deux
avantages. Premièrement, quand une nouvelle version des outils Folio Producer est disponible, vous pouvez en tester
les nouvelles fonctionnalités en attendant l’approbation d’Adobe Content Viewer. Deuxièmement, la fonction Aperçu
sur le périphérique est activée dans la version personnalisée d’Adobe Content Viewer.
Prise en charge de la fonction Aperçu sur le périphérique pour iPad Lorsque vous utilisez Viewer Builder pour créer
une instance d’Adobe Content Viewer, vous pouvez copier les informations du folio directement sur un iPad connecté,
sans passer par le client Web acrobat.com. Cependant, la fonction Aperçu sur le périphérique pour iPad requiert un
utilitaire tiers tel que Phone Disk. La fonction Aperçu sur le périphérique pour iPad fonctionne uniquement sur
Mac OS, pas sur Windows.
Rééditer le lien Si vous déplacez ou renommez vos fichiers sources, vous pouvez utiliser la commande Rééditer le lien
dans le panneau Folio Builder pour reconnecter les mises en page de l’article aux fichiers sources.
Lecteurs personnalisés pour Amazon Appstore Adobe et Amazon ont résolu les problèmes qui empêchaient
l’approbation des lecteurs personnalisés dans Amazon Appstore. Par ailleurs, les folios sont désormais stockés dans le
dossier App Data de la carte SD, ce qui évite de laisser des folios quand une application est supprimée.
Activation des abonnements gratuits pour le Kiosque Les lecteurs personnalisés que vous créez prennent désormais
en charge l’option d’abonnement gratuit d’Apple.
Option de notification pour les notifications Push Les notifications Push ne se déclenchent plus automatiquement
quand vous publiez un folio. Quand vous publiez ou mettez à jour un folio, cliquez sur le bouton Notifier dans
l’organiseur Folio Producer pour déclencher les notifications Push.
Serveurs tiers de notification Push Un compte d’entreprise permet de créer un serveur personnalisé pour contrôler les
notifications Push.
Distribution restreinte de folios gratuits Si vous êtes un éditeur d’entreprise, vous pouvez masquer le contenu gratuit
dans la bibliothèque du lecteur afin d’autoriser les clients à télécharger du contenu spécifique en fonction de leurs
comptes de connexion.
Améliorations de la banque de données HTML Si vous êtes un éditeur d’entreprise, vous pouvez définir une banque de
données HTML qui communique avec la bibliothèque du lecteur. Par exemple, quand un client se connecte à votre
banque de données tierce, il peut être automatiquement connecté au lecteur.
UTILISATION DE DIGITAL PUBLISHING SUITE 23
Présentation de Digital Publishing Suite
Dernière mise à jour le 1/2/2013
Améliorations des abonnements Désormais, ce n’est plus seulement le bouton dans l’angle inférieur droit de la
mosaïque pour l’abonnement qui est interactif, mais toute la zone. Quand un utilisateur s’abonne à une application,
les options de celle-ci sont masquées. Si un utilisateur achète le folio le plus récent, les options d’abonnement restent
disponibles.
Affichage de la couverture uniquement pour les lecteurs Android Les bibliothèques du lecteur Android permettent
d’utiliser les options Affichage de la grille, Affichage de la couverture, ou les deux. Sur des périphériques Android plus
petits, certains éditeurs proposent uniquement l’option Affichage de la couverture.
Améliorations de l’outil Administration de comptes Vous pouvez désormais utiliser l’outil Administration pour créer
des comptes limités à l’intention des designers internes ou sous-traitants. Les comptes que vous créez sont liés au
compte de l’entreprise et n’autorisent pas l’accès à des fonctions telles que l’analyse.
Version 17
Single Edition Au lieu de payer un abonnement mensuel à Adobe pour bénéficier d’un compte Professional ou
Enterprise, vous pouvez désormais acquérir pour un montant fixe une édition du produit permettant de créer un
lecteur de contenu pour folios simples en vue de l’envoyer à l’Apple Store.
Prise en charge de Viewer Builder sur Amazon Appstore Dans Viewer Builder, il est possible de créer un lecteur de
contenu personnalisé en vue de l’envoyer à Amazon Appstore. Amazon Appstore est disponible sur les périphériques
Android ainsi que sur la tablette Amazon Fire.
Outil Administration de comptes Utilisez l’outil Administration de comptes d’Adobe pour créer et activer des comptes
pour votre entreprise, et évitez ainsi les échanges de courriers électroniques avec les représentants d’Adobe. Vous
pouvez affecter trois types de comptes à un ID Adobe : Application, Viewer Builder et Administrateur.
Cadres défilants avec incrustations interactives Si vous installez les outils v17 Folio Producer, vous avez la possibilité
d’inclure tout type d’incrustation dans un cadre défilant, à l’exception des diaporamas.
Améliorations apportées aux articles PDF Si une page d’un article au format d’image PDF comporte des boutons liés
à des URL ou des hyperliens, le zoom et le mouvement de pincement fonctionnent si la page ne contient pas d’autres
types d’incrustations interactives.
Option Reliure sur le bord droit Cette option de l’organiseur Folio Producer a pour effet d’afficher les articles de droite
à gauche et non pas de gauche à droite dans le lecteur de contenu. Elle est particulièrement importante pour les langues
asiatiques.
Ouverture de l’organiseur Folio Producer à partir du panneau Le fait de choisir la commande Folio Producer à partir
du menu du panneau Folio Builder permet d’afficher l’organiseur Folio Producer dans votre client Web par défaut.
Amélioration de la fiabilité du serveur L’équipe produit continue à apporter des corrections afin de résoudre les
problèmes de téléchargement sur acrobat.com.
Version 16
Flux de travaux hors ligne Vous pouvez désormais créer un folio et des articles sans télécharger le contenu sur le
serveur Web. Lorsque vous êtes prêt, vous pouvez télécharger le contenu
Prise en charge du Kiosque La version mise à jour de Viewer Builder (version 1.5.1) inclut la prise en charge du
Kiosque pour les lecteurs de contenu pour les abonnements sur l’iPad. Les lecteurs de contenu prenant en charge le
Kiosque s’affichent dans le dossier Kiosque, permettant ainsi d’accéder rapidement aux publications de journaux et
magazines
Publication privée pour les utilisateurs sans abonnement Si vous ne disposez pas d’un abonnement Enterprise ou
Professional, vous pouvez utiliser l’option Publier dans l’organiseur Folio Producer pour publier du contenu de
manière privée. Cette option est particulièrement utile si vous ne parvenez pas à télécharger des folios volumineux par
le biais du serveur acrobat.com. Les folios publiés téléchargés depuis Adobe Distribution Service sont rapides et fiables
UTILISATION DE DIGITAL PUBLISHING SUITE 24
Présentation de Digital Publishing Suite
Dernière mise à jour le 1/2/2013
Nouvelle option pour les fichiers audio Si vous utilisez InDesign CS5.5 et que vous sélectionnez l’option Afficher
d’abord la première image, l’image d’incrustation audio est redimensionnée en fonction de la première image _play
dans le dossier contenant les fichiers de la barre de contrôle. Dans InDesign CS5, vous devez toujours redimensionner
manuellement l’image d’incrustation pour l’adapter à l’image d’affiche.
Importation du fichier HTML Resources dans le panneau Folio Builder Vous pouvez désormais importer le fichier
HTML Resources dans le panneau Folio Builder ainsi que dans l’éditeur Folio Producer.
Tableau de bord amélioré Le tableau de bord Digital Publishing Suite comprend des liens vers des vidéos et d’autres
contenus utiles
Programmes d’installation distincts pour les outils de création et le panneau Utilisez un programme d’installation
pour installer les outils de création (panneau Folio Overlays, module externe InDesign et Desktop Viewer). Utilisez un
programme d’installation distinct pour installer le panneau Folio Builder
Amélioration de la fiabilité du serveur L’équipe produit continue à apporter des corrections afin de résoudre les
problèmes de téléchargement sur acrobat.com. Par exemple, lorsque vous publiez un folio, son contenu est désormais
copié directement du serveur acrobat.com sur Adobe Distribution Service.
Nouvelles catégories d’analyse Les rapports d’analyse vous permettent de visualiser les données en fonction du type
de folio téléchargé : gratuit, unique détail, abonnement ou droit externe
Version 15
Lecteurs personnalisées pour PlayBook Viewer Builder vous permet de créer des lecteurs de contenu personnalisés
pour les plates-formes iPad, Android et BlackBerry PlayBook.
Cadres défilants améliorés Vous pouvez désormais créer du contenu défilant en collant un bloc de texte dans un bloc
conteneur. De plus, les performances des cadres défilants ont été améliorées.
Hyperliens dans les cadres défilants Les hyperliens et les boutons d’hyperliens sont désormais pris en charge dans les
cadres défilants Panorama uniquement. Cependant, les hyperliens figurant dans les diaporamas ou dans les cadres
défilants créés à l’aide du panneau Calques ne sont pas encore pris en charge.
Meilleure gestion de la mémoire Dans les versions précédentes, les incrustations gourmandes en mémoire pouvaient
poser des problèmes de performances lorsqu’elles figuraient sur des pages adjacentes. Le lecteur gère désormais mieux
ces incrustations, fournissant ainsi de meilleures performances.
Aperçu sur le périphérique Vous pouvez copier les informations liées au folio directement sur un périphérique mobile
connecté sans parcourir le client Web acrobat.com. Jusqu’à ce qu’une version mise à jour d’Adobe Content Viewer soit
disponible sur l’Apple Store, la fonctionnalité Aperçu sur le périphérique fonctionne uniquement sur les périphériques
Android. Cette offre nécessite une configuration spécifique.
Personnalisation des cinq icônes de la barre de navigation Lorsque vous utilisez Viewer Builder pour créer une
application personnalisée, vous pouvez désormais remplacer les boutons Bibliothèque et Lecteur dans la barre de
navigation du lecteur (édition Enterprise uniquement).
Création simplifiée de lecteurs de contenu en interne Vous n’êtes plus tenu de fournir des certificats de distribution et
des fichiers de mise en service pour des lecteurs de contenu d’entreprise (édition Enterprise uniquement).
Amélioration des analyses Omniture Les données utilisateurs sont désormais disponibles pour les lecteurs de contenu
simple folio (abonnés à Digital Publishing Suite uniquement). Par ailleurs, les statistiques de téléchargement sont
désormais plus détaillées.
Option de désactivation du bouton de connexion Si vous êtes client de l’édition Entreprise et avez créé un lecteur de
droits personnalisé, vous pouvez désactiver le bouton de connexion pour éviter toute redondance.
UTILISATION DE DIGITAL PUBLISHING SUITE 25
Présentation de Digital Publishing Suite
Dernière mise à jour le 1/2/2013
Ajout de certificats au téléchargement Vous pouvez désormais utiliser Viewer Builder pour créer un lecteur de
contenu personnalisé sans fournir de certificat. Les certificats devront être fournis lors du téléchargement du lecteur.
Cela permet à différents utilisateurs de télécharger l’application et de la signer à l’aide de certificats.
Lorsque vous créez un lecteur de contenu personnalisé, vous n’êtes plus tenu de cliquer sur le bouton Actualiser pour
savoir si le lecteur est terminé.
Optimisation des performances de la bibliothèque Dans certains cas, les folios d’acrobat.com apparaissaient
seulement par intermittence dans la bibliothèque. Adobe Content Viewer doit maintenant afficher en permanence
tous les folios disponibles.
Améliorations apportées aux articles HTML dans Android Viewer Android Viewer vous permet désormais de faire
défiler les éléments contenus dans les articles HTML.
Version 14 (Services et Viewer Builder uniquement)
Modifier l’ordre des articles Vous pouvez désormais modifier l’ordre des articles directement dans le panneau Folio
Builder, et non pas seulement dans le client Web. Il suffit de glisser-déposer les articles pour en modifier l’ordre.
Annuler le partage de folios Si vous avez partagé un folio avec une autre personne, vous pouvez annuler le partage
sans avoir à supprimer le folio. Le panneau Folio Builder permet également de supprimer un folio qui était partagé
avec vous.
Nouvelle taille maximale pour les articles Dans les versions précédentes, la taille maximale pour le téléchargement
d’un article était de 100 Mo. Elle est désormais de 2 Go. Cependant, certains périphériques mobiles ne gèrent pas
parfaitement les articles volumineux.
Paiements intégrés pour les lecteurs Android Vous pouvez maintenant créer des folios de vente au détail pour lecteurs
Android. Pour acheter un folio, les clients peuvent cliquer sur un bouton Acheter dans la bibliothèque de leur lecteur
Android.
Restaurer tous les achats pour les lecteurs Android Les clients peuvent désormais restaurer tous les achats dans les
lecteurs Android, comme c’est déjà le cas sur iPad.
Option d’exportation pour les lecteurs simple folio Une option Exporter figure désormais dans l’organiseur Folio
Producer. Cliquer sur Exporter crée un fichier .zip regroupant le contenu du folio sélectionné. Lors de la création d’un
lecteur de contenu pour folio simple pour l’iPad à l’aide de Viewer Builder, vous indiquez le nom de ce fichier .zip (ou
d’un fichier .folio créé avec Content Bundler).
Option de téléchargement local dans les compilations de développement Lors de la création d’un lecteur de
développement pour l’iPad dans Viewer Builder, vous pouvez activer la fonction de téléchargement local. Cette option
permet de copier manuellement un fichier .folio (et non pas un fichier .zip) dans le lecteur de développement par le
biais d’iTunes.
Contrôler la liste de langues dans iTunes Dans les versions précédentes, le lecteur était disponible en 20 langues dans
l’iTunes Store. Viewer Builder permet désormais de limiter le lecteur à certaines langues.
Option de menu de restauration des achats Grâce à l’option Restaurer les achats du nouveau menu de la bibliothèque
de lecteurs personnalisés, les clients peuvent restaurer manuellement des achats.
Mise à jour des analyses Les données d’abonnement sont désormais collectées en plus des statistiques de folio.
Version 13
La version 13 (juin 2011) était la seconde version publique de Digital Publishing Suite. Les outils de la version 13
s’appuyaient sur le programme d’installation 1.1.x et Viewer Builder 1.3.
Améliorations apportées au téléchargement du lecteur de contenu Les clients peuvent commencer à visualiser un
folio avant la fin de son téléchargement et afficher hors ligne des folios partiellement téléchargés. Les téléchargements
UTILISATION DE DIGITAL PUBLISHING SUITE 26
Présentation de Digital Publishing Suite
Dernière mise à jour le 1/2/2013
interrompus reprennent automatiquement lorsque l’iPad est reconnecté à Internet. Utilisez l’éditeur Folio Producer
pour définir la priorité de téléchargement des articles.
Arrêt à la dernière image Dans le panneau Folio Overlays, vous pouvez maintenant décider d’arrêter les diaporamas
et les séquences d’images au passage de la première ou de la dernière image.
Articles avec glissement horizontal uniquement sur tous les lecteurs de contenu Les articles définis sur Glissement
horizontal uniquement (articles aplatis) fonctionnent maintenant avec les lecteurs de contenu Adobe Content Viewer
for the Desktop, Android et PlayBook.
Option de restauration des achats Si les clients restaurent ou remplacent un iPad, ils peuvent télécharger plus
facilement le contenu auquel ils ont droit. Lorsqu’ils ouvrent le lecteur pour la première fois, ils sont invités à restaurer
leurs achats.
Boutons personnalisés de la barre de navigation Les clients d’entreprise peuvent créer un maximum de trois boutons
qui affichent une page HTML dans le lecteur. Outre les boutons Bibliothèque et Lecteur présents sur la barre d’outils
de navigation, vous pouvez créer d’autres boutons comme Boutique, Aide et Actualités qui affichent une page HTML.
Masquer la barre d’outils de navigation ou le bouton d’accueil Lorsque vous utilisez Viewer Builder pour créer un
lecteur de contenu, vous pouvez masquer la barre de navigation, située en bas du lecteur, ou le bouton d’accueil, situé
dans l’angle supérieur gauche du lecteur.
Rapports d’analyse supplémentaires La page Analyses du tableau de bord Digital Publishing Suite propose désormais
plus de rapports pour suivre les données utilisateur.
Droits pour Android Les clients d’entreprise peuvent à présent octroyer des droits sur les abonnements.
Lecteur de contenu Android traduit Adobe Content Viewer for Android est maintenant traduit dans les mêmes
langues que le lecteur de contenu de l’iPad.
Viewer Builder traduit Viewer Builder a été traduit dans les langues suivantes : allemand, espagnol, français, italien et
japonais.
Utilisation améliorée Le panneau Folio Builder, le site Web de Folio Producer et Viewer Builder ont été perfectionnés
en vue d’améliorer l’expérience de l’utilisateur.
Version 12
La version 12 (mai 2011) était la première version publique de Digital Publishing Suite. Les outils de la version 12
s’appuyaient sur le programme d’installation 1.0.x et Viewer Builder 1.2.
Nouveau panneau Folio Builder Le panneau Folio Builder d’InDesign remplace l’application Content Bundler. Le
nouveau panneau Folio Builder permet d’ajouter des articles et des mises en page d’article, mais aussi de modifier le
folio et les propriétés de l’article.
Folios stockés dans l’espace de travail Web Avec les précédents outils, il était possible de créer un dossier de folios
contenant des dossiers d’article. Vous avez assemblé le dossier de folios pour créer des fichiers .folio que vous avez
téléchargés sur le serveur ou téléchargés localement sur l’iPad. Grâce au nouveau flux de travaux, chaque folio est un
espace de travail sur un serveur Web. Les folios sont toujours composés d’articles qui peuvent désormais être copiés
dans d’autres folios et réorganisés sans être assemblés. Cliquez sur un bouton Aperçu pour prévisualiser des articles
ou des folios complets. Vous pouvez également vous connecter à Adobe Content Viewer et télécharger les folios que
vous avez créés. Vous pouvez utiliser la fonction Importer pour créer des articles basés sur des structures de dossiers
existantes.
Client Web Digital Publishing Suite Les abonnés à Digital Publishing Suite peuvent se connecter au client Web à
l’adresse http://digitalpublishing.acrobat.com/fr/. Le tableau de bord comprend des liens vers des outils et services.
• Utilisez la page Analyses pour effectuer le suivi des données des clients.
UTILISATION DE DIGITAL PUBLISHING SUITE 27
Présentation de Digital Publishing Suite
Dernière mise à jour le 1/2/2013
• Utilisez Folio Producer pour organiser, modifier et publier des folios. Folio Producer comprend une page
Organiseur qui affiche les folios disponibles et une page Editeur qui affiche les articles présents dans un folio
sélectionné.
• Utilisez Viewer Builder pour créer des applications personnalisées.
Partage L’option Partager sert à mettre des folios à la disposition d’autres utilisateurs de Digital Publishing Suite. Par
exemple, un éditeur peut partager un folio avec un designer en charge de créer un article pour un magazine ou une
agence publicitaire peut partager un folio avec plusieurs éditeurs pour mettre à leur disposition des publicités. Le flux
de travaux de partage remplace le flux de travaux « échangé localement ».
Refonte du panneau Folio Overlays Le panneau Folio Overlays a été remanié. Les incrustations de type Logiciel de
visualisation à 360° deviennent des incrustations de séquence d’images. Les incrustations de type Affichage Web
deviennent des incrustations de type Contenu Web. Vous pouvez réinitialiser des objets pour les convertir d’une
incrustation en objet normal.
Nouvelle terminologie Les piles sont désormais appelées des articles. L’option Aplatir est remplacée par l’option
Glissement horizontal uniquement. Le serveur de traitement s’appelle à présent Distribution Service.
Version 11
La version 11 était la version bêta finale de Digital Publishing Suite, capable d’exploiter le flux de travaux de Content
Bundler.
Améliorations apportées au téléchargement de folios La vitesse de téléchargement a été doublée sur l’iPad. En outre,
les utilisateurs de lecteur peuvent lire un folio et en télécharger un autre simultanément.
Améliorations du Lecteur Android Les performances des articles PNG et HTML sont maintenant meilleures sur les
appareils Android. Le lecteur Android prend en charge l’affichage Web In-App.
Personnalisation de la barre de navigation Les clients d’entreprise peuvent ajouter un maximum de trois icônes à la
barre de navigation en affichage Web plein écran.
Améliorations des abonnements Vous pouvez désormais configurer un abonnement Apple (iOS) sans fournir de
serveur de droits personnalisé.
Version 10
Zoom et mouvement de pincement dans les folios PDF Si vous sélectionnez l’option d’exportation PDF durant
l’assemblage, les utilisateurs peuvent zoomer sur les pages en pinçant les doigts sur l’écran. Pour le moment, la fonction
zoom par pincement n’est pas active dans les pages contenant des incrustations interactives.
Content Viewer for Android Adobe Content Viewer est à présent disponible pour les appareils Android. Il n’est pas
possible de télécharger localement des folios vers ce lecteur de contenu. En revanche, l’envoi et le téléchargement de
fichiers sont possibles avec le serveur d’exécution. Bien que le lecteur Android présente un nombre croissant de
similitudes avec le lecteur iPad, certaines fonctionnalités ne sont pas encore prises en charge. Les fonctionnalités qui
ne sont pas encore prises en charge sont les articles aplatis, les vidéos intégrées, les incrustations en panorama et les
folios exportés au format PDF. Les articles HTML et les incrustations Affichage Web peuvent poser des problèmes de
performances.
Lecteurs localisés Les changements de l’interface d’Adobe Content Viewer sont basés sur les paramètres régionaux de
l’appareil. Pour le moment, les langues prises en charge sont l’allemand, l’anglais, l’espagnol, le français, le japonais et
le suédois.
Nouveau support d’abonnement Des options d’abonnement intégrées sont désormais disponibles. Adobe gère le
nouveau modèle d’abonnement d’Apple permettant aux éditeurs de configurer leur serveur de droits.
UTILISATION DE DIGITAL PUBLISHING SUITE 28
Présentation de Digital Publishing Suite
Dernière mise à jour le 1/2/2013
Rendus de folio Les appareils mobiles sont désormais disponibles dans des dimensions multiples. Sur appareils
Android, les mêmes folios 1 024 x 768 s’affichent avec un masque letterbox avec des barres noires. Si vous souhaitez
concevoir pour des appareils (1 024 x 600) ou des proportions (16:9) spécifiques, vous pouvez créer des rendus
différents du même folio. Pour créer des rendus différents, choisissez les mêmes valeurs pour les paramètres Titre du
magazine et Numéro de folio, mais des valeurs différentes pour les paramètres d’exportation de dimension. Le lecteur
de contenu ne propose que le rendu qui correspond le mieux aux dimensions de l’appareil.
Pagination dans les articles HTML Les articles HTML peuvent désormais être divisés en pages plus élégantes.
Version 9
Services d’abonnement de commerce électronique dans le lecteur de contenu Les éditeurs peuvent configurer leur
propre modèle d’abonnement permettant aux clients de s’abonner à un magazine ou à une newsletter et de recevoir
des mises à jour régulières de folios. Les clients peuvent indiquer une plage de folios qui restent chargés sur l’iPad, ce
qui est particulièrement utile pour les magazines d’actualité.
Améliorations du lecteur de contenu pour le bureau Content Viewer for Desktop prend désormais en charge de
nombreuses fonctionnalités qui n’étaient pas gérées, comme les folios simple orientation et les incrustations Affichage Web.
Reliure sur le bord droit Le paramètre Reliure de Content Bundler permet la lecture de droite à gauche des articles en
langues asiatiques. Si Reliure sur le bord droit est sélectionné, le premier article figure le plus à droite. Les utilisateurs
peuvent ainsi parcourir les articles de droite à gauche.
Mise à jour de folio dans le lecteur Un message de mise à jour s’affiche désormais dans la bibliothèque si un folio est
mis à jour sur le serveur d’exécution. Taper sur le bouton Mettre à jour déclenche le téléchargement des fichiers .folio
miniatures nouveaux ou modifiés.
Vidéos double orientation dans les folios simple orientation Les utilisateurs peuvent bénéficier d’une vidéo plein
écran en mode paysage même si le folio n’est disponible qu’en mode portrait.
Meilleure analyse des données Les données analytiques de suivi d’utilisation permettent de distinguer les publicités
des articles. Les données du lecteur en mode déconnecté sont également préservées.
Version 7/8
Nouveau panneau Folio Overlays Le panneau Folio Overlays d’InDesign CS5 remplace l’application Interactive
Overlay Creator. Ce changement signifie que vous pouvez désormais créer toutes les incrustations interactives de
façon native dans InDesign. Le panneau Folio Overlays permet de créer des incrustations et de modifier les paramètres
d’incrustation.
Lecteur AIR pour le bureau Une version AIR du lecteur de conteneur est désormais disponible pour tester vos
publications (appelées maintenant « folios »). Ne recourez à Desktop Viewer que pour effectuer des tests simples car
il ne prend pas encore en charge toutes les fonctionnalités.
Des publications aux folios Les publications s’appellent désormais des folios.
Disparition des options d’ID Il n’est plus nécessaire d’utiliser les mêmes ID d’incrustation dans les documents
horizontaux et verticaux pour assurer la continuité de la publication, quelle que soit l’orientation de l’iPad. Le Bundler
s’appuie sur les actifs et les paramètres source pour identifier les incrustations associées.
Affichage de la grille dans la bibliothèque du lecteur La bibliothèque du lecteur permet désormais d’afficher jusqu’à
huit folios par grille. Vous pouvez basculer entre l’affichage de grille et l’affichage simple.
Option Ordre La nouvelle colonne « Ordre » de Content Bundler réduit le risque de modifier accidentellement l’ordre
des articles. L’article vient se placer à l’endroit correspondant au numéro de séquence que vous avez saisi.
UTILISATION DE DIGITAL PUBLISHING SUITE 29
Présentation de Digital Publishing Suite
Dernière mise à jour le 1/2/2013
Articles verrouillés durant l’assemblage La nouvelle colonne « Verrouillé » de Content Bundler permet d’empêcher la
mise à jour des articles lors de l’assemblage, ce qui se révèle très utile quand vous souhaitez seulement tester les
modifications dans un ou deux articles.
Bouton de déconnexion dans le lecteur Il n’est plus nécessaire de changer le mot de passe de l’identifiant Adobe pour
afficher le bouton Se connecter.
Téléchargement 3G Il est désormais possible de télécharger les folios vers l’iPad par connexion 3G.
Version 6
Articles aplatis Lorsqu’un article (précédemment appelé « pile») est aplati, chacune de ses pages devient un article
distinct permettant aux clients de faire défiler horizontalement les pages d’un article. Seule la première page d’un
article aplati est visible dans la table des matières, alors que toutes les pages s’affichent en mode Parcourir et en tant
que vignettes de défilement. Il n’est pas possible d’aplatir un article pour lequel Défilement lisse est activé.
Assouplissement des exigences de structure des dossiers Vous pouvez désormais générer une publication interactive
complète sans dossier OverlayResources. Dans les versions précédentes, les fichiers source des incrustations devaient
résider dans le dossier OverlayResources, et les fichiers SWF exportés résider dans le dossier Links des documents dans
lesquels ils étaient placés.
Génération automatique de la table des matières Le fichier PNG, qui auparavant était obligatoire pour la table des
matières, est désormais facultatif. Si le dossier d’article ne contient pas de fichier PNG, Content Bundler génère
automatiquement une icône de table des matières en se basant sur la première page de l’article.
Format d’image PDF En plus des formats PNG et JPEG, le Bundler peut afficher les images de page au format PDF. Le
format d’image PDF permet de réduire notablement la taille du fichier et il offre des possibilités supplémentaires pour
les versions à venir, telles que la fonction de zoom par pincement, ainsi que la recherche et la sélection de texte.
Articles HTML Pour créer les articles d’une publication, vous avez désormais le choix entre des fichiers InDesign et des
fichiers HTML. Lorsque vous créez un article avec des fichiers HTML, vous pouvez appliquer un fichier HTML aux
deux orientations ou créer des fichiers HTML distincts pour l’orientation horizontale et l’orientation verticale.
Vignettes HTML Pour les articles InDesign, le lecteur de contenu génère automatiquement les vignettes qui
apparaissent lorsque vous faites glisser la barre de défilement. Cependant, la génération des vignettes prend plus de
temps pour les articles HTML, ce qui peut entraîner une dégradation de leur rendu. Pour améliorer les performances
des vignettes dans les articles HTML, vous pouvez autoriser le Bundler à générer des images de vignette basées sur la
première page de chaque article HTML. Vous pouvez aussi ajouter manuellement des fichiers d’image aux dossiers de
l’article HTML.
Améliorations apportées à l’interface utilisateur du lecteur de contenu Nous avons élargi la barre de défilement à
droite de chaque article car les utilisateurs se plaignaient de son étroitesse. Nous avons également amélioré l’apparence
et les performances des vignettes de page en mode Parcourir.
Transparence dans les cadres défilants Les cadres de contenu défilant sont désormais transparents par défaut. Pour
masquer le contenu d’un bloc conteneur, appliquez un remplissage à celui-ci.
Changements du Bundler Dans Content Bundler, le texte de métadonnées de titre de la publication n’apparaissait
nulle part dans le lecteur. C’est pourquoi nous l’avons supprimé, tout comme les informations des paramètres de
dimension et de type. En outre, l’option Utiliser la couverture s’appelle désormais Inclure la couverture.
Version 5
Diaporamas et hyperliens natifs Les fonctionnalités natives constituent le seul moyen de créer des diaporamas et des
hyperliens interactifs. Les panneaux Etats d’objet, Boutons et Hyperliens permettent de créer des objets interactifs.
Modifiez les paramètres en saisissant les lignes appropriées dans le panneau Etiquette de script. (Nous espérons
intégrer une interface utilisateur pour ces paramètres dans la prochaine version.)
UTILISATION DE DIGITAL PUBLISHING SUITE 30
Présentation de Digital Publishing Suite
Dernière mise à jour le 1/2/2013
Diaporamas natifs plus riches Vous pouvez créer des boutons de navigation pour passer aux diapositives suivantes ou
précédentes d’un diaporama. Si vous ajoutez la ligne « SS_swipeEnabled=yes » dans le panneau Etiquette de script
alors que l’objet à états multiples est sélectionné, les utilisateurs peuvent faire défiler le diaporama en effectuant des
mouvements de glissement sur l’écran de leur appareil.
Liens vers des pages particulières Vous pouvez désormais créer des hyperliens ou des boutons permettant d’accéder
à une page spécifique à l’intérieur d’un article.
Hyperliens « navto » simplifiés Dans les hyperliens « navto », vous pouvez indiquer les noms de document source de
l’article cible avec ou sans l’extension .html ou .indd.
Articles à orientation unique Vous pouvez créer une publication à orientation portrait ou à orientation paysage
uniquement. Il suffit d’inclure les documents InDesign en mode portrait ou paysage dans le dossier de la publication.
L’orientation de la publication est préservée même lors des rotations de l’iPad.
Prise en charge des fichiers HTML locaux pour l’affichage Web Lors de la création d’une incrustation Affichage Web,
vous pouvez choisir un fichier HTML de votre ordinateur. Dans la version précédente, une incrustation de ce type
nécessitait impérativement une URL Internet.
Cadres défilants Créez une zone d’affichage permettant aux utilisateurs de faire défiler le contenu verticalement ou
horizontalement. Par exemple, les utilisateurs peuvent parcourir une liste d’ingrédients.
Bouton Retour Un bouton Retour a été inséré entre les boutons Accueil et TM de la barre de navigation du lecteur de
contenu. Ainsi, les utilisateurs peuvent retourner à la page d’où ils viennent.
Génération d’images JPEG dans le Bundler La boîte de dialogue Options d’exportation du Bundler offre désormais
une option d’exportation du contenu au format PNG ou JPEG.
Gestion améliorée des erreurs dans le Bundler Le Bundler fournit de meilleures informations au cours de
l’assemblage.
Version 4
Incrustation Affichage Web Incorporez une page Web dynamique dans une zone d’affichage spécifiée. Vous pouvez
déterminer si les utilisateurs ont la possibilité d’interagir avec le contenu Web et de modifier les autres paramètres.
Options de Démarrage automatique Créez une incrustation qui est lue automatiquement (ou après un certain délai)
lorsque le client tourne la page. Démarrage automatique est disponible pour les incrustations Logiciel de visualisation
à 360°, Audio, Vidéo et Affichage Web.
Nouvelles options du Logiciel de visualisation à 360° Outre l’option Démarrage automatique, le Logiciel de
visualisation à 360° offre de nouvelles options de contrôle de la lecture et des pauses, de glissement et de lecture en
boucle des images.
Hyperliens navto La procédure de création d’hyperliens permettant de passer d’un article à un autre a été
considérablement simplifiée. Lors de la création d’un bouton ou d’un hyperlien natif dans InDesign, indiquez l’URL
sous la forme « navto:// », tel que « navto://WiFi_v » pour accéder à l’article sur la
Wi-Fi en mode portrait ou paysage.
Diaporamas natifs simplifiés Il n’est plus nécessaire de grouper les objets à états multiples. Le panneau Etiquette de
script n’est nécessaire que pour modifier les paramètres.
Adobe Content Viewer Adobe Content Viewer permet d’envoyer et de télécharger du contenu d’un serveur Adobe, et
de télécharger localement du contenu de votre ordinateur. (Notez que le téléchargement local n’est plus disponible.)
Téléchargement de publications vers un serveur d’exécution Adobe a créé un site serveur temporaire pour que vous
puissiez y envoyer et gérer vos publications. Lors de l’exportation, choisissez Fichiers multiples dans le sous-menu
Publication, puis indiquez les options de téléchargement vers le serveur. Après avoir envoyé du contenu test à un
serveur Adobe, vous pouvez télécharger des publications vers le lecteur. Pour cette version, le seul moyen de
UTILISATION DE DIGITAL PUBLISHING SUITE 31
Présentation de Digital Publishing Suite
Dernière mise à jour le 1/2/2013
télécharger une publication est de se connecter avec le même ID Adobe que la personne qui a envoyé la publication au
serveur.
Gérer des publications dans le Bundler Le Bundler permet de prévisualiser l’interface d’affichage et de gestion des
publications téléchargées. Dans cette version, vous pouvez ajouter, visualiser et supprimer des publications
téléchargées sur le serveur Adobe.
Option Couverture Pour une publication téléchargée sur le serveur, il est possible d’utiliser la première page du
premier article comme couverture affichée dans la bibliothèque.
Version 2.5/3
Correction de bogues ; aucune nouvelle fonctionnalité hormis la disponibilité de l’outil Adobe Content Viewer sur
l’Apple Store.
Version 2
Assouplissement de la structure des dossiers d’incrustation Dans la version précédente, chaque dossier d’article
nécessitait des fichiers InDesign _h et _v et un dossier Links contenant les actifs combinés des deux fichiers. De plus,
un dossier OverlayResources unique était nécessaire pour la publication entière. Bien que cette structure soit toujours
acceptée, vous pouvez désormais disposer de dossiers séparés pour les fichiers _h et _v, chaque dossier contenant un
dossier Links et un dossier OverlayResources (pratique pour les dossiers d’assemblage). Chaque méthode a ses
avantages.
Si vous choisissez de placer les fichiers InDesign et les dossiers Links dans des dossiers séparés, vous devez également
inclure un dossier OverlayResources séparé dans chaque dossier d’article et non pas un dossier OverlayResources
unique pour la publication entière.
Indépendamment de la structure choisie, les fichiers InDesign peuvent désormais comporter un suffixe _h ou _v (pour
horizontal ou vertical) ou bien un suffixe _l ou _p (pour l’orientation paysage ou portrait).
Interactivité InDesign native Les hyperliens, boutons et objets à états multiples des fichiers InDesign peuvent être
intégrés à la publication sans nécessiter l’usage d’Overlay Creator. Le panneau Etiquette de script permet de modifier
les paramètres par défaut de ces objets.
Séquences intégrées Il est maintenant possible de lire les séquences vidéo en mode intégré et non plus seulement en
plein écran.
Panorama Une option Panorama est désormais disponible dans Overlay Creator.
Sidecar.xml Dans un fichier CSV appelé « Info.csv », vous pouvez enregistrer les métadonnées pour ne pas avoir à les
saisir à chaque utilisation du Bundler. En raison de problèmes d’affichage de certains caractères, le fichier CSV est
remplacé par un fichier XML.
Publications multiples Vous pouvez à présent ajouter plusieurs publications au lecteur. Toucher l’icône Accueil vous
ramène à la bibliothèque des publications et non pas au début de la publication actuelle. Vous pouvez créer des images
d’aperçu pour les publications de bibliothèque. Pour le moment, il n’est pas possible de charger plus de huit
publications.
Défilement lisse Vous pouvez déterminer si chaque article d’une publication défile en continu ou page par page.
Version 1
Dans leur première version, les outils Digital Publishing Suite comportaient l’application Content Bundler basée sur
AIR et l’application Interactive Overview Creator. Le première version d’Overlay Creator incluait les types
d’incrustation Hyperlien, Logiciel de visualisation à 360°, Audio et Vidéo. Le panneau Overlay Creator représentait le
seul moyen de créer des objets interactifs.
UTILISATION DE DIGITAL PUBLISHING SUITE 32
Présentation de Digital Publishing Suite
Dernière mise à jour le 1/2/2013
Notes de mise à jour sur les nouvelles fonctionnalités
(toutes les langues)
Les outils Digital Publishing Suite sont fréquemment mis à jour. Pour avoir une description des nouvelles
fonctionnalités de l’ensemble actuel d’outils, reportez-vous à la section « Nouveautés de cette version » à la page 12.
Nouveautés de cette version
Neues in dieser Version (allemand)
Nouveautés de cette version (français)
Nouveautés de cette version (japonais)
Novità di questa versione (italien)
Novedades de esta versión (espagnol)
Nouveautés de cette version (coréen)
O que há de novo neste lançamento (portugais)
Nouveautés de cette version (chinois simplifié)
Nouveautés de cette version (chinois traditionnel)
Nieuw in deze release (néerlandais)
Nyheter i den här versionen (suédois)
Milyen újdonságokat tartalmaz ez a kiadás? (hongrois)
Bu sürümdeki yenilikler (turc)
Co je nového v této verzi (tchèque)
Nyheder i denne version (danois)
Nouveautés de cette version (russe)
Version uudet ominaisuudet (finnois)
Nowooci w tym wydaniu (polonais)
Nouveautés de cette version (ukrainien)
Liste des fonctions prises en charge
Ces tableaux répertorient les fonctions prises en charge.
= prise en charge
= non prise en charge
= pas entièrement mise en oeuvre ou partiellement prise en charge
UTILISATION DE DIGITAL PUBLISHING SUITE 33
Présentation de Digital Publishing Suite
Dernière mise à jour le 1/2/2013
Fonctions d’article
Fonctions du lecteur de contenu
iPad iPhone Android/Amazon Lecteur de
contenu pour le
bureau
Folio à orientation
simple ou double
Création de
publications
numériques -
Glissement horizontal
des articles (articles
aplatis)
Importation
d’articles HTML
Format d’image PDF
(pincement et zoom sur
une page)
Défilement lisse
Utilisation du partage
sur les réseaux sociaux
(lecteur de
contenu Web)
(V19 ou
version
ultérieure)
(v22 ou
version
ultérieure)
Panneau Détails de
l’application (Favoris) (v19 ou
version
ultérieure ; non
activé dans
Adobe Content
Viewer)
(v19 ou
version ultérieure ;
non activé dans
Adobe Content
Viewer)
Zones chaudes
(v21 ou
version
ultérieure)
(v21 ou
version ultérieure)
(Adobe
Content Viewer
personnalisé v22)
Reliure sur le bord droit
iPad iPhone Android/Amazon Lecteur de
contenu pour le
bureau
Application multi-folio
(en version
limitée bêta)
Licence d’application
de publication
unique/Single Edition
Folios d’achat In-app
sur plate-forme
UTILISATION DE DIGITAL PUBLISHING SUITE 34
Présentation de Digital Publishing Suite
Dernière mise à jour le 1/2/2013
Abonnement à une
plate-forme Amazon
Google Play
Habilitation
personnalisée
(Entreprise)
(en version
limitée bêta)
Bibliothèque HTML
personnalisée
Icônes de la barre de
navigation
personnalisée et
stockage
Téléchargement de
l’arrière-plan de la
bibliothèque
Téléchargement
progressif (affichage du
folio lors du
téléchargement)
Création de rendus de
folio
(v19 ou
version
ultérieure)
Les folios doivent
correspondre aux
proportions du
périphérique
(Rendus
stricts v22 ou
ultérieure)
Utilisation de la
fonction Aperçu sur le
périphérique USB
(Mac
uniquement)
(Mac
uniquement
)
Archivage
automatique
Glissement à deux
doigts (v22 ou
version
ultérieure)
(v22 ou
version
ultérieure)
Filtres
(v22 ou
version
ultérieure)
(v22 ou
version
ultérieure)
Sections
(lecteur V24
ou version
ultérieure)
Notifications Push
iPad iPhone Android/Amazon Lecteur de
contenu pour le
bureau
UTILISATION DE DIGITAL PUBLISHING SUITE 35
Présentation de Digital Publishing Suite
Dernière mise à jour le 1/2/2013
Fonctions d’interactivité
La vue du folio masque
la barre de navigation
du système
N/A N/A
Amazon
Android
(versions 3.0 et
ultérieures)
Téléchargement en
arrière-plan Newsstand
Barre de défilement
Parcourir
(Combiné à
la barre de
défilement)
(Combiné à
la barre de
défilement)
Bouton Retour
TM
Accueil
(Bibliothèque)
(Bibliothèqu
e)
iPad iPhone Android/Amazon Lecteur de
contenu pour le
bureau
Lecteur de
contenu
Web
Incrustations
d’hyperliens
Incrustations de
diaporamas (v23 ou
version
ultérieure)
Séquence
d’images en
incrustation
Panorama en
incrustation
Panorama et
zoom en
incrustation
Incrustations de
cadres défilants (v23 ou
version
ultérieure)
Contenu Web en
incrustation
iPad iPhone Android/Amazon Lecteur de
contenu pour le
bureau
UTILISATION DE DIGITAL PUBLISHING SUITE 36
Présentation de Digital Publishing Suite
Dernière mise à jour le 1/2/2013
Incrustations
audio et vidéo
Ajout de son
pour l’arrièreplan
(v23
ou version
ultérieure)
(v23
ou
version
ultérieure
)
Incrustations
audio et vidéo
plein écran
Incrustations
audio et vidéo
intégrées
Imbrication
d’incrustations
interactives (v18
ou version
ultérieure)
(v21 ou
version
ultérieure)
Prise en charge
d’incrustation
dans les articles
PDF (v18 ou
version
ultérieure)
iPad iPhone Android/Amazon Lecteur de
contenu pour le
bureau
Lecteur de
contenu
Web
37
Dernière mise à jour le 1/2/2013
Chapitre 2 : Création de documents
InDesign CS5 et les versions ultérieures permettent de créer des mises en page pour les périphériques mobiles tels que
l’iPad.
Présentation de la conception de mise en page
Un folio correspond à une publication, par exemple une publication d’un magazine mensuel ou le contenu d’un lecteur
de contenu à publication unique. Un folio est constitué d’un ou de plusieurs articles (parfois appelé des « Piles »). A
l’aide d’InDesign CS5 ou d’une version ultérieure, créez des documents source pour vos articles. Utilisez le panneau
Folio Builder pour créer des folios et des articles. Utilisez le panneau Folio Overlays pour ajouter des objets interactifs
à vos documents.
Articles connexes
Création de publications numériques
Dans InDesign CS6, vous pouvez inclure des mises en page horizontales et verticales dans le même document
InDesign. Dans InDesign CS5/CS5.5, les mises en page horizontales et verticales doivent figurer dans des documents
InDesign différents. Il n’est pas possible de mélanger et d’associer des orientations à l’intérieur d’un folio. Le folio
entier doit être de type double, portrait ou paysage.
Un article à double orientation se présente dans deux mises en page : verticalement et horizontalement. Lorsque
l’utilisateur fait pivoter le périphérique mobile, la seconde orientation est utilisée. Un folio à orientation unique est
bloqué selon l’orientation définie. Cela signifie que si vous créez des articles avec des fichiers InDesign verticaux
uniquement, cette orientation reste en place même si l’utilisateur fait pivoter le périphérique mobile. Toutefois, même
si un folio s’affiche en mode portrait uniquement, vous pouvez lire les vidéos plein écran en mode paysage.
Pour effectuer cette action : Consultez la section :
Prendre des décisions de création « Création de publications numériques » à la page 37
Utiliser InDesign pour créer des documents source pour les articles « Création de documents source » à la page 41
Ajouter des incrustations interactives « Interactivité » à la page 55
Créer des folios et des articles « Folios et articles » à la page 79
Prévisualiser le contenu « Aperçu des folios et des articles » à la page 98
Partager des folios avec d’autres personnes « Partage de folios » à la page 86
UTILISATION DE DIGITAL PUBLISHING SUITE 38
Création de documents
Dernière mise à jour le 1/2/2013
Mises en page paysage et portrait sur l’iPad
Chaque document peut comporter plusieurs pages et ressources dont l’orientation horizontale et verticale diffère.
Défilement lisse
Vous pouvez activer l’option Défilement lisse pour certains articles. Le défilement lisse est utile pour les mises en page
monopages longues, telles qu’une table des matières. Si le défilement lisse est activé, réalisez votre création en fonction
de ce paramètre. Par exemple, pour l’iPad, vous pouvez créer des documents paysage et portrait aux formats
1 024 x 2 000 et 768 x 2 000, respectivement.
Il est impossible d’utiliser un document de plusieurs pages pour un article à défilement lisse. Si vous créez des articles
de type défilement lisse à l’aide du format PDF, la fonction de zoom et mouvement de pincement n’est pas activée.
Dans InDesign, utilisez la boîte de dialogue Nouveau document ou Format de document pour indiquer le format de
page.
A
B
UTILISATION DE DIGITAL PUBLISHING SUITE 39
Création de documents
Dernière mise à jour le 1/2/2013
Défilement page par page et défilement lisse
A. Défilement horizontal page par page B. Défilement lisse horizontal C. Défilement vertical page par page D. Défilement lisse vertical
Pour créer un article à défilement lisse, effectuez l’une des opérations suivantes :
1 Créez un document d’une page aux dimensions appropriées, par exemple 1 024 x 2 000 pour un document en mode
paysage ou 768 x 2 000 pour un document en mode portrait.
2 Dans la vue des articles du panneau Folio Builder, cliquez sur Ajouter pour créer un article.
3 Dans la boîte de dialogue Nouvel article, spécifiez les options suivantes :
Défilement lisse Sélectionnez Horizontal uniquement si l’article ne doit comporter qu’une mise en page paysage
avec défilement lisse. Cette option est utile pour un article dans un folio uniquement horizontal ou pour un article
dans lequel l’option Défilement lisse est activée pour la version paysage et définie sur Désactivé (Magnétisme de la
page) pour la version portrait. Sélectionnez Dans les deux sens pour les folios à double orientation dans lesquels le
défilement lisse est activé pour les deux mises en forme.
Mise en page Portrait/Paysage (InDesign CS6) Spécifier la mise en page à utiliser pour l’article s’avère
particulièrement utile si vous avez créé des variantes de mise en page. Si les mises en forme Portrait et Paysage
figurent dans des documents distincts, choisissez la mise en page appropriée pour une option et aucune pour
l’autre. Ouvrez ensuite l’autre document et ajoutez-le en tant que deuxième mise en page.
Portrait/Paysage (InDesign CS5/CS5.5) Indiquez l’orientation du document. Par exemple, pour un document de
768 x 2 000, sélectionnez Portrait. Pour un document de 1 024 x 2 000, sélectionnez Paysage.
4 Cliquez sur le bouton OK.
5 Dans un folio à double orientation, ajoutez la seconde mise en page à l’article.
Informations supplémentaires
Vous pouvez également créer un article à défilement lisse en l’important. Créez les fichiers source _h et _v et utilisez
l’option Importer un article (voir la section « Importation d’articles InDesign » à la page 88).
Le défilement lisse ne fonctionne que verticalement pour le moment. Pour faire défiler un article horizontalement,
vous pouvez créer un cadre défilant (voir la section « Incrustations de cadres défilants » à la page 76).
Pour ajuster la taille de la page de défilement lisse, utilisez l’outil Page pour sélectionner la page souhaitée, puis réglez
la hauteur.
Glissement horizontal des articles
Si vous souhaitez qu’un ou plusieurs articles défilent horizontalement uniquement, sélectionnez l’option Glissement
horizontal uniquement dans la boîte de dialogue Propriétés de l’article. Les utilisateurs naviguent dans les « articles
aplatis » en faisant glisser les pages vers la gauche et la droite et non pas vers le haut et le bas.
1024 1024
1024
768
2000
768 768
2000
A B C D
UTILISATION DE DIGITAL PUBLISHING SUITE 40
Création de documents
Dernière mise à jour le 1/2/2013
Aplatissement des articles
A. Article non aplati B. Article aplati
Seule la première page d’un article aplati est visible dans la table des matières, alors que toutes les pages s’affichent en
mode Parcourir. Il n’est pas possible d’aplatir un article pour lequel le défilement lisse est activé.
Utilisation de HTML pour DPS
Il existe trois principaux moyens d’exploiter le langage HTML à l’aide des outils DPS :
Liens vers des sites Web Utilisez des hyperliens ou des boutons pour afficher un site Web. Vous pouvez afficher les
sites Web dans le navigateur mobile externe ou dans un navigateur intégré dans lequel les utilisateurs appuient sur un
bouton Fermer pour revenir au folio (voir la section « Incrustations d’hyperliens » à la page 58).
Contenu Web en incrustation Créez une incrustation du contenu Web permettant d’afficher un site Web ou des
fichiers HTML locaux dans une zone d’affichage (voir la section « Contenu Web en incrustation » à la page 73).
Articles HTML Au lieu de créer des articles à l’aide de documents InDesign, vous pouvez créer un dossier avec des
ressources HTML et l’importer sous forme d’article (voir la section « Importation d’articles HTML » à la page 89).
Un dossier HTMLResources est utile pour partager les mêmes ressources (telles que CSS, JavaScript ou fichiers
d’image) parmi plusieurs articles HTML ou incrustations de contenu Web (voir la section « Importation des
ressources HTML » à la page 113).
Zoom et mouvement de pincement sur les articles
Si vous voulez que les utilisateurs soient en mesure d’agrandir le contenu d’un article d’un mouvement de pincement
avec les doigts, choisissez le format d’image PDF lors de la création des articles. Vous pouvez spécifier le format
d’image PDF uniquement lors de la création d’un article. Les incrustations interactives ne désactivent plus la fonction
de pincement et de zoom.
Voir Différences entre le format d’image PDF et JPG/PNG pour Digital Publishing Suite.
A B
UTILISATION DE DIGITAL PUBLISHING SUITE 41
Création de documents
Dernière mise à jour le 1/2/2013
L’option de pincement et de zoom dans un article PDF est uniquement disponible sur le lecteur de contenu iPad. Le
zoom et le pincement ne sont pas pris en charge dans les articles à défilement lisse pour le moment.
Lors de la création ou de la mise à jour du lecteur de contenu personnalisé, sélectionnez l’option Activer le zoom des
fichiers PDF dans DPS App Builder.
Création de documents source
Si vous créez un article de magazine numérique à partir d’un article imprimé, il est généralement plus aisé d’opter pour
la création d’un nouveau document. Pour reconditionner un document, vous pouvez modifier les paramètres dans la
boîte de dialogue Format de document. Indiquez une taille de page (par exemple, 1 024 x 768 pour l’iPad SD) et une
orientation (portrait ou paysage). Pour obtenir des folios à double orientation dans lesquels les clients peuvent
visualiser un contenu horizontalement ou verticalement, vous pouvez créer deux documents distincts pour chaque
article : un en mode portrait, l’autre en mode paysage. Si vous utilisez InDesign CS6, vous pouvez également créer des
variantes de mises en forme au sein du même document.
N’utilisez pas de pages en vis-à-vis dans votre document source ; optez plutôt pour une page par planche.
Instructions pour la création de documents
• Désélectionnez la case Pages en vis-à-vis. N’utilisez pas l’outil Page pour modifier la taille de la page, sauf si le
défilement lisse est activé.
• Pendant la conception, tenez compte du fait que la barre de défilement de 6 pixels rogne le bord droit de la mise en
page de l’article. Pensez à ajouter un repère ou un objet sur le gabarit pour marquer cette zone.
• Pour éviter d’obtenir des fichiers de folio volumineux, utilisez des fichiers JPEG et PNG correctement
dimensionnés pour les ressources interactives comme les séquences d’images, les images panoramiques et zoomées
et les panoramas. Pour les images non interactives ou de diaporamas, vous pouvez utiliser tout format, y compris
les formats PSD, TIFF, AI, PDF et JPEG. Lorsque vous créez un article ou une mise en page, les objets non interactifs
présents sur chacune des pages sont compressés et convertis dans un fichier d’image d’arrière-plan PNG, JPEG ou
PDF. De la même manière, les images de diaporamas et de boutons sont compressées en fichiers PNG.
Lors de la création d’images à utiliser dans des incrustations interactives, utilisez l’option Enregistrer pour le Web
et les périphériques dans Photoshop pour un résultat optimal.
• Si vous placez des fichiers PDF dans votre document InDesign, utilisez le format PDF non aplati version 1.4 ou
ultérieure pour éviter les lignes blanches inutiles.
• Dans InDesign CS6, vous pouvez créer des liens entre les blocs de texte de mises en forme différentes. Dans
InDesign CS5/CS5.5, vous pouvez utiliser la fonction InCopy pour partager du texte entre des documents en mode
portrait et des documents en mode paysage. Reportez-vous à la vidéo de Rufus Deuchler Utilisation d’affectations
InCopy pour DPS.
• Pour obtenir des couleurs d’une fidélité optimale, utilisez des images en couleur RVB et non CMJN ou LAB.
• Dans le cas d’un contenu non interactif, vous pouvez utiliser n’importe quel type d’image. Le contenu non interactif
est rééchantillonné en tant qu’image avec les mêmes dimensions que celles du folio. Pour de plus amples
informations sur la création de contenus interactifs, voir « Meilleures pratiques pour la création d’incrustations » à
la page 57.
Création de documents InDesign source (InDesign CS5 et CS5.5)
1 Dans InDesign CS5 ou InDesign CS5.5, choisissez la commande Fichier > Nouveau > Document.
UTILISATION DE DIGITAL PUBLISHING SUITE 42
Création de documents
Dernière mise à jour le 1/2/2013
2 (Facultatif) Dans la liste déroulante Mode, choisissez Web.
Le mode Web facilite le travail de mise en page pour les périphériques mobiles. Si vous avez déjà créé un document
avec le mode réglé sur Impression, vous ne pouvez pas le régler sur Web. Cependant, vous pouvez modifier
manuellement les paramètres.
3 Dans Format de page, indiquez les dimensions du lecteur de périphérique.
Les modèles d’iPad à résolution standard utilisent 1 024 x 768 pixels. L’iPad haute définition utilise 2 048 x 1536
pixels. Sur le périphérique mobile, une zone de 6 pixels est rognée sur le côté droit de la page. La zone de création
est de 1 018 x 768 pixels (ou 762 x 1 024 pixels) pour les modèles iPad SD.
Pour certains périphériques Android, une barre de menus couvre en partie la zone de création, soit 75 ou 64 pixels,
selon le modèle. Le contenu de l’afficheur Android n’est pas recadré ni agrandi. A la place, le contenu est réduit et
un masque letterbox lui est appliqué, le cas échéant. Pour les folios à double orientation, il est recommandé de créer
des rendus et des documents de 1 232 x 752 pixels (Xoom et Galaxy 10) ou 1 205 x 725 pixels(Nexus 7). Voir
« Création de documents pour divers périphériques » à la page 44.
Pour autoriser le défilement lisse, vous pouvez indiquer un format de page personnalisé (par exemple,
1 024 x 3 000). Voir la section « Défilement lisse » à la page 38.
4 Pour l’orientation, choisissez Portrait ou Paysage.
Création d’un document pour un lecteur de périphérique
A. Configurez Mode sur Web B. Indiquez le Format de page C. Sélectionnez Portrait ou Paysage
5 Dans le cas d’un article à double orientation, suivez la même procédure pour créer un second document.
Lorsque vous enregistrez les fichiers, ajoutez les suffixes _v et _h aux noms de fichiers si vous voulez importer les
articles. Ajoutez le suffixe _v pour le document vertical (portrait), par exemple, article_v.indd.
6 Créez vos documents.
Certaines fonctions d’interactivité InDesign ne sont pas prises en charge dans le flux de publication numérique
(pour plus de détails, voir la section « Fonctions d’interactivité prises en charge » à la page 56).
A
B
C
UTILISATION DE DIGITAL PUBLISHING SUITE 43
Création de documents
Dernière mise à jour le 1/2/2013
Création de documents InDesign source (InDesign CS6)
InDesign CS6 comporte plusieurs nouvelles fonctions qui simplifient le flux de travaux Digital Publishing Suite. Voir
les liens ci-dessous pour de plus amples informations sur ces fonctionnalités. L’équipe Digital Publishing Suite va
continuer à publier des versions qui tirent parti des fonctionnalités d’InDesign CS6. Gardez à l’esprit les points
suivants :
• Les folios que vous créez ou modifiez au moyen d’InDesign CS6 sont incompatibles avec les versions antérieures à
la version 20 du lecteur de contenu.
• Si vous créez des variantes de mises en page, vous pouvez créer des articles à partir de ces mises en page en utilisant
la fonction d’ajout d’article, mais pas d’importation d’article. Si vous importez fréquemment des groupes de
fichiers; continuez d’utiliser des documents différents pour chaque mise en page jusqu’à ce que la fonction Importer
un article prenne en charge les variantes de mises en page.
Instructions pour créer un document InDesign CS6 :
1 Dans InDesign CS6, choisissez Fichier > Nouveau > Document.
2 Dans la liste déroulante Mode, choisissez Publication numérique.
3 Pour le format de page, indiquez le périphérique cible tel qu’un iPad. Si nécessaire, modifiez les valeurs de largeur
et de hauteur.
Les modèles d’iPad SD utilisent 1 024 x 768 pixels. Le nouvel iPad HD utilise 2 048 x 1 536 pixels. Cependant, vous
pouvez utiliser des fichiers source de 1 024 x 768 dans un folio de 2 048 x 1 536.
Sur le périphérique mobile, une zone de 6 pixels est rognée sur le côté droit de la page. La zone de création fait
1 018 x 768 (ou 762 x 1 024) pixels pour les anciens modèles d’iPad.
Pour certains périphériques Android, une barre de menus couvre en partie la zone de création, soit 75 ou 64 pixels,
selon le modèle. Le contenu dans un afficheur Android n’est pas recadré ni agrandi. A la place, le contenu est réduit
et un masque letterbox lui est appliqué, le cas échéant. Pour les folios à double orientation, il est recommandé de
créer des rendus et des documents de 1 232 x 752 pixels (Xoom et Galaxy 10) ou 1 205 x 725 pixels(Nexus 7). Voir
« Création de documents pour divers périphériques » à la page 44.
Pour autoriser le défilement lisse, vous pouvez indiquer un format de page personnalisé (par exemple,
1 024 x 3 000). Voir la section « Défilement lisse » à la page 38.
4 Pour l’orientation, choisissez Portrait ou Paysage.
UTILISATION DE DIGITAL PUBLISHING SUITE 44
Création de documents
Dernière mise à jour le 1/2/2013
Création d’un document pour un lecteur de périphérique
A. Choisissez le mode Publication numérique B. Indiquez le Format de page C. Sélectionnez l’orientation Portrait ou Paysage
5 Laissez l’option Bloc de texte principal sélectionnée si vous voulez que le texte soit redistribué lorsque vous créez
des variantes de mise en page. Si votre article ne dispose pas d’un thread principal, désélectionnez cette option.
6 Concevez votre document.
Certaines fonctions d’interactivité InDesign ne sont pas prises en charge dans le flux de publication numérique
(pour plus de détails, voir la section « Fonctions d’interactivité prises en charge » à la page 56).
7 Dans le cas d’un article à double orientation, procédez de l’une des façons suivantes :
• Créez un second document avec une orientation différente. Lorsque vous enregistrez les fichiers, ajoutez les
suffixes _v et _h aux noms de fichiers si vous voulez importer les articles. Ajoutez le suffixe _v pour le document
vertical (portrait), par exemple, article_v.indd.
• Créez une variante de mise en page.
Voir aussi
« Création de documents pour divers périphériques » à la page 44
Création de documents pour divers périphériques
Vous pouvez créer des folios et des lecteurs personnalisés pour les plates-formes pour tenir compte de plusieurs tailles
de périphériques. Par exemple, la plate-forme Android comprend des périphériques de différentes dimensions,
notamment 1 280 x 800 et 1 024 x 600. Actuellement, la plate-forme iOS (Apple) comprend les modèles de 1 024 x 768
pixels et de 2 048 x 1 536 pixels pour l’iPad et les modèles de 480 x 320 pixels, de 960 x 640 pixels et de 1 136 x 640 pour
l’iPhone.
Les lecteurs Android et iOS ont des exigences différentes en matière d’affichage des folios. Un lecteur Android affiche
les folios quelle que soit leur taille. Les articles sont mis à l’échelle et s’affichent sous un masque letterbox au besoin. En
revanche, sur l’iPad, le lecteur de contenu affiche uniquement des folios à un rapport L/H de 4:3. Le lecteur de
l’iPhone v24 affiche uniquement les folios de rapport 3:2 (le contenu est actuellement au format letterbox sur les
périphériques iPhone 5 de 1 136 x 640 pixels).
A
B
C
UTILISATION DE DIGITAL PUBLISHING SUITE 45
Création de documents
Dernière mise à jour le 1/2/2013
Rendus
On appelle rendus les versions d’un même folio créées pour des périphériques différents. Si vous créez plusieurs rendus
de folio, le lecteur de contenu affiche uniquement le rendu qui correspond le mieux aux dimensions du périphérique.
Si le lecteur de contenu affiche un rendu qui ne correspond pas aux proportions du périphérique, il effectue une mise
à l’échelle proportionnelle du folio. Si nécessaire, le lecteur de contenu ajoute un masque letterbox (barres noires en
haut et en bas) ou pillarbox (barres noires sur les côtés).
Voir la section « Création de rendus de folio » à la page 117.
Rendus de folio
A. Folio 1 024 x 768 B. Folio 1 024 x 600 C. Folio 1 024 x 768 avec masque letterbox sur périphérique 1 024 x 600
Options de rendu
Vous pouvez utiliser un certain nombre de méthodes pour tenir compte des diverses dimensions de périphérique :
• Créez un format simple folio (tel que 1 024 x 768 pixels) pour l’iPad. Les mises en page sont réduites ou un masque
letterbox leur est appliqué si nécessaire sur les périphériques Android. Si vous souhaitez afficher votre contenu sur
l’iPhone, vous devez créer au moins une taille de folio supplémentaire, telle que 480 x 320.
• Créez des documents source distincts pour plusieurs périphériques cible. Créez un rendu de folio différent pour
chaque ensemble de documents source. Par exemple, pour créer des rendus de folio pour un lecteur de contenu
Android, vous pouvez créer des folios et des fichiers source en utilisant les tailles 1 024 x 768, 1 024 x 600,
1 232 x 752 et 1 205 x 725. Voir Creating DPS Folios for Android Devices (« Création de folios DPS pour les
périphériques Android »).
• Pour les iPads ou iPhones, créez des articles PDF multirendus qui affichent des ressources différentes selon qu’il
s’agit d’un appareil SD ou HD. Reportez-vous à « Création d’articles PDF multirendus pour les appareils iOS » à la
page 48.
• Utilisez les mêmes documents source, mais créez des rendus de folio différents pour plusieurs périphériques
mobiles cible. Par exemple, pour l’iPad, vous pouvez créer un ensemble de documents source 1 024 x 768, puis deux
folios basés sur ces documents. Lorsque les articles sont téléchargés, les fichiers source sont mis à l’échelle en
fonction de la taille du folio. La mise à l’échelle du contenu lorsque les articles sont créés offre de meilleures
performances que la mise à l’échelle du contenu lorsque le folio est affiché dans le lecteur (Voir « Création de
contenu pour les modèles d’iPads » à la page 46). Vous pouvez suivre la même approche pour créer des rendus
480 x 320 et 960 x 640 pour l’iPhone. (Voir la section « Création de contenu pour l’iPhone » à la page 47.)
A B C
UTILISATION DE DIGITAL PUBLISHING SUITE 46
Création de documents
Dernière mise à jour le 1/2/2013
Instructions de création de rendus multiples
Si vous voulez réutiliser le même document pour différents périphériques, tenez compte des points suivants :
• Le lecteur iPad affiche uniquement des folios de rapport 4:3, par exemple 1 024 x 768. L’iPhone affiche uniquement
des folios de rapport 3:2, par exemple 480 x 320. (Le rendu de l’iPhone 5, 1 136 x 640 n’est pas encore pris en
charge.)
• Sur les périphériques Android, le lecteur réduit le contenu mais ne l’agrandit pas. Par exemple, si vous affichez un
folio 960 x 640 sur un périphérique plus petit, le contenu sera réduit. Si vous affichez ce folio sur un périphérique
plus grand, le contenu est à la fois doté d’un masque letterbox (barres en haut et en bas) et d’un masque pillarbox
(barres sur les côtés), mais n’est pas mis à l’échelle.
• Si le lecteur doit réduire le contenu, l’exécution n’est pas aussi fluide que pour un contenu dont le rapport est de
1:1. Le texte et les images peuvent être flous.
• Lorsque vous ajoutez des articles à un folio, les proportions du paramètre de format de page du document doivent
correspondre à celles du folio (si vous ne sélectionnez pas le défilement lisse). Par exemple, vous pouvez ajouter des
documents InDesign 1 024 x 768 à un folio 2 048 x 1 536, car les proportions sont égales à 4:3. En revanche, il est
impossible d’ajouter des documents de 1 024 x 768 pixels à un folio de 1 024 x 600.
• Lors de la création pour un appareil qui utilise Android 3.0 ou une version ultérieure (Honeycomb), tenez compte
de la barre de navigation du système. Actuellement, la barre de navigation pour le Xoom et le Galaxy 10 est de
48 pixels, et de 64/75 pixels pour le Nexus 7. Par exemple, avec la barre de navigation, la taille réelle de la mise en
page est au format paysage sur le Xoom 1 280 x 752 et au format portrait sur le 800 x 1 232. Pour plus
d’informations sur l’adaptation aux différents périphériques, reportez-vous à la page Création de folios DPS pour
les périphériques Android.
• Les objets placés sur des calques masqués n’apparaissent pas dans le folio exporté. Vous pouvez créer des calques
séparés pour les différents périphériques mobiles et ajouter des objets qui apparaissent seulement quand ce calque
est activé. Avant de créer un article à partir d’un document, affichez et masquez les calques concernés, puis modifiez
le format de page selon vos besoins.
• Nous vous recommandons d’utiliser un ID d’application différent pour les plates-formes iOS et Android, sauf si
vos applications incluent des droits personnalisés.
Fonctions non prises en charge sur d’autres plates-formes
Une partie des fonctions disponibles sur l’iPad ne sont pas prises en charge par Android Viewer ni par d’autres
périphériques. Par exemple, les panoramas, les vidéos intégrées (pas plein écran) et les articles au format PDF ne sont
pas pris en charge sur la plate-forme Android. Pour le contenu HTML, assurez-vous qu’il fonctionne correctement
dans la plate-forme du navigateur et dans le folio Digital Publishing Suite. Voir les « Différences entre les lecteurs de
contenu iOS et Android » à la page 50 et la « Liste des fonctions prises en charge » à la page 32.
Création de contenu pour les modèles d’iPads
Le nouvel écran HD Retina de l’iPad est au format 2 048 x 1 536, alors que les modèles SD étaient au format
1 024 x 768, y compris le nouvel iPad Mini. Pour créer des folios pour ce périphérique, vous disposez des options
suivantes :
Créer des rendus 1 024 x 768 et 2 048 x 1 536 Lorsque vous créez des rendus de folio, les modèles d’iPad SD affichent
uniquement le rendu 1 024 x 1536 et l’iPad HD affiche uniquement le rendu 2 048 x 1536. Vous pouvez utiliser soit le
même ensemble de fichiers source (recommandé), soit deux ensembles de fichiers source différents pour créer les
rendus. Pour plus d’informations, voir ci-dessous les liens vers les articles de Bob Bringhurst et Colin Fleming.
UTILISATION DE DIGITAL PUBLISHING SUITE 47
Création de documents
Dernière mise à jour le 1/2/2013
Créer uniquement des folios 1 024 x 768 Vous pouvez utiliser des articles PDF multi-rendus afin de créer un seul folio
de 1 024 x 768 pixels qui rend parfaitement bien sur tous les modèles d’iPad. Par exemple, vous pouvez créer des
diaporamas et des blocs défilants dans lesquels le contenu est exporté dans le format vectoriel. Vous pouvez inclure
des ressources SD et HD dans un même folio. Reportez-vous à « Création d’articles PDF multirendus pour les
appareils iOS » à la page 48. Cette approche est particulièrement utile pour les lecteurs pour publication unique, qui
ne prennent pas en charge les rendus.
Créer uniquement des folios 2 048 x 1 536 Cette approche n’est pas recommandée. Dans les lecteurs pour publications
multiples, les folios 2 048 x 1 536 apparaissent uniquement sur l’iPad HD. Dans les lecteurs pour publication unique,
le contenu est considérablement pixellisé et des problèmes de performances peuvent se produire.
Remarques importantes :
• Si possible, évitez de publier des rendus séparément. Supposons que vous publiez un folio 1 024 × 768, puis, une
semaine plus tard, un rendu 2 048 × 1 536 de ce folio. Si les clients de l’iPad 3 ouvrent la bibliothèque avant que le
grand rendu ne soit disponible, ils n’auront accès qu’au rendu le plus petit. La seule façon pour eux d’obtenir le
grand rendu est de supprimer et de réinstaller le lecteur de contenu. (Cette restriction devrait être résolue dans une
prochaine version.)
• Si vous disposez d’une application Kiosque, ne déclenchez pas de notification Push tant que tous les rendus ne sont
pas publiés et disponibles.
• Lorsque vous utilisez DPS App Builder pour créer ou mettre à jour le lecteur de contenu, créez des icônes
supplémentaires, des écrans de démarrage et d’autres images qui prennent en charge l’iPad haute résolution. Par
exemple, vous pouvez indiquer des images d’écran de démarrage aux formats 1 024 × 768 et 2 048 × 1 536.
• L’iPad Mini au format 1 024 x 768 affiche le texte en plus petit que l’iPad du même format. Pour vos folios au format
1 024 x 768, utilisez au moins une police de taille 18 pour le corps du texte.
Voir aussi
« Création de rendus de folio » à la page 117
« Création de documents pour divers périphériques » à la page 44
Création de contenu pour l’iPhone
Les modèles d’iPhone 3GS, 4, et 4S, ainsi que l’iPod Touch (Generation 4) sont pris en charge pour DPS. L’iPhone 3G
n’est pas pris en charge. L’iPhone 3GS est doté de dimensions 480 x 320 pixels. Les dimensions des iPhones 4 et 4S, et
des modèles iPod Touch, sont de 960 x 640 pixels. L’iPhone 5 (1 136 x 640 pixels) affiche les folios iPhone existants
avec élargissement. Toutefois, les rendus 1 136 x 640 pour l’iPhone 5 ne sont pas encore pris en charge.
Vous pouvez créer un lecteur de contenu pour les deux appareils, iPhone et iPad. Vous ne pouvez pas créer un lecteur
de contenu pour publication unique pour l’iPhone ou un lecteur de contenu pour iPhone seul.
Les folios que vous créez pour l’iPad ne s’affichent pas dans le lecteur de contenu de l’iPhone. Le lecteur iPhone affiche
uniquement des folios de rapport 3:2, par exemple 960 x 640. Pour obtenir de meilleurs résultats, créez des rendus de
folio. Si vous avez configuré des rendus correctement et créé un lecteur de contenu personnalisé prenant en charge les
iPhone et les iPad, vous pouvez vérifier que vos clients ont le droit à la même publication que n’importe quel
périphérique iOS. Voir la section « Création de rendus de folio » à la page 117.
Les signets ne sont pas encore pris en charge dans l’iPhone. Les clients de l’édition Entreprise peuvent créer trois icônes
personnalisées dans la barre de navigation.
UTILISATION DE DIGITAL PUBLISHING SUITE 48
Création de documents
Dernière mise à jour le 1/2/2013
Pour créer des folios pour l’iPhone, vous disposez des options suivantes :
Créer des rendus 480 320 et 960 x 640 Lorsque vous créez des rendus de folio, l’iPhone 3GS affiche uniquement le
plus petit rendu tandis que les modèles iPhone 4/4S affichent le plus grand. Vous pouvez soit utiliser le même ensemble
de fichiers source (recommandé), soit deux ensembles de fichiers source différents pour créer les rendus. En outre,
créez des rendus 1 024 x 768 et 2 048 x 1 536 pour l’iPad.
Création d’un seul folio Vous pouvez utiliser un certain nombre de nouvelles fonctions de la version v23 pour créer
un folio unique de 480 x 320 pixels avec des articles PDF d’une belle apparence sur tous les modèles d’iPhone
compatibles. Par exemple, vous pouvez créer des diaporamas et des blocs défilants dans lesquels le contenu est exporté
dans le format vectoriel. Vous pouvez inclure des ressources SD et HD dans un même folio. Reportez-vous à « Création
d’articles PDF multirendus pour les appareils iOS » à la page 48. Si vous créez seulement un folio de 960 x 640, il
n’apparaît pas dans la bibliothèque de l’iPhone 3GS.
Remarques importantes :
• Pour éviter tout problème, publiez tous les rendus en même temps. Supposons que vous publiez un folio 480 × 320
puis, une semaine plus tard, un rendu 960 × 640 de ce folio. Si les clients de l’iPhone 4S ouvrent la bibliothèque
avant que le grand rendu ne soit disponible, ils n’auront accès qu’au rendu plus petit. La seule façon pour eux
d’obtenir le grand rendu est de supprimer et de réinstaller le lecteur de contenu. (Cette restriction devrait être
résolue dans une prochaine version.)
• Si vous disposez d’une application Kiosque, ne déclenchez pas de notification Push tant que tous les rendus ne sont
pas publiés et disponibles.
• Lorsque vous utilisez DPS App Builder pour créer ou mettre à jour le lecteur de contenu, créez des icônes
supplémentaires, des écrans de démarrage et d’autres images qui prennent en charge l’iPad haute résolution.
Voir aussi
« Création de rendus de folio » à la page 117
« Création de documents pour divers périphériques » à la page 44
Création d’articles PDF multirendus pour les appareils
iOS
Les éditeurs doivent faire face au problème de l’existence de modèles d’iPads et d’iPhones SD (définition standard) et
HD (haute définition). Une méthode consiste à créer un folio unique qui fonctionne sur tous les modèles. Toutefois,
certains contenus apparaissent pixelisés sur l’appareil HD et certaines incrustations fonctionnent différemment. Une
autre méthode consiste à créer des rendus différents pour les deux modèles SD et HD. Toutefois, les rendus sont
quelque peu difficiles à gérer pour certains éditeurs, et les applications à publication unique ne prennent pas en charge
les rendus.
Avec la version v23, vous pouvez créer un folio unique de 1 024 x 768 pixels (v23 ou version ultérieure) avec des
articles PDF d’une belle apparence et qui fonctionnent correctement sur les deux modèles iOS SD et HD. Lorsque vous
créez un article avec un format d’image PDF, les images PDF ont désormais une résolution plus élevée que dans les
versions précédentes (108 ppi au lieu de 72). En outre, vous pouvez effectuer les tâches suivantes pour créer un article
PDF multirendu :
Utiliser un format vectoriel pour les diaporamas et les blocs défilants Lorsque vous sélectionnez un objet Diaporama
ou Bloc défilant, le panneau Incrustations affiche l’option Format d’exportation des articles PDF qui permet de choisir
Pixellisation ou Vectorisation. Si vous sélectionnez la vectorisation, le contenu, notamment dans les diaporamas et les
UTILISATION DE DIGITAL PUBLISHING SUITE 49
Création de documents
Dernière mise à jour le 1/2/2013
blocs défilants, est plus net sur les appareils HD. Toutefois, le chargement du contenu vectorisé est plus long que le
contenu pixellisé. Pour optimiser les résultats, utilisez l’option Vectorisation pour le contenu à prédominance de texte
et l’option Pixellisation pour le contenu à prédominance d’images.
Utilisation du format vectoriel pour un diaporama
Utiliser des ressources interactives différentes pour les périphériques SD et HD Pour les panoramas, les séquences
d’images, les vidéos, les panoramiques, les zooms et les habillages des barres de contrôle audio, vous pouvez inclure deux
groupes de ressources différents. Pour ce faire, créez un sous-dossier « HD » dans le dossier contenant les ressources
SD. Dans le dossier HD, utilisez des images haute définition avec des noms identiques à ceux des ressources SD. Dans
le panneau Incrustations de folio, créez un lien d’accès au dossier contenant les ressources SD. Le lecteur de l’iPad SD
affiche un groupe de ressources, et celui de l’iPad HD affiche les ressources qui se trouvent dans le dossier HD.
Remarque : les dimensions des ressources HD de panoramique et de zoom, de séquence d’images et d’habillages audio
doivent être le double de celles des ressources SD. Si, par exemple, une séquence d’images comprend des images SD au
format 300 x 200, les fichiers sources en HD doivent être au format 600 x 400.
Pour utiliser des ressources différentes pour les modèles d’iPads HD et SD, créez un dossier HD contenant des images haute définition portant
les mêmes noms que les images basse résolution.
UTILISATION DE DIGITAL PUBLISHING SUITE 50
Création de documents
Dernière mise à jour le 1/2/2013
Pour les vidéos et les images panoramiques et zoom, vous pouvez créer un seul dossier HD contenant plusieurs fichiers
haute définition. Par exemple, si le dossier des liens contient polarbear.jpg et video01.mp4, vous pouvez créer un
dossier HD dans le dossier des liens avec les versions haute définition des fichiers polarbear.jpg et video01.mp4.
Notez que l’inclusion de deux groupes de ressources pour les types d’incrustations augmente la taille du folio.
Il n’est pas nécessaire de créer des versions SD et HD différentes pour chaque type d’incrustation. Par exemple, certains
éditeurs créent des fichiers source pour les incrustations de séquence d’images dont la résolution se situe entre les
résolutions SD et HD, telles que les images avec une valeur ppp effective de 108. Si une vidéo haute résolution est lue
sur un iPad SD, il n’est pas nécessaire de créer une vidéo basse définition supplémentaire.
Différences entre les lecteurs de contenu iOS et Android
Certaines fonctions disponibles dans le lecteur de contenu de l’iPad ne sont pas prises en charge par le lecteur Android.
• Les articles qui utilisent le format d’image PDF ne sont pas pris en charge.
• Les incrustations de panorama et les vidéos intégrées ne sont pas prises en charge.
• Les incrustations de contenu Web et les articles HTML ne sont pas entièrement pris en charge. Le contenu HTML
qui fonctionne dans Safari Mobile peut se comporter différemment dans d’autres navigateurs de périphériques.
Voir la section Création d’articles HTML pour les lecteurs de contenu sous Android.
• Les abonnements sont pris en charge pour iOS et Amazon Appstore, mais pas pour Google Play Store.
• Les lecteurs iOS affichent uniquement les folios de format 4:3 (iPad) ou 3:2 (iPhone). Le contenu du folio est
agrandi ou réduit à la taille de l’écran. Toutefois, les lecteurs Android affichent les folios quelle que soit leur taille.
Le contenu est réduit à l’échelle ou doté d’un masque letterbox selon les besoins, mais pas agrandi à l’échelle.
Pour obtenir une liste détaillée des fonctionnalités prises en charge, reportez-vous à la section « Liste des fonctions
prises en charge » à la page 32.
Pour plus d’informations sur la publication de folios pour les périphériques Android, voir Création de folios DPS pour
les périphériques Android.
Voir aussi
« Création de documents pour divers périphériques » à la page 44
Structure des dossiers pour les articles importés
Vous pouvez utiliser la commande Importer un article dans le panneau Folio Builder pour importer des articles depuis
le bureau. Pour importer correctement des fichiers, suivez les règles de structure et les conventions d’appellation des
fichiers pour déterminer les éléments inclus dans un folio.
• Pour importer simultanément plusieurs articles, créez un dossier de folio composé de plusieurs dossiers d’article.
Lorsque vous sélectionnez l’option Importer plusieurs articles, naviguez jusqu’au dossier de folio qui contient des
sous-dossiers d’article.
• Les dossiers d’article des folios à double orientation doivent contenir deux documents InDesign. Créez un
document avec le suffixe _h (par exemple, article1_h.indd) et un autre portant le suffixe _v (par exemple,
article1_v.indd).
UTILISATION DE DIGITAL PUBLISHING SUITE 51
Création de documents
Dernière mise à jour le 1/2/2013
• Les dossiers d’article des folios à orientation unique doivent contenir un seul fichier InDesign muni du suffixe _h
ou _v.
• Chaque dossier d’article peut contenir un fichier PNG pour les vignettes de table des matières. Si ce fichier est
manquant, l’image de la table des matières est générée automatiquement.
Création d’une structure de dossiers pour l’importation de plusieurs articles
Lorsque vous définissez la structure de dossiers, vous pouvez utiliser diverses méthodes pour organiser les fichiers de
l’article. Il n’est pas nécessaire que les fichiers vers lesquels vous créez un lien dans InDesign soient présents dans le
dossier d’article ; ils peuvent figurer dans n’importe quel dossier où InDesign les trouvera.
Optez pour des noms de fichiers et de dossiers simples. Evitez d’utiliser des caractères spéciaux.
Exemple de structure de fichiers
A. Dossier de folio B. Dossiers d’article
Si vous importez plusieurs articles dans un folio à orientation unique, veillez à ce que chaque dossier d’article
contienne un seul document. Les fichiers InDesign nécessitent quand même l’extension _h ou _v dans les folios à
orientation unique. Il est impossible d’associer des articles à orientation unique et à double orientation dans un même
folio.
B
A
UTILISATION DE DIGITAL PUBLISHING SUITE 52
Création de documents
Dernière mise à jour le 1/2/2013
Folio contenant uniquement des articles verticaux
Création d’un fichier annexe de métadonnées pour l’importation d’articles
Le fichier de métadonnées sidecar.xml constitue une autre méthode d’organisation des articles et d’application des
métadonnées lorsque vous importez les fichiers. Utilisez un éditeur de texte ou un éditeur XML pour créer un fichier
sidecar.xml doté de métadonnées pour chaque article. Enregistrez ce fichier dans le dossier racine du folio.
UTILISATION DE DIGITAL PUBLISHING SUITE 53
Création de documents
Dernière mise à jour le 1/2/2013
Les valeurs valides , et sont « true » et « false ». La valeur
détermine si l’option Glissement horizontal uniquement est activée, et la valeur
détermine si l’option Autoriser l’accès aux informations d’habilitation est activée pour un
article HTML.
Les valeurs acceptées sont « toujours », « portrait », « paysage » et « jamais ». La valeur par défaut
est « jamais », ce qui signifie que le défilement est magnétisé aux pages.
Vous pouvez utiliser les balises ou pour les métadonnées de signature.
Vous pouvez copier et coller le texte suivant dans un éditeur et le modifier :
Premier articletitresignaturerubriquedescriptionbalise1, balise2fauxvraijamaisfauxtruenom de la sectionDeuxième articlearticle 2signaturerubriquedescriptionbalise1, balise2fauxvraijamaisfauxtruenom de la section
UTILISATION DE DIGITAL PUBLISHING SUITE 54
Création de documents
Dernière mise à jour le 1/2/2013
Pour les entrées , spécifiez une chaîne de caractères, telle que « Mode de vie ». Les valeurs de la section ne
sont valides que pour les folios v23 et versions ultérieures.
L’ordre des sections détermine l’ordre des articles dans votre projet lors de sa création ou de sa mise à jour. Si
le nom de dossier d’un article n’apparaît pas dans le fichier annexe, il est déplacé sous les autres noms répertoriés.
L’ordre des éléments dans chaque balise n’est pas important.
Utilisation d’un fichier sidecar.xml pour importer plusieurs articles
1 Utilisez un éditeur de texte ou un éditeur XML pour créer un fichier sidecar.xml doté de métadonnées pour chaque
article.
2 Enregistrez ce fichier dans le dossier racine du folio.
3 Dans le panneau Folio Builder, sélectionnez un folio et choisissez Importer un article dans le menu du panneau.
Dans la boîte de dialogue Importer un article, sélectionnez Importer plusieurs articles, spécifiez le dossier contenant
le fichier sidecar.xml, puis cliquez sur OK.
Utilisation d’un fichier sidecar.xml pour mettre à jour les propriétés d’un article
Si vous souhaitez utiliser le fichier sidecar.xml pour mettre à jour les métadonnées de l’article ou modifier l’ordre des
articles, utilisez le panneau Folio Builder pour importer le fichier sidecar.xml
Cette méthode fonctionne uniquement pour les folios téléchargés vers le serveur et non pas pour les folios locaux.
1 Créez ou modifiez le fichier sidecar.xml du folio. Voir la section « Création d’un fichier annexe de métadonnées
pour l’importation d’articles » à la page 52.
2 Copiez ou déplacez le fichier sidecar.xml vers son propre dossier.
3 Dans le panneau Folio Builder, ouvrez le folio à modifier et choisissez Importer un article dans le menu du panneau.
4 Sélectionnez Importer plusieurs articles, indiquez le nom du dossier contenant le fichier sidecar.xml, puis cliquez
sur OK.
55
Dernière mise à jour le 1/2/2013
Chapitre 3 : Interactivité
Présentation des incrustations interactives
Utilisez le panneau Folio Overlays pour créer et modifier des objets interactifs. Pour ouvrir le panneau Folio Overlays,
choisissez la commande Fenêtre > Extensions > Folio Overlays (InDesign CS5/CS5.5) ou choisissez la commande
Fenêtre > Folio Overlays (InDesign CS6).
Pourquoi les objets interactifs sont-ils appelés incrustations ? Lorsque vous créez un folio, tous les éléments non
interactifs d’une page sont compressés en une seule image (PDF, JPG ou PNG) en fonction des paramètres de format
d’image de l’article. Si vous masquez ou recouvrez des incrustations interactives que vous importez dans le document,
elles apparaissent par-dessus la mise en page dans le folio. Seule une incrustation peut masquer une autre incrustation.
L’objet interactif apparaît par-dessus les éléments non interactifs.
Méthodes de création d’incrustations
Il existe plusieurs moyens permettant de créer les différentes incrustations.
• Pour les diaporamas, les hyperliens, l’audio, la vidéo, les panoramiques, les zooms sur les images et le contenu
défilant, créez ou importez les objets dans les documents InDesign, puis utilisez le panneau Folios Overlays pour
modifier les paramètres.
• Pour les séquences d’images, les panoramas et les incrustations de contenu Web, tracez un cadre rectangulaire
comme espace réservé ou importez une image à utiliser comme affiche. Ensuite, sélectionnez le cadre et utilisez le
panneau Folio Overlays pour indiquer la source et modifier les paramètres.
Lorsque vous sélectionnez un objet à états multiples, les paramètres du diaporama apparaissent dans le panneau Folio Overlays.
UTILISATION DE DIGITAL PUBLISHING SUITE 56
Interactivité
Dernière mise à jour le 1/2/2013
Maintien de la continuité des objets interactifs
Lorsque vous utilisez la même incrustation dans les mises en page horizontales et verticales, vous souhaitez que son
état soit préservé quelle que soit l’orientation du périphérique mobile. Par exemple, si la troisième diapositive du
diaporama est affichée, elle doit rester visible lorsque l’utilisateur fait pivoter le périphérique.
Pour la plupart des incrustations, la continuité est maintenue automatiquement. Utilisez les mêmes fichiers sources et
les mêmes paramètres d’incrustation. Pour les diaporamas, utilisez le même nom d’objet dans le panneau Etats d’objet
pour les objets à états multiples dans les mises en page horizontales et verticales. Assurez-vous également que les noms
d’état individuels sont identiques sur les deux mises en page.
Voir aussi
Dépannage des incrustations interactives
Fonctions d’interactivité prises en charge
InDesign inclut de nombreuses fonctions d’interactivité pour l’exportation aux formats SWF et PDF. Certaines
fonctions, mais pas la totalité, sont prises en charge dans le flux de publication numérique.
Fonctions d’interactivité prises en charge
Objets à états multiples Les objets à états multiples permettent de créer des diaporamas.
Hyperliens Créez des hyperliens de type URL, courrier électronique et redirection.
Boutons Seul l’événement Au relâchement est pris en charge. Vous pouvez utiliser plusieurs actions de bouton. Les
actions de bouton sont lues l’une après l’autre et non pas simultanément.
Les actions d’hyperlien Atteindre la première page, Atteindre la dernière page, Atteindre l’URL, Son, Vidéo et
Atteindre la page sont prises en charge. Les actions de diaporama Atteindre l’état, Atteindre l’état précédent et
Atteindre l’état suivant sont prises en charge.
Audio Lecture des fichiers .mp3 importés. Pour le moment, il n’est pas possible de diffuser les fichiers audio, ni de les
lire en boucle.
Vidéo Lance la lecture des fichiers vidéo pris en charge (mp4 avec codage h.264). A ce stade, vous ne pouvez pas lire
la vidéo en boucle. Pour diffuser de la vidéo, utilisez une incrustation de contenu Web ou un article HTML.
Incrustations interactives supplémentaires Vous pouvez également créer des incrustations de contenu Web, des
séquences d’images, des panoramiques et des zooms sur les images, ainsi que des panoramas et des cadres défilants.
Fonctions d’interactivité non prises en charge
Animation Les objets animés sont aplatis lorsque l’article est créé. Vous pouvez résoudre ce problème en exportant un
document InDesign animé dans le format FLA et en utilisant le plug-in CreateJS dans Flash Professional CS6 pour
exporter un fichier HTML5. Vous pouvez alors utiliser ce fichier HTML5 comme incrustation de contenu Web. La
plupart des éditeurs utilisent Adobe Edge pour créer une animation.
Hyperliens particuliers Les hyperliens Ancre de texte et Destination partagée ne sont pas pris en charge.
Actions de bouton particulières Les actions Accéder à la cible, Atteindre la page suivante, Atteindre la page précédente
et Afficher/Masquer les boutons ne sont pas prises en charge. Les événements Au clic et Au survol ne sont pas pris en
charge.
Autres fonctions non prises en charge Les signets, les références croisées et les transitions de page ne sont pas pris en
charge.
UTILISATION DE DIGITAL PUBLISHING SUITE 57
Interactivité
Dernière mise à jour le 1/2/2013
Meilleures pratiques pour la création d’incrustations
Fichiers source
• Lors de la création des fichiers source pour les incrustations, il est utile de comprendre quelles incrustations sont
rééchantillonnées (compressées), et lesquelles sont simplement ignorées lors du téléchargement. Les fichiers source
des diaporamas, des blocs défilants et des boutons sont rééchantillonnés en tant qu’images PNG. Vous pouvez
utiliser n’importe quel format d’image pour ces incrustations.
• Les fichiers source des panoramas, des séquences d’images, des panoramiques et des zooms sur les images et des
habillages audio ne sont pas rééchantillonnés lors du téléchargement ; ils sont simplement ignorés. Utilisez le
format d’image JPEG ou PNG pour ces incrustations. Pour réduire la taille d’un fichier, utilisez des images JPEG
en compression moyenne (de 50 à 80 %) pour les fichiers source. Utilisez des images PNG uniquement lorsque les
images comportent de la transparence. La compression des images en incrustation et de la vidéo peut diminuer
considérablement la taille du folio.
• Si les fichiers de l’article source sont de la même taille que celle du folio, créez des fichiers source pour les
panoramas, les séquences d’images, les vidéos en ligne, les panoramiques, les zooms sur les images et les contrôleurs
audio en utilisant les dimensions exactes en pixels et 72 ppp. Si la taille des fichiers source est différente de celle du
folio (articles de 1 024 x 768 utilisés dans un folio 2 048 x 1 536, par exemple), créez des articles PDF
multidéfinitions qui ciblent les périphériques iOS SD et HD. Reportez-vous à « Création d’articles PDF
multirendus pour les appareils iOS » à la page 48.
Dans Photoshop et Illustrator, la commande Fichier > Enregistrer pour le Web et les périphériques est
particulièrement utile pour enregistrer des fichiers d’image dans des dimensions spécifiques exprimées en pixels.
• Si vous créez un grand nombre d’incrustations à forte consommation de mémoire, le préchargement des
incrustations peut ralentir le lecteur. Si possible, répartissez les incrustations dans la conception pour éviter de
précharger plusieurs incrustations simultanément. Par exemple, si vous disposez de deux articles comportant des
incrustations imbriquées dans des diaporamas, placez un article publicitaire ou de base entre les deux articles.
• Dans la mesure du possible, attribuez des noms réels à vos incrustations pour faciliter l’interprétation des données
d’analyses. Par exemple, utilisez « Lien Twitter » au lieu de « Bouton 4 » et « Diaporama cricket » au lieu de « Objet
multi-états 2 ».
• Si vous placez des fichiers PDF dans votre état du diaporama ou le contenu du bloc défilant, utilisez le format PDF
non aplati version 1.4 ou ultérieure pour éviter les lignes blanches.
Configuration
• Pour les panoramas, les séquences d’images, les habillages audio et les incrustations de contenu Web locales, créez
un dossier distinct afin d’y stocker les fichiers d’incrustation. Utilisez le panneau Folio Overlays pour créer un lien
vers ce dossier. Si vous souhaitez créer un folio qui utilise différentes ressources pour les périphériques iOS SD et
HD, créez un sous-dossier HD avec des fichiers qui utilisent les mêmes noms que les ressources SD. Lien d’accès
au dossier contenant les ressources SD.
• Evitez d’exécuter des objets interactifs dans la zone du fond perdu. Conservez les objets interactifs dans la zone du
format de page.
Conseils et directives
• Lorsque vous travaillez avec des incrustations, choisissez Fenêtre > Espace de travail > Objet interactif
(InDesign CS5/CS5.5) ou Fenêtre > Espace de travail > Publication numérique (InDesign CS6) afin de rendre les
panneaux interactifs plus accessibles.
• Optez pour une approche cohérente afin que les utilisateurs identifient aisément les objets interactifs. Par exemple,
vous pouvez créer des images d’affiches qui utilisent des icônes correspondant aux différents types d’incrustation.
UTILISATION DE DIGITAL PUBLISHING SUITE 58
Interactivité
Dernière mise à jour le 1/2/2013
• Lorsque vous importez les fichiers d’incrustation dans InDesign, la taille du cadre détermine l’endroit que vous
touchez pour activer le contenu interactif.
• Vous pouvez incorporer des incrustations dans des cadres défilants et des diaporamas. Vous ne pouvez incorporer
des diaporamas dans des diaporamas qu’en utilisant un tour avec les cadres ancrés. Voir l’application gratuite de
conseils Digital Publishing Suite Tips pour plus de renseignements.
• Dans le contenu interactif, seuls les effets de transparence de base, tels que l’opacité et le produit sont pris en charge.
Les modes de fusion ne sont pas pris en charge.
• Dans certains cas, vous voulez qu’une image apparaisse au-dessus de l’incrustation, par exemple dans le cas d’un
masque pour une vidéo. Pour ce faire, créez une incrustation factice. Pour obtenir des exemples sur cette astuce,
reportez-vous aux exemples dans l’application DPS Tips gratuite de Bob Bringhurst ou à Creating Super Overlays
by Johannes Henseler.
Voir aussi
Dépannage des incrustations interactives
Incrustations d’hyperliens
Pour créer des liens d’accès à des sites Web, à des articles et à d’autres ressources, vous pouvez utiliser le panneau
Hyperliens ou le panneau Boutons. Certains types d’hyperlien et d’actions de bouton ne sont pas pris en charge dans
les folios.
Les incrustations d’hyperliens sont prises en charge dans des cadres et des diaporamas défilants, mais pas dans d’autres
incrustations.
Voir aussi
« Fonctions d’interactivité prises en charge » à la page 56
« Meilleures pratiques pour la création d’incrustations » à la page 57
Création de liens à partir du panneau Boutons
Le panneau Boutons permet de créer des liens vers la première ou la dernière page d’un document ou vers un autre
article.
1 Dans InDesign, créez l’objet à utiliser comme bouton.
Par exemple, si vous souhaitez que le bouton permette d’accéder à un site Web, créez un bloc de texte ou importez
une image.
2 Ouvrez le panneau Boutons (Fenêtre > Objet interactif > Boutons), sélectionnez l’objet, puis cliquez sur l’icône
Convertir l’objet en bouton.
3 Pour Evénement, choisissez Au relâchement.
En effet, Au relâchement est le seul événement de bouton pris en charge.
4 Cliquez sur le signe plus en regard d’Action et sélectionnez une action prise en charge.
UTILISATION DE DIGITAL PUBLISHING SUITE 59
Interactivité
Dernière mise à jour le 1/2/2013
Actions de bouton prises en charge
A. Actions prises en charge pour les boutons d’hyperlien B. Actions prises en charge pour les boutons de diaporama
Les actions d’hyperlien prises en charge comprennent Atteindre la première page, Atteindre la dernière page,
Atteindre la page suivante, Atteindre la page précédente, Atteindre l’URL, Son, Vidéo et Atteindre la page. Les
actions Atteindre l’état suivant, Atteindre l’état précédent et Atteindre l’état sont prises en charge pour les
diaporamas.
N’utilisez pas l’action Accéder à la cible pour atteindre un autre article, mais l’action Atteindre l’URL avec un
format de redirection « navto ».
5 Ajoutez d’autres actions à votre convenance.
Les actions se déroulent de manière séquentielle. Par exemple, si la première action lance une vidéo et que la
deuxième ouvre une diapositive différente, la vidéo est lancée, puis la diapositive s’affiche.
Création de liens à partir du panneau Hyperliens
Dans InDesign, vous pouvez utiliser le panneau Hyperliens pour ajouter des hyperliens. Les hyperliens sont
particulièrement utiles pour le texte. Si vous souhaitez utiliser un bloc comme hyperlien, utilisez le panneau Boutons
au lieu du panneau Hyperliens. Les boutons sont plus polyvalents et plus fiables que les hyperliens.
1 Sélectionnez le bloc ou le texte que vous souhaitez utiliser comme hyperlien.
2 Ouvrez le panneau Hyperliens (Fenêtre > Objet interactif > Hyperliens).
3 Dans le menu du panneau Hyperliens, choisissez Nouvel hyperlien.
4 Désélectionnez Destination partagée.
L’option Destination partagée permet de nommer et de réutiliser les hyperliens, mais il est déconseillé de l’utiliser
dans le flux de travaux DPS.
5 Dans le menu Lien vers, indiquez l’une des options suivantes, puis cliquez sur OK :
URL Un hyperlien d’URL affiche une page Web (http://), une application App Store (itms://), une application
Amazon Appstore (amzn://) ou un article différent (navto://).
A
A
B
A
Accéder à la cible
Atteindre la prèmiere page
Atteindre la dernière page
Atteindre la page suivante
Atteindre la page précédente
Atteindre l’URL
Afficher/Masquer les boutons
Son
Vidéo
HTML5 et SWF liquides uniquement
Animation
Atteindre la page
Atteindre l’état
Atteindre l’état suivante
Atteindre l’état précédente
PDF seulement
Effacer le formulaire
Atteindre la vue suivante
Atteindre la vue précédente
Ouvrir la fichier
Imprimer le formulaire
Soumettre le formulaire
Afficher le zoom
UTILISATION DE DIGITAL PUBLISHING SUITE 60
Interactivité
Dernière mise à jour le 1/2/2013
Exemple : http://www.adobe.com/fr
lorsque vous créez des liens vers des sites Web, tapez l’URL complète sans oublier « http:// ».
Remarque : lorsque vous créez un lien vers une URL iTunes, désélectionnez l’option Ouvrir dans le folio dans le
panneau Folio Overlays, faute de quoi un message d’erreur « Impossible d’ouvrir la page » s’affiche lorsque l’hyperlien
est sélectionné. De même, si vous utilisez le format tms:// ou amzn:// pour créer un lien d’accès à une application de
boutique, désactivez l’option Ouvrir dans le folio.
Un hyperlien navto:// permet d’accéder à un autre article ou à une autre page de cet article. Saisissez navto://, suivi
du nom de l’article tel qu’il apparaît dans le panneau Folio Builder. Utilisez la valeur Nom de l’article et non la
valeur Titre de l’article. Si vous souhaitez inclure un numéro de page, ajoutez # suivi d’un nombre. Cependant,
gardez à l’esprit que la première page correspond à 0 ; ainsi #2 correspond à la page 3.
Exemple : navto://newsarticle
Exemple : navto://newsarticle#2 (accède à la page 3)
Courrier électronique Un hyperlien Courrier électronique permet d’ouvrir l’application de messagerie et de
renseigner le champ A.
Page Un hyperlien Page permet d’accéder à une autre page de l’article. N’utilisez pas cette option pour passer à un
autre article.
L’hyperlien Ancre de texte n’est pas pris en charge.
6 Pour modifier les paramètres d’hyperlien, sélectionnez les objets d’hyperlien, puis spécifiez ces paramètres dans le
panneau Folio Overlays :
Ouvrir dans le folio Présente le contenu dans un affichage Web, dans le lecteur de contenu. Désélectionnez cette
option lorsque vous créez un lien d’accès à des URL iTunes, itms:// et amzn://.
Ouvrir dans le navigateur du périphérique Présente le contenu à l’extérieur du lecteur dans le navigateur du
périphérique, par exemple Safari sur l’iPad. Sélectionnez Demander d’abord si vous souhaitez qu’une invite
apparaisse lorsque l’utilisateur appuie sur le lien. Cette option est désactivée si l’option Ouvrir dans le folio est
sélectionnée.
Remarque : les paramètres du panneau Folio Overlays ne sont pas disponibles pour les hyperliens de texte. Il n’est pas
possible de modifier les paramètres des hyperliens de texte ; par défaut, ils sont définis sur Ouvrir dans le folio.
Pour plus de détails sur la création d’hyperliens, voir Création d’hyperliens dans l’aide InDesign CS5/CS5.5.
Création de liens vers d’autres articles
Les articles de folio sont stockés sur un serveur. Ainsi, tout lien qui contient un chemin vers un fichier InDesign est
rompu lors de l’aperçu. Utilisez le format « navto » pour créer un lien vers d’autres articles.
Lorsque vous créez un bouton ou un hyperlien, vous pouvez remplacer « http:// » par « navto:// » dans le champ URL.
Indiquez ensuite le nom de l’article cible tel qu’il apparaît dans le panneau Folio Builder. Utilisez la valeur Nom de
l’article et non la valeur Titre de l’article. Les formats « navto » valides sont navto://[nomarticle] et
navto://[nomarticle]#n. Ajoutez #n pour spécifier un numéro de page. La première page d’un document
correspond à 0 ; ainsi #2 correspond à la page 3.
UTILISATION DE DIGITAL PUBLISHING SUITE 61
Interactivité
Dernière mise à jour le 1/2/2013
Accès à la page 3 d’un autre article
Exemples du format Navto :
navto://biking
navto://biking#2 (passe à la page 3 de l’article sur le cyclisme)
Remarque : si vous avez utilisé une version antérieure des outils pour créer un lien « navto » utilisant un nom de dossier
ou un nom d’article différent du nom de l’article cible, ce lien sera rompu. Pour réparer ce lien, vous pouvez renommer
l’article (et non le titre) ou modifier le lien « navto » pour qu’il mène au nom de l’article tel qu’il apparaît dans le panneau
Folio Creator.
Création d’hyperliens de redirection pour les articles HTML
Lorsque vous créez un hyperlien ou un bouton basé sur une URL, vous pouvez utiliser l’URL « navto:// » pour accéder
à un autre article. Le format « navto » est particulièrement utile pour accéder aux articles HTML. Vous ne pouvez pas
utiliser d’hyperliens « navto » dans des incrustations de contenu Web.
Accéder à un article HTML Saisissez navto://, suivi du nom de l’article HTML (et non du titre de l’article).
Exemple : navto://newsarticle
Accéder à une ancre dans un article HTML Il n’est pas possible d’accéder à une page spécifique dans un article HTML ;
en revanche, vous pouvez accéder à une ancre en indiquant navto://#.
Exemple : navto://newsarticle#section4
Remarque : pour définir une ancre dans un fichier HTML, ouvrez ce fichier dans un éditeur de texte. Accédez au texte
que vous voulez utiliser comme ancre et enserrez le texte avec une balise d’ancrage ; par exemple « Ceci
est la section 4 de l’article ».
Accéder à un article InDesign à partir d’un article HTML Utilisez le format « navto » pour créer un hyperlien entre un
article HTML et un article InDesign. Exemple :
Voir les actualités
UTILISATION DE DIGITAL PUBLISHING SUITE 62
Interactivité
Dernière mise à jour le 1/2/2013
Vous pouvez également accéder à des pages d’un article InDesign en adjoignant le numéro de page au nom du
document. La première page du document porte le numéro 0, la deuxième page porte le numéro 1, et ainsi de suite.
Exemple :
Aller à la page 4 de l'article sur le cyclisme
Passer d’un article HTML à un autre Le format « navto » permet de passer d’un article HTML à un autre à l’aide du
nom de dossier. Exemple :
Voir les actualités
Création de liens de type atteindre (« goto ») vers les icônes personnalisées
Si vous avez un compte DPS Enterprise, vous pouvez utiliser le format goto pour créer des liens à partir d’articles vers
le contenu HTML associé à des icônes personnalisées. Par exemple, vous pouvez utiliser DPS App Builder pour
spécifier les icônes personnalisées pour « Magasin », « Aide » et « Termes ». Ces boutons s’affichent dans la
bibliothèque du lecteur. Pour créer un bouton dans un article qui ouvre le contenu HTML pour l’une de ces icônes
personnalisées, utilisez le format suivant :
goto: //ApplicationViewState/[label]
Par exemple, le bouton goto://ApplicationViewState/Store permet d’ouvrir la banque de données HTML,
comme si vous touchiez l’icône personnalisée de stockage dans la bibliothèque.
Utilisez DPS App Builder pour créer des icônes personnalisées et spécifier des étiquettes. Voir « Barre d’outils de
navigation (édition Enterprise uniquement) » à la page 138.
Lien d’accès aux ressources dans le dossier des ressources HTML
Vous pouvez créer un hyperlien ou un bouton qui affiche un fichier HTML ou PDF local dans le navigateur intégré du
lecteur.
1 Ajoutez un dossier contenant le fichier HTML local au dossier HTMLResources.
Assurez-vous que le dossier HTMLResources est présent dans le folio. (voir la section « Importation des ressources
HTML » à la page 113).
2 Créez un lien pour afficher le fichier HTML dans le navigateur in-app :
Document source InDesign Dans le champ URL d’un hyperlien ou d’un bouton, entrez le chemin d’accès sans
préfixe (http://, navto:// ou autre). Exemple :
HTMLResources/Cartoons/train1.html
Article HTML A partir d’un article HTML, indiquez l’emplacement. Exemple :
Voir la galerie de bandes dessinées sur les
trains
Incrustation de contenu Web Les incrustations de contenu Web sont imbriquées deux niveaux plus bas par rapport
à un article HTML. Exemple :
Voir la galerie de bandes dessinées sur les
trains
Remarque : pour optimiser les résultats, évitez d’utiliser des espaces et des caractères spéciaux dans les dossiers et les
fichiers HTML. Si vous insérez un espace dans un nom de dossier ou de fichier, utilisez le code HTML correspondant
au caractère d’espacement. Par exemple, utilisez « Dessin animé%20fichiers » pour le dossier appelé « Fichiers dessin
animé ».
UTILISATION DE DIGITAL PUBLISHING SUITE 63
Interactivité
Dernière mise à jour le 1/2/2013
Création de liens vers des applications et des services externes
Vous pouvez créer un lien permettant d’envoyer un message électronique (mailto:), un message texte (SMS), ou
d’appeler un numéro (tel:) depuis un article iPhone. Vous pouvez également créer des liens qui ouvrent l’application
YouTube, une chanson iTunes ou un album. Pour en savoir plus sur les formats adéquats à utiliser pour l’iPad, voir
Référence des schémas des URL Apple.
Pour plus d’informations sur la création de liens de messagerie avancés (mailto:), reportez-vous à l’article de
James Lockman Envoi de courriers électroniques et de pièces jointes à partir de publications DPS.
Si vous définissez un schéma d’URL facultatif lorsque vous utilisez DPS App Builder pour créer une application, vous
pouvez créer un lien vers l’application depuis une autre application ou lors de son affichage depuis une page Web dans
le navigateur Safari mobile. Voir « Panneau Détails de l’application » à la page 124.
Remarque : chaque fois que vous créez un lien vers une application ou un service externe, sélectionnez le bouton et
choisissez l’option Ouvrir dans le navigateur du périphérique du panneau Incrustations.
Contrôle de l’aspect des hyperliens et des diaporamas dans le lecteur de
contenu
Lorsque les utilisateurs parcourent un folio sur le périphérique mobile, les pages horizontales et verticales affichées
sont des images pixellisées des pages InDesign. Les vignettes de pages qui s’affichent lorsque l’utilisateur tape sur le
bouton Parcourir ou utilise la barre de défilement au bas du périphérique mobile sont également des images pixellisées.
Vous pouvez contrôler l’aspect des hyperliens et des diaporamas dans ces images pixellisées.
Pour contrôler l’aspect des hyperliens et des diaporamas, créez un fichier texte de configuration et enregistrez-le dans
le dossier de l’application InDesign. Ce fichier, appelé NativeOverlays.config, vous permet d’inclure ou de supprimer
des hyperliens et des diaporamas natifs.
1 Ouvrez un éditeur de texte.
2 Ajoutez une ou plusieurs lignes parmi les suivantes.
(« Asset » renvoie aux pages principales, « Thumbnails » fait référence aux images de l’icône Parcourir, et
« Scrubbers » renvoie aux images qui s’affichent lorsque l’utilisateur fait glisser la barre de défilement.)
SuppressOverlayTypesForAssets:
SuppressOverlayTypesForThumbnails:
SuppressOverlayTypesForScrubbers:
ResetHyperlinksToTopState:
ResetHyperlinksToTopState signifie qu’un bouton avec une action Atteindre l’URL affiche l’état [Normal] au lieu
de l’état [Clic].
ResetSlideshowsToTopState: < ThumbnailPass, ScrubberPass, AssetPass, All>
ResetSlideshowsToTopState réinitialise l’objet à états multiples sur l’état le plus élevé dans le document InDesign.
Si vous supprimez des incrustations, les paramètres de réinitialisation ne s’appliquent pas.
Si ResetHyperlinksToTopState et ResetSlideshowsToTopState ne sont pas spécifiés, les états supérieurs sont
rétablis par défaut pour les diaporamas et les hyperliens.
Exemple :
UTILISATION DE DIGITAL PUBLISHING SUITE 64
Interactivité
Dernière mise à jour le 1/2/2013
SuppressOverlayTypesForAssets: slideshow
SuppressOverlayTypesForThumbnails: hyperlink
SuppressOverlayTypesForScrubbers: slideshow, -hyperlink
ResetHyperlinksToTopState: All
ResetSlideshowsToTopState: ThumbnailPass, ScrubberPass
Si vous tapez le signe moins devant le type d’incrustation, celui-ci n’est pas supprimé.
3 Enregistrez le fichier sous le nom NativeOverlays.config.
4 Déplacez le fichier NativeOverlays.config dans le dossier d’application InDesign en utilisant l’une des méthodes
suivantes :
Windows Déplacez le fichier de configuration au même niveau que le fichier InDesign.exe.
Mac OS Sélectionnez l’icône d’application Adobe InDesign CS5, effectuez un clic droit et choisissez Afficher le
contenu du progiciel. Déplacez le fichier de configuration dans le dossier Content > MacOS.
Incrustations de diaporamas
Le panneau Etats d’objet permet de créer un ensemble d’images pour un diaporama. Chaque état, ou diapositive, peut
contenir plusieurs objets. Par exemple, si vous souhaitez qu’un bloc de texte différent s’affiche avec chaque image,
combinez l’image et le bloc de texte sur le même état.
Les états de diaporama prennent en charge toutes les incrustations interactives sauf pour les diaporamas.
Création d’un diaporama à l’aide du panneau Etats d’objet
Les images du diaporama sont converties en images PNG dans le folio.
De plus, il n’est pas encore possible de lire un diaporama en mode plein écran sans utiliser le format HTML.
1 Dans InDesign, créez un diaporama depuis le panneau Etats d’objet (Fenêtre > Objet interactif > Etats d’objet).
(Pour plus de détails, voir la section « Création d’un diaporama d’objets à états multiples dans l’aide InDesign.)
La création d’un objet à états multiples consiste à insérer des images, à les aligner dans un article, puis à convertir
l’article en un objet à états multiples.
2 Dans le panneau Etats d’objet, indiquez un nom d’objet.
UTILISATION DE DIGITAL PUBLISHING SUITE 65
Interactivité
Dernière mise à jour le 1/2/2013
Lorsque vos objets à états multiples possèdent le même nom d’objet et les mêmes noms d’état individuels dans les
documents horizontaux et verticaux, la continuité du diaporama est assurée quelle que soit l’orientation de l’iPad.
En outre, l’utilisation d’un nom descriptif facilite la compréhension du rapport d’analyse.
Remarque : pour éviter les erreurs, ne faites figurer aucun signe de ponctuation ou signe étendu dans le nom d’objet
ou le nom d’état de l’objet.
3 Créez des boutons de navigation permettant de parcourir les états de l’objet à états multiples.
Utilisez l’action Atteindre l’état pour vous référer à une diapositive spécifique. Pour naviguer dans les diapositives,
utilisez les actions Atteindre l’état suivant et Atteindre l’état précédent.
Le panneau Boutons exemples d’InDesign comprend une bibliothèque de boutons de navigation. Si vous utilisez
ces boutons exemples, supprimez l’action existante et remplacez-la par l’action Atteindre l’état suivant ou
Atteindre l’état précédent.
4 Si vous voulez que l’aspect du bouton change lorsque l’utilisateur le touche, cliquez sur [Clic] sous Aspect, puis
modifiez son aspect.
Si un bouton utilise l’action Atteindre l’état, l’état [Clic] s’affiche lorsque l’état indiqué est sélectionné. Par exemple,
le bouton d’état [Normal] peut être associé à un cadre noir et le bouton d’état [Clic] à un cadre rouge. Le cadre rouge
s’affiche lorsque le bouton est actionné sur l’iPad. (L’état [Survol] n’est pas pris en charge sur les périphériques
mobiles.)
5 Pour modifier les paramètres du diaporama, sélectionnez l’objet à états multiples, puis spécifiez les paramètres
suivants dans le panneau Folio Overlays :
Lecture auto Lorsque ce paramètre est sélectionné, la lecture du diaporama commence lorsque l’utilisateur tourne
la page.
Effectuer une pression pour passer en mode Lecture/Pause Lorsqu’il est sélectionné, ce paramètre permet aux
utilisateurs de lire le diaporama à exécution automatique ou de le mettre en pause en effectuant une pression. Deux
pressions consécutives entraînent la réinitialisation du diaporama.
Délai Si le paramètre Lecture auto est sélectionné, vous pouvez indiquer le temps qui s’écoule entre le chargement
de la page et le lancement du diaporama. Définissez une valeur comprise entre 0 et 60 secondes.
Intervalle Si le paramètre Lecture auto ou Effectuer une pression pour passer en mode Lecture/Pause est
sélectionné, la valeur Intervalle détermine la durée d’affichage de chaque diapositive.
Lecture _ fois Si le paramètre Lecture auto ou Effectuer une pression pour passer en mode Lecture/Pause est
sélectionné, vous pouvez indiquer le nombre de lectures successives du diaporama. Cette option est estompée si En
boucle est sélectionné.
En boucle Si le paramètre Lecture auto ou Effectuer une pression pour passer en mode Lecture/Pause est
sélectionné, choisissez En boucle pour lire le diaporama en continu jusqu’à ce que l’utilisateur touche deux fois le
diaporama ou tourne la page.
Arrêter à la dernière image Si le paramètre Lecture auto ou Effectuer une pression pour passer en mode
Lecture/Pause est sélectionné, choisissez Arrêter à la dernière image pour que le diaporama s’arrête à la dernière
image et non à la première.
Fondu enchaîné Lorsqu’il est sélectionné, ce paramètre ajoute un fondu de transition à la diapositive suivante. La
valeur par défaut est de 0,5 seconde. Vous pouvez spécifier une valeur comprise entre 0,125 seconde et 60 secondes.
Cette valeur s’applique aux diaporamas à exécution automatique et aux diaporamas à exécution manuelle.
Faire glisser pour modifier l’image Lorsqu’il est activé, ce paramètre permet à l’utilisateur de faire défiler les
diapositives une par une par glissement.
UTILISATION DE DIGITAL PUBLISHING SUITE 66
Interactivité
Dernière mise à jour le 1/2/2013
Arrêter à la première/dernière image Ce paramètre détermine si la lecture du diaporama s’arrête ou continue
lorsque la dernière diapositive est atteinte pendant un défilement avant, ou lorsque la première diapositive image
est atteinte pendant un défilement arrière. Ce paramètre ne concerne que le glissement.
Masquer avant la lecture Lorsque ce paramètre est sélectionné, le diaporama reste masqué jusqu’à ce que
l’utilisateur touche un bouton pour afficher une diapositive.
Lecture inversée Lorsque ce paramètre est activé, le diaporama est lu dans l’ordre inverse.
Format d’exportation dans les articles PDF Si le diaporama s’affiche dans un article qui utilise le format PDF, vous
pouvez choisir le format bitmap ou vectoriel. Le format vectoriel est particulièrement intéressant lorsque vous créez
un folio unique pour les iPads et les iPhones SD et HD. L’option Vectorisation améliore la netteté du texte sur un
périphérique iOS HD, mais ralentit le chargement. Pour optimiser les résultats, utilisez l’option Vectorisation pour
les diaporamas à forte quantité de texte et l’option Pixellisation pour les diaporamas basés sur les images ou lorsque
vous créez des rendus distincts pour les périphériques iOS SD et HD.
Lorsque vous copiez l’objet à états multiples dans un autre document, il est renommé. Par exemple, « limaces de mer »
devient « limaces de mer2 ». Pour maintenir la continuité lorsque l’orientation du périphérique est modifiée, assurezvous
que les noms des objets sont identiques dans les documents horizontaux et verticaux. Ne laissez pas d’espace à la
fin du nom d’objet. De plus, les noms d’état correspondants dans chaque mise en page doivent être identiques.
Voir aussi
« Imbrication d’incrustations interactives » à la page 77
« Fonctions d’interactivité prises en charge » à la page 56
« Meilleures pratiques pour la création d’incrustations » à la page 57
Séquence d’images en incrustation
L’incrustation d’une séquence d’images passe d’une image à une autre dans un ensemble d’images. Elle vous permet
de créer des effets, comme la rotation d’un objet à 360° sur le périphérique mobile.
• Utilisez des fichiers image png ou jpg portant le même nom racine avec des suffixes croissants, tels que Tour001.jpg,
Tour002.jpg, et ainsi de suite. Réglez vos dimensions d’image de sorte qu’elles correspondent exactement à la zone
d’affichage sur le périphérique mobile, par exemple 500 x 400 pixels en 72 ppp.
• Pour que la rotation à 360° s’effectue en douceur, utilisez au moins 30 images. L’utilisation d’un trop grand nombre
d’images augmente inutilement la taille du fichier. Pour réduire la taille du fichier, utilisez des images JPEG
compressées de 50 à 80 %. Utilisez des fichiers PNG uniquement si vous souhaitez intégrer de la transparence.
• Si vos fichiers source comportent des images PNG transparentes, l’affiche que vous spécifiez continue d’apparaître
pendant la séquence d’images. Pour contourner le problème, créez un objet à deux états pour lequel l’affiche
correspond à un bouton du premier état qui renvoie à la séquence d’images sur le deuxième état.
Création d’un ensemble d’images qui sera utilisé pour la séquence d’images
UTILISATION DE DIGITAL PUBLISHING SUITE 67
Interactivité
Dernière mise à jour le 1/2/2013
Pour créer les images d’un objet 3D, plusieurs méthodes s’offrent à vous. Vous pouvez notamment utiliser Adobe
Photoshop® Extended pour exporter une séquence d’image d’un objet 3D. Vous pouvez également utiliser le logiciel
Adobe Flash® Professionnel ou Adobe After Effects® pour exporter les blocs d’une animation ou d’une vidéo. Enfin, vous
pouvez utiliser une application de création 3D pour générer les images d’un modèle 3D.
1 Créez les fichiers source pour l’objet de séquence d’images et importez-les dans un dossier.
2 Utilisez l’une des méthodes suivantes :
• A l’aide de l’outil Rectangle ou Bloc rectangulaire, faites glisser pour créer un bloc de substitution.
• Importez une image à utiliser comme affiche pour la séquence d’images. Pour éviter toute inclinaison, faites en
sorte que les dimensions de l’affiche soient les mêmes que celles des images de la séquence. (Si vous utilisez une
image d’affiche, deux pressions consécutives sur l’image dans le lecteur permettent de masquer la séquence
d’images et de faire apparaître l’affiche.)
3 Sélectionnez l’objet d’espace réservé, ouvrez le panneau Folio Overlays, puis sélectionnez Séquence d’images.
4 Dans le panneau Folio Overlays, cliquez sur l’icône du dossier Charger les images, recherchez le dossier contenant
les images, puis cliquez sur Ouvrir.
5 Si nécessaire, redimensionnez le bloc et son contenu à la taille de votre mise en page.
6 Dans le panneau Folio Overlays, définissez les options suivantes :
Afficher d’abord la première image Si cette option est sélectionnée, la première image est utilisée comme affiche. Si
l’option Lecture inversée est sélectionnée, la dernière image est utilisée comme affiche.
Lecture auto Si cette option est sélectionnée, la lecture des images de la séquence commence lorsque les utilisateurs
tournent la page.
Effectuer une pression pour passer en mode Lecture/Pause Lorsqu’il est sélectionné, ce paramètre permet aux
utilisateurs de lire la séquence d’images ou de la mettre en pause sur simple pression. Deux pressions consécutives
entraînent la réinitialisation de l’objet.
Délai Si le paramètre Lecture auto est sélectionné, vous pouvez indiquer le temps qui s’écoule entre le chargement
de la page et le lancement de la séquence d’images. Définissez une valeur comprise entre 0 et 60 secondes.
Vitesse Modifiez la vitesse de progression de l’objet en images par seconde. La valeur minimale est 1 (c’est-à-dire
1 image par seconde) et la valeur maximale est 30.
Lecture _ fois Si le paramètre Lecture auto ou Effectuer une pression pour passer en mode Lecture/Pause est
sélectionné, vous pouvez indiquer le nombre de lectures successives de la séquence d’images. Cette option est
estompée si En boucle est sélectionné.
En boucle Si Lire au chargement de la page ou Effectuer une pression pour passer en mode Lecture/Pause est
sélectionné, vous pouvez sélectionner En boucle pour lire la séquence d’images de façon continue. La séquence
s’arrête si vous touchez deux fois le diaporama ou tournez la page.
Arrêter à la dernière image Si le paramètre Lecture auto ou Effectuer une pression pour passer en mode
Lecture/Pause est sélectionné, choisissez Arrêter à la dernière image pour que la séquence s’arrête à la dernière
image et non à la première.
Faire glisser pour modifier l’image Lorsqu’il est activé, ce paramètre permet à l’utilisateur de faire glisser ses doigts
sur l’écran pour avancer ou reculer dans la séquence d’images.
Si le paramètre Faire glisser pour modifier l’image est désélectionné, choisissez Lecture auto ou Effectuer une
pression pour passer en mode Lecture/Pause pour que la séquence d’images devienne interactive.
UTILISATION DE DIGITAL PUBLISHING SUITE 68
Interactivité
Dernière mise à jour le 1/2/2013
Arrêter à la première/dernière image Vous pouvez déterminer si la lecture de l’objet s’arrête ou continue lorsque la
dernière image est atteinte pendant un défilement avant, ou lorsque la première image est atteinte pendant un
défilement arrière. Cette option ne concerne que le glissement.
Lecture inversée Lorsque ce paramètre est activé, la séquence d’images est lue dans l’ordre inverse.
Voir aussi
« Fonctions d’interactivité prises en charge » à la page 56
« Meilleures pratiques pour la création d’incrustations » à la page 57
« Création d’articles PDF multirendus pour les appareils iOS » à la page 48
Panorama en incrustation
L’incrustation Panorama donne l’illusion de la visualisation d’une image de l’intérieur. Par exemple, vous pouvez créer
un effet Panorama qui permet aux utilisateurs de voir l’intérieur du cockpit d’un avion. Ils peuvent faire pivoter la vue
à 360° et zoomer sur les tableaux de bord.
Pour créer un panorama réussi, l’important est de trouver les images adéquates. Pour créer un effet de panorama, la
fonction requiert un ensemble de six images, qui représente les six faces internes d’un cube. Si vous commencez avec
une image de panorama complète, convertissez-la en six images cubiques basées sur cette image.
UTILISATION DE DIGITAL PUBLISHING SUITE 69
Interactivité
Dernière mise à jour le 1/2/2013
Création d’un panorama
A. Image panoramique initiale B. Image panoramique convertie en six faces internes d’un cube C. Panorama sur iPad
Si vous commencez avec une image croisée horizontale, vous pouvez utiliser Photoshop ou un utilitaire de capture
d’écran pour créer les six images requises.
A B
C
UTILISATION DE DIGITAL PUBLISHING SUITE 70
Interactivité
Dernière mise à jour le 1/2/2013
Pour diviser une image croisée panoramique en images distinctes, suivez ce modèle.
1 Créez les fichiers source du panorama et importez-les dans un dossier.
Pour un résultat optimal, utilisez des images JPEG enregistrées à 72 ppp. Les images à haute résolution permettent
aux utilisateurs d’effectuer un zoom avant plus net mais augmentent la taille du fichier.
2 Utilisez l’une des méthodes suivantes :
• A l’aide de l’outil Rectangle ou Bloc rectangulaire, faites glisser pour créer un bloc de substitution.
• Importez une image à utiliser comme affiche pour le panorama.
3 Sélectionnez l’objet d’espace réservé, ouvrez le panneau Folio Overlays, puis sélectionnez Panorama.
4 Dans le panneau Folio Overlays, cliquez sur l’icône du dossier Ressources, recherchez le dossier contenant les six
images, puis cliquez sur Ouvrir.
5 Si nécessaire, redimensionnez le bloc et son contenu à la taille de votre mise en page.
6 Dans le panneau Folio Overlays, définissez les options suivantes :
Utiliser la première image comme affiche Cette option permet d’utiliser la première image du panorama en tant
qu’affiche. Sélectionnez cette image si vous n’avez pas créé une autre image qui sera utilisée comme affiche.
Zoom initial Spécifiez une valeur pour déterminer le niveau de zoom de l’image initiale. Utilisez une valeur
comprise dans les limites du champ Min./Max. des paramètres, définies à 30 et 80 par défaut.
A la verticale/A l’horizontale Spécifiez des valeurs pour déterminer quelle partie du panorama s’affiche en premier.
Pour le paramètre A la verticale, indiquez une valeur comprise entre -90 (inclinaison maximale vers le haut) et 90
(inclinaison maximale vers le bas). Pour le paramètre A l’horizontale, indiquez une valeur comprise entre -180
(rotation maximale vers la gauche) et 180 (rotation maximale vers la droite).
Champ de vision Si vous souhaitez interdire aux utilisateurs d’effectuer un zoom avant ou arrière au-delà d’un
certain point, spécifiez les valeurs Min. et Max.
Limiter le panoramique vertical Si vous souhaitez n’autoriser le basculement que de deux tiers vers le haut,
sélectionnez cette option et saisissez -60. Indiquez 60 si vous souhaitez autoriser le basculement de deux tiers vers
le bas. Utilisez une petite valeur, 1 par exemple, pour empêcher le panoramique vertical.
Limite de panorama horizontal Si vous souhaitez n’autoriser le panoramique que sur deux tiers à gauche et à droite,
sélectionnez cette option et précisez -120 pour la gauche et 120 pour la droite.
5
4 2 3
6
1
UTILISATION DE DIGITAL PUBLISHING SUITE 71
Interactivité
Dernière mise à jour le 1/2/2013
Remarque : pour afficher l’effet produit par les différents paramètres de panorama, changez de paramètre et cliquez
sur Aperçu.
Voir aussi
« Fonctions d’interactivité prises en charge » à la page 56
« Meilleures pratiques pour la création d’incrustations » à la page 57
« Création d’articles PDF multirendus pour les appareils iOS » à la page 48
Incrustations audio et vidéo
Les fichiers vidéo et audio pris en charge que vous importez dans InDesign sont lus lorsque vous appuyez dessus dans
le lecteur de contenu. Pour les fichiers vidéo, utilisez un format compatible avec Apple iTunes, par exemple le
format MP4 avec codage h.264. Lors de la création de la vidéo, utilisez le profil de ligne de base pour une compatibilité
optimale avec les périphériques Android. Utilisez des fichiers .mp4 à la place de fichiers .mov qui ne sont pas pris en
charge dans Web Viewer. Pour les fichiers audio, utilisez des fichiers MP3.
Vous pouvez paramétrer un fichier audio ou vidéo pour qu’il soit lancé quand l’utilisateur tapote la zone de
visualisation ou quand il sélectionne les boutons Son ou Vidéo que vous aurez créés.
Il n’est pas encore possible de spécifier une URL pour diffuser une vidéo ou de l’audio depuis le Web à l’aide de
l’incrustation Audio et vidéo. Toutefois, vous pouvez diffuser du contenu multimédia à l’aide d’une incrustation de
contenu Web ou d’un article HTML.
Fichiers vidéo et audio
UTILISATION DE DIGITAL PUBLISHING SUITE 72
Interactivité
Dernière mise à jour le 1/2/2013
Audio
Les fichiers mp3 que vous importez dans InDesign sont lus lorsque vous les touchez dans le lecteur de contenu. Pour
simuler un habillage de contrôleur, vous pouvez créer un effet simple permettant de basculer entre un bouton de
lecture et un bouton pause. Vous pouvez également créer un effet plus avancé qui affiche la progression audio.
Vidéo
Vous pouvez lire des vidéos en mode plein écran ou intégré. Pour un résultat optimal avec les vidéos intégrées, créez
une séquence vidéo présentant des dimensions appropriées (par exemple, 400 x 300 pixels), puis créez une image
d’affiche distincte de mêmes dimensions. Utilisez des films plein écran de 1 024 pixels. La taille vidéo maximale pour
l’iPad HD est de 1 920 x 1 080 pixels, bien que la création d’une vidéo de cette taille augmente la taille du folio. Pour
un bon équilibre entre la taille du fichier et la qualité, certains éditeurs recommandent 10 à 12 Mo par minute de vidéo.
Pour réduire la taille de la vidéo, certains éditeurs utilisent Adobe Media Encoder ou une application tierce, telle que
HandBrake.
Vous pouvez également ajouter de la vidéo (y compris la diffusion vidéo en flux continu) pour les articles HTML. (voir
la section « Importation d’articles HTML » à la page 89).
Vous pouvez choisir une image de séquence vidéo comme image d’affiche. Cependant, il est recommandé de créer une
image d’affiche indiquant que l’objet est interactif.
1 Choisissez Fichier > Importer, puis importez le fichier vidéo ou audio dans votre document.
2 Sélectionnez l’objet importé, ouvrez le panneau Multimédia (Fenêtre > Objet interactif > Multimédia), puis
indiquez une affiche.
Pour un fichier vidéo, vous pouvez choisir une image ou spécifier un bloc de la vidéo. Pour de meilleurs résultats,
choisissez une image indiquant que l’élément de page est interactif.
3 Sélectionnez le bloc multimédia et définissez l’une des options suivantes dans le panneau Folio Overlays.
Fichiers de la barre de contrôle Cliquez sur l’icône du dossier, puis spécifiez le dossier contenant les boutons de
lecture et de pause pour les fichiers audio.
Pour afficher un habillage de contrôleur avec les boutons Lecture et Pause pendant la lecture du clip audio, créez
un ensemble de fichiers .png dans un dossier. Ces images doivent avoir pour préfixe _pause ou _play. Vous pouvez
créer une seule paire de boutons _play et _pause, ou créer plusieurs paires _play et _pause représentant les états
progressifs d’une barre d’état.
AudioAsset001_play.png
AudioAsset002_play.png
AudioAsset003_play.png
AudioAsset004_play.png
AudioAsset005_play.png
AudioAsset001_pause.png
AudioAsset002_pause.png
AudioAsset003_pause.png
AudioAsset004_pause.png
AudioAsset005_pause.png
Dans cet exemple, lorsque le fichier audio est lu à moitié, le bouton AudioAsset003_play.png est affiché. Lorsque
l’utilisateur touche l’écran pour interrompre la lecture, le bouton AudioAsset003_pause est affiché.
Afficher d’abord la première image (InDesign CS5.5/CS6 uniquement) Si cette option est sélectionnée, l’image
audio affiche le premier fichier _play.png dans le dossier contenant les fichiers de la barre de contrôle et l’image est
redimensionnée à la taille appropriée.
Dans InDesign CS5, indiquez l’image d’affiche, puis redimensionnez manuellement l’image et l’image d’affiche.
UTILISATION DE DIGITAL PUBLISHING SUITE 73
Interactivité
Dernière mise à jour le 1/2/2013
Lecture auto Sélectionnez cette option pour lire le fichier audio ou vidéo lorsque la page est chargée sur le
périphérique mobile. Vous pouvez également indiquer le nombre de secondes de retard. La lecture automatique
n’est pas prise en charge pour les lecteurs Android.
Lire le folio en arrière-plan Sélectionnez cette option pour lire le fichier audio en arrière-plan pendant que les
utilisateurs parcourent les articles. Les utilisateurs peuvent interrompre ou reprendre le clip audio en appuyant sur
l’icône Audio dans la barre de navigation supérieure. Cette fonction est uniquement disponible sur iPad ou iPhone.
Lecture plein écran Si cette option est sélectionnée, la vidéo est lue en mode plein écran. Si cette option est
désélectionnée, la vidéo est lue dans sa zone délimitée. Notez que toutes les vidéos sur les périphériques Android
sont lues en mode Plein écran.
Touchez pour afficher la barre de contrôle (iOS uniquement) Si vous sélectionnez cette option et que les utilisateurs
appuient sur la vidéo intégrée lors de sa lecture, ils affichent une barre de contrôle comportant des commandes de
suspension et de lecture. Dans le cas contraire, une pression sur la vidéo permet d’interrompre la lecture ou de la
reprendre.
Ne pas autoriser les pauses (iOS uniquement) Si vous sélectionnez cette option, les utilisateurs ne peuvent pas
appuyer sur la vidéo pour la suspendre ou l’arrêter. Cette option est disponible uniquement si l’option Lecture
automatique est activée et que Lecture plein écran n’est pas sélectionné.
Arrêt sur la dernière image (iOS uniquement) Sélectionnez cette option pour afficher la dernière image vidéo
lorsque la lecture de la vidéo intégrée s’arrête. Cette option est disponible uniquement si l’option Lecture plein
écran n’est pas sélectionnée.
Lorsque l’utilisateur lance la lecture audio, le fichier est lu immédiatement tout en permettant à l’utilisateur de
continuer à lire le contenu de l’article actuel. L’accès à un autre article entraîne l’arrêt de la lecture du fichier audio et
sa réinitialisation. En revanche, le fait de tourner la page n’arrête pas la lecture du fichier audio.
Vous pouvez créer des boutons Son ou Vidéo pour contrôler le clip multimédia. Les options Lecture, Pause et Stop
sont prises en charge. Les actions Reprendre et Tout arrêter ne sont pas prises en charge.
Voir aussi
« Fonctions d’interactivité prises en charge » à la page 56
« Meilleures pratiques pour la création d’incrustations » à la page 57
Contenu Web en incrustation
L’incrustation Contenu Web permet d’intégrer une page Web dans une zone d’affichage. Les utilisateurs peuvent voir
le contenu de la page Web dans la zone d’affichage sans avoir à le faire dans un navigateur intégré distinct. Vous pouvez
spécifier une URL Web ou un fichier HTML local. Gardez à l’esprit les points suivants :
• Si vous indiquez un fichier HTML local, assurez-vous que ce fichier ainsi que les dossiers et fichiers associés
figurent dans le même dossier. Lorsque le contenu de l’article est créé, tous les fichiers du même dossier que le
fichier .html sont téléchargés.
• Pour toute URL redirigée automatiquement vers une URL mobile, spécifiez l’URL mobile (telle que
http://mobile.twitter.com/), et non pas l’URL d’origine (telle que http://twitter.com).
• Si vous spécifiez une animation HTML à incruster dans un contenu Web, définissez l’incrustation en lecture
automatique avec un très léger retard, par exemple 0,125 seconde, pour vous assurer de la lecture correcte de
l’animation.
UTILISATION DE DIGITAL PUBLISHING SUITE 74
Interactivité
Dernière mise à jour le 1/2/2013
Pour créer une incrustation de contenu Web :
1 Utilisez l’une des méthodes suivantes :
• A l’aide de l’outil Rectangle ou Bloc rectangulaire, faites glisser le curseur pour délimiter le cadre d’affichage du
contenu Web.
• Importez une image à utiliser comme affiche pour le contenu Web.
2 Sélectionnez le cadre, puis sélectionnez Contenu Web dans le panneau Folio Overlays.
3 Utilisez l’une des méthodes suivantes :
• Pour spécifier une URL, tapez ou collez l’URL dans le champ Ressources. Tapez l’URL complète sans oublier
« http:// ».
• Pour utiliser des fichiers HTML locaux, cliquez sur l’icône du dossier et spécifiez le fichier HTML local. Le
fichier HTML (index.html, par exemple) doit figurer dans un dossier qui comprend les images ou les scripts
utilisés dans le fichier HTML.
4 Définissez les options suivantes :
Lecture auto Sélectionnez cette option pour charger la page Web lorsque la page est chargée dans le périphérique
mobile. Vous pouvez également indiquer le nombre de secondes de retard. Si votre HTML cible est une animation
à jouer, spécifiez un très léger délai.
Arrière-plan transparent Si cette option est sélectionnée, le fond transparent d’une page Web est préservé. Les
utilisateurs peuvent voir en transparence le contenu DPS en l’arrière-plan. Si cette option est désélectionnée, le fond
du contenu Web est utilisé.
Autoriser les interactions avec l’utilisateur Si cette option est sélectionnée, les utilisateurs peuvent interagir avec la
page Web. Par exemple, ils peuvent toucher un hyperlien pour accéder à une page Web différente.
Ajuster le contenu à l’échelle Si cette option est sélectionnée, la page Web est redimensionnée en fonction de la
taille spécifiée dans le fichier d’incrustation. Dans le cas contraire, la page Web est affichée à la même taille que dans
le navigateur du périphérique, c’est pourquoi elle peut être recadrée.
Autoriser l’accès aux informations d’habilitation Si vous avez un compte Enterprise, vous pouvez créer une
incrustation de contenu Web qui affiche un contenu différent pour chaque utilisateur selon la façon dont le folio a
été obtenu. Par exemple, si un utilisateur télécharge un folio gratuit (« première édition gratuite »), l’incrustation
peut afficher une offre de souscription. Si un utilisateur obtient le folio via un abonnement, l’incrustation peut
afficher une offre concernant des produits supplémentaires.
En plus de la sélection de cette option pour l’incrustation, ajoutez une API JavaScript personnalisée à votre
code HTML. Pour plus d’informations, contactez votre représentant Adobe.
Vous pouvez également créer ce type de contenu HTML conditionnel pour un article HTML au lieu d’une
incrustation de contenu Web. Pour un article HTML, sélectionnez l’option Autoriser l’accès aux informations
d’habilitation dans l’éditeur Folio Producer.
Voir aussi
« Importation d’articles HTML » à la page 89
« Fonctions d’interactivité prises en charge » à la page 56
« Meilleures pratiques pour la création d’incrustations » à la page 57
UTILISATION DE DIGITAL PUBLISHING SUITE 75
Interactivité
Dernière mise à jour le 1/2/2013
Panorama et zoom en incrustation
Vous pouvez afficher une image de grande taille dans une petite zone et autoriser l’utilisateur à effectuer des
panoramiques et des zooms sur l’image dans cette zone.
1 Importez une image JPEG ou PNG.
2 A l’aide de l’outil de sélection, faites glisser la poignée de sélection pour recadrer l’image sans avoir à la
redimensionner. Le cadre doit avoir la taille de la zone d’affichage. Positionnez l’image dans le cadre afin de
déterminer la zone d’affichage initiale.
Assurez-vous que le bloc conteneur est plus petit que l’image. Si la largeur ou la hauteur du cadre et de l’image sont
identiques, l’objet est traité comme du contenu défilant.
Pour ajouter une affiche à l’incrustation Panorama et zoom, créez un cadre de mêmes dimensions que le
panoramique d’image et importez-le sur l’incrustation. Lorsque l’utilisateur touche l’affiche, le panoramique
d’image est activé et la masque. Lorsque l’utilisateur touche deux fois le panoramique d’image, l’affiche réapparaît.
3 Pour modifier le grossissement d’affichage initial, sélectionnez l’image (et non le cadre) à l’aide de l’outil Sélection
directe, puis mettez-la à l’échelle.
Vous pouvez régler la taille de l’image sur 100 % ou un pourcentage inférieur. L’échelle maximale est 100 %.
4 Sélectionnez le cadre d’image, puis ouvrez le panneau Folio Overlays. Cliquez sur l’onglet Pan et zoom, puis
sélectionnez Activé.
Pour appliquer la fonction de pincement et de zoom à une page entière d’un article, créez un article au format d’image
PDF. (Voir « Zoom et mouvement de pincement sur les articles » à la page 40).
Conseils sur le panoramique et le zoom
Tenez compte des points suivants :
• Pour le moment, la zone d’affichage doit être rectangulaire.
• Pour un résultat optimal, utilisez des images JPEG.
• Si vous créez une incrustation panoramique et zoom d’une taille supérieure à 2 000 x 2 000 pixels en 72 ppp, testezla
soigneusement sur le périphérique mobile. Les images volumineuses augmentent la taille de fichier et peuvent
entraîner des problèmes de mémoire sur les périphériques mobiles.
• En règle générale, assurez-vous que l’image possède les dimensions exactes que vous souhaitez utiliser. Par
exemple, pour pouvoir effectuer un panoramique sur une image de 1 024 x 1 024 pixels dans une zone d’affichage
de 200 x 200 pixels, créez une image de 1 024 x 1 024 pixels en 72 ppp. Toutefois, si vous utilisez des documents
source de 1 024 x 768 pixels dans un folio de 2 048 x 1 536 pixels, l’utilisation d’images en 72 ppp peut entraîner des
résultats d’affichage initiaux différents selon les modèles d’iPad. Pour éviter cette situation, créez une version haute
définition de l’image dans un sous-dossier HD. Reportez-vous à « Création d’articles PDF multirendus pour les
appareils iOS » à la page 48.
• La fonction Panorama et zoom n’est pas conçue pour fonctionner avec les images transparentes. Lorsqu’une page
avec un panoramique d’image est chargée, l’affiche apparaît. L’incrustation réelle reste invisible tant que
l’utilisateur ne la touche pas. Lorsque l’utilisateur touche l’incrustation à deux reprises, celle-ci disparaît, puis
l’affiche apparaît. Si le panorama d’image contient une transparence, l’affiche apparaît au travers, comme une
image dupliquée. Une solution consiste à créer un objet à deux états dans lequel l’affiche est un bouton du premier
état qui renvoie à l’image de la fonction Panorama et zoom sur le deuxième état.
UTILISATION DE DIGITAL PUBLISHING SUITE 76
Interactivité
Dernière mise à jour le 1/2/2013
Voir aussi
« Incrustations de cadres défilants » à la page 76
« Fonctions d’interactivité prises en charge » à la page 56
« Meilleures pratiques pour la création d’incrustations » à la page 57
Incrustations de cadres défilants
Vous pouvez créer un cadre défilant pour permettre aux utilisateurs de faire défiler le contenu. Par exemple, vous
pouvez créer une page de recettes de cuisine avec une liste d’ingrédients et un ensemble d’instructions. Au lieu de
tourner la page pour afficher la liste complète d’ingrédients ou les instructions, les utilisateurs peuvent parcourir le
contenu en le faisant glisser.
Par défaut, l’affichage initial pour le contenu défilant est le coin supérieur gauche du bloc conteneur. Cependant, vous
modifiez l’affichage initial afin qu’il soit basé sur l’emplacement du cadre de contenu.
Vous pouvez ajouter toutes les incrustations interactives à des blocs défilants (voir « Imbrication d’incrustations
interactives » à la page 77). L’ancienne méthode pour créer des blocs défilants à l’aide de calques n’est plus prise en
charge.
1 Pour générer un cadre à défilement vertical, créez un cadre de contenu et un bloc conteneur.
• Le cadre de contenu peut être un bloc de texte, une image ou un groupe d’objets.
• Vous avez la possibilité d’y inclure tout type d’objet interactif à l’exception d’un diaporama. Ajoutez les objets
interactifs au bloc de texte sous forme d’objets ancrés ou regroupez les objets interactifs avec d’autres objets.
2 Déplacez le cadre de contenu vers sa zone d’affichage initial par rapport au bloc conteneur.
Si vous utilisez les paramètres par défaut, le cadre de contenu s’aligne sur le coin supérieur gauche du bloc
conteneur. Cependant, vous pouvez utiliser l’emplacement du document du cadre de contenu pour déterminer
l’affichage initial.
3 Sélectionnez le cadre de contenu, puis choisissez Edition > Couper.
Afin d’éviter tout comportement étrange, assurez-vous que le contenu s’affiche dans la zone de mise en page, pas
dans la zone de travail.
4 Sélectionnez le bloc conteneur, puis choisissez Edition > Coller dedans.
Remarque : lorsque vous collez le cadre de contenu dans le bloc conteneur, les boutons associés à une action d’état
MSO perdent leur action. Sélectionnez le bouton et rajoutez l’action qui lui était associée. (Les boutons de sélection de
la barre d’outils sont très utiles pour sélectionner des boutons cachés. Le panneau Calques est une autre façon de
sélectionner des objets imbriqués.)
5 Avec le bloc conteneur toujours sélectionné, ouvrez le panneau Folio Overlays. Cliquez sur l’onglet Bloc défilant,
puis spécifiez ces options.
Sens de défilement Choisissez Détection automatique pour déterminer la direction de défilement en fonction de
la hauteur et de la largeur du bloc conteneur et du cadre de contenu. Si les cadres sont de même hauteur mais de
largeurs différentes, le contenu défile uniquement horizontalement. Pour vous assurer que le contenu ne défile que
dans un seul sens même si le bloc conteneur est plus étroit et plus court que le cadre de contenu, sélectionnez
Horizontal ou Vertical. L’option Horizontale et verticale produit le même effet que la détection automatique.
UTILISATION DE DIGITAL PUBLISHING SUITE 77
Interactivité
Dernière mise à jour le 1/2/2013
Indicateurs de défilement Sélectionnez Masquer pour que les barres de défilement ne s’affichent pas lors du
défilement.
Position initiale de contenu Sélectionnez En haut, à gauche pour aligner le cadre de contenu sur le coin supérieur
gauche du bloc conteneur comme affichage initial. Sélectionnez l’option Utiliser la position du document pour
utiliser l’emplacement du cadre de contenu comme affichage initial.
Format d’exportation dans les articles PDF Si le bloc défilant figure dans un article qui utilise le format PDF, vous
pouvez choisir le format bitmap ou vectoriel. Le format vectoriel est particulièrement intéressant lorsque vous créez
un folio unique pour les iPads et iPhones SD et HD. L’option Vectorisation améliore la netteté du texte sur un
périphérique iOS HD, mais ralentit le chargement. Pour optimiser les résultats, utilisez l’option Vectorisation pour
les blocs défilants à forte quantité de texte et l’option Pixellisation pour les blocs défilants basés sur les images ou
lorsque vous créez des rendus distincts pour les périphériques iOS SD et HD.
Remarque : reportez-vous à l’application gratuite DPS Tips pour obtenir des exemples de blocs défilants, notamment des
exemples de blocs défilants imbriqués et d’effets d’onglet rétractable.
Voir aussi
« Fonctions d’interactivité prises en charge » à la page 56
« Meilleures pratiques pour la création d’incrustations » à la page 57
« Défilement lisse » à la page 38
Imbrication d’incrustations interactives
Vous pouvez incorporer des incrustations interactives dans des cadres défilants ou des diaporamas (objets à états
multiples). Cependant, vous ne pouvez pas incorporer d’objet à états multiples dans des cadres défilants ou dans un
autre diaporama.
Diaporama Plusieurs méthodes sont à votre disposition pour ajouter des incrustations à un état de diaporama. Vous
pouvez sélectionner un état et choisir Coller dedans. Vous pouvez aligner l’incrustation avec l’objet à états multiples,
sélectionner les deux, puis choisir de coller l’objet dans l’état sélectionné ou créer un nouvel état. Vous pouvez
également grouper l’incrustation avec d’autres objets, aligner le groupe avec d’autres objets, puis créer l’objet à états
multiples.
Cadres défilants Créez l’incrustation interactive telle qu’une séquence d’image ou un bouton. Ensuite, vous pouvez
soit grouper l’objet d’incrustation avec d’autres objets du cadre de contenu, soit coller l’incrustation dans le texte afin
de créer un objet ancré. Ensuite, collez le cadre de contenu dans le bloc conteneur, puis sélectionnez l’option Panorama
uniquement dans le panneau Folio Overlays.
Gardez à l’esprit les points suivants :
• Vous pouvez ajouter des boutons à un cadre défilant qui change d’état dans un diaporama. Lorsque vous collez le
bouton dans le cadre de contenu, l’action basée sur l’état est supprimée. Sélectionnez le bouton une nouvelle fois,
puis recréez l’action. Si le bouton est masqué, utilisez les icônes de sélection du contenu et de sélection de l’élément
suivant dans la barre Contrôle pour sélectionner l’objet.
UTILISATION DE DIGITAL PUBLISHING SUITE 78
Interactivité
Dernière mise à jour le 1/2/2013
• Pour qu’un objet à états multiples devienne un diaporama interactif, une action doit déclencher la modification
d’un ou de plusieurs états. Autrement, seul l’état actif s’affiche dans le lecteur. Pour transformer le MSO en
diaporama, sélectionnez une option telle que Lecture auto dans le panneau Folio Overlays. Vous pouvez également
créer un bouton contenant une action d’état MSO. Cependant, un bouton dans un état ne rend pas le MSO
interactif. Si vous souhaitez utiliser uniquement des boutons dans le MSO pour modifier les diapositives, créez un
bouton factice invisible en dehors du MSO pour le rendre interactif.
• Pour créer un effet d’accès rapide, couplez un bouton à un objet à deux états, dont un vierge. Par exemple,
l’activation d’un bouton peut déclencher une séquence d’image ou une incrustation de contenu Web.
• Pour d’autres exemples de surimpressions intégrées, reportez-vous à l’application DPS Tips.
79
Dernière mise à jour le 1/2/2013
Chapitre 4 : Folios et articles
Création et gestion des folios
Un folio comprend un ou plusieurs articles numériques. Un folio s’affiche comme thème dans la bibliothèque d’Adobe
Content Viewer ou d’un lecteur personnalisé à multiples thèmes. Si vous créez un lecteur personnalisé à thème unique,
le folio comprend le contenu du lecteur.
Présentation du panneau Folio Builder
Utilisez le panneau Folio Builder pour créer des folios et ajouter des articles. Pour ouvrir le panneau, choisissez la
commande Fenêtre > Folio Builder (InDesign CS6) ou Fenêtre > Extension > Folio Builder (InDesign CS5 ou CS5.5).
Le panneau Folio Builder affiche les folios auxquels vous avez accès. Le panneau Folio Builder inclut trois vues : vue
du folio, vue des articles et vue de la mise en page. Pour naviguer parmi les folios, effectuez l’une des actions suivantes :
• Double-cliquez sur un folio ou sur la flèche située à droite du folio pour afficher les articles du folio.
• Double-cliquez sur un article ou sur la flèche située à droite de l’article pour afficher ses mises en forme.
• Cliquez sur l’icône de flèche dans l’angle supérieur gauche du panneau pour monter d’un niveau.
Panneau Folio Builder
A. Vue du folio B. Vue des articles C. Vue de la mise en page
Filtrage des folios affichés
Pour déterminer les folios à afficher, choisissez Tout et Tous les folios locaux, Dans le nuage (pour masquer les folios
locaux), Privé (pour masquer les folios partagés) ou Partagé dans la liste déroulante de la vue Folio.
A
B
C
UTILISATION DE DIGITAL PUBLISHING SUITE 80
Folios et articles
Dernière mise à jour le 1/2/2013
Tri des folios
Choisissez une option dans le menu déroulant Trier de la vue Folio pour déterminer l’ordre de tri des folios dans le
panneau Folio Builder. Sélectionnez Inverser la liste pour inverser l’ordre d’un folio sélectionné.
Connexion au panneau Folio Builder
La connexion au panneau Folio Builder est facultative. En vous connectant au panneau, vous pouvez télécharger des
folios vers le site acrobat.com. Vous pouvez ensuite télécharger les folios vers Adobe Content Viewer sur un
périphérique mobile et les partager avec d’autres utilisateurs. Si vous ne vous connectez pas au panneau, vous pouvez
toujours créer et prévisualiser les folios locaux et créer une application Single Edition. Utilisez un ID Adobe vérifié
pour vous connecter au panneau Folio Builder.
1 Vérifiez que l’ordinateur utilisé est connecté à Internet.
2 Dans le panneau Folio Builder, cliquez sur Se connecter, puis connectez-vous à l’aide d’un ID Adobe vérifié.
3 Si vous ne disposez pas d’un ID d’Adobe authentifié, effectuez l’une des opérations suivantes :
• Si vous disposez d’un abonnement Enterprise ou Professional à Digital Publishing Suite, utilisez l’outil
Administration de comptes pour créer un ID Adobe avec un rôle Application. Utilisez un ID Adobe approprié
pour vous connecter au panneau Folio Builder. Voir « Outil Administration de comptes » à la page 144.
• Pour vérifier un ID Adobe pour travailler avec DPS, aller à https://digitalpublishing.acrobat.com/fr et cliquez
sur Créer un compte. Utilisez une adresse e-mail valide pour créer votre compte. Adobe vous envoie ensuite un
message de vérification. Ouvrez-le et vérifiez son contenu. Utilisez ensuite l’ID Adobe fourni pour vous
connecter au panneau Folio Builder (voir la section « Utilisation d’un ID Adobe pour la publication
numérique » à la page 6).
Création d’un folio
Un folio se définit comme une collection d’articles. Toute personne disposant d’InDesign CS5 ou version ultérieure
peut créer des folios.
Lorsque vous vous connectez et créez un folio, un espace de travail est créé sur le serveur Web acrobat.com. Le contenu
de tous les articles que vous ajoutez au folio est téléchargé dans cet espace de travail.
1 Pour ouvrir le panneau Folio Builder, choisissez la commande Fenêtre > Extensions > Folio Builder (InDesign CS5
ou CS5.5) ou choisissez la commande Fenêtre > Folio Builder (InDesign CS6).
2 Si vous n’avez pas encore établi la connexion, cliquez sur Se connecter et utilisez un ID Adobe vérifié.
Si vous ne vous connectez pas au panneau Folio Builder, vous pouvez créer un folio hors ligne que vous pourrez
ensuite télécharger une fois connecté.
3 Cliquez sur Nouveau pour créer un folio.
Vous pouvez également choisir Fichier > Nouveau > Folio dans InDesign CS6 pour créer un folio.
4 Définissez les paramètres suivants, puis cliquez sur OK.
UTILISATION DE DIGITAL PUBLISHING SUITE 81
Folios et articles
Dernière mise à jour le 1/2/2013
Création d’un folio
Nom du folio Indiquez le nom du folio. Le nom du folio est différent du nom de publication qui apparaît dans le
lecteur. Le nombre maximal de caractères pour le nom du folio est 60.
Version du lecteur de contenu Spécifiez la version de l’afficheur cible. Cette option est particulièrement utile si la
nouvelle version d’Adobe Content Viewer est en attente dı’approbation ou si vous créez des folios pour un lecteur
de contenu antérieur. Une fois que vous avez créé un folio, vous pouvez modifier les propriétés du folio pour
augmenter le nombre de versions, mais vous ne pouvez plus revenir à une version antérieure. Créez un folio à la
place. Vous ne pouvez pas spécifier une version de lecteur de contenu antérieure à v20.
Périphérique cible Sélectionnez le périphérique cible ou spécifiez des dimensions personnalisées du périphérique
cible, telles que 2 048 x 1 536 pour un iPad HD.
Lorsque vous indiquez la taille du folio pour le périphérique cible, n’oubliez pas que le périphérique affiche peutêtre
une barre de navigation. Par exemple, une barre de navigation de 48 ou 75 pixels apparaît sur certains appareils
Android. De ce fait, le lecteur met à l’échelle un folio 1 280 x 800. A la place, créez un plus petit folio (de 1 205 x 725
pixels, par exemple) pour les folios à double orientation. Voir « Création de documents pour divers périphériques »
à la page 44.
Orientation Indiquez si le folio est en mode portrait uniquement, en mode paysage uniquement ou à double
orientation. Pour afficher l’aperçu ou publier le folio, tous les articles doivent correspondre à l’orientation du folio.
Par exemple, si un folio à double orientation contient un article avec une mise en forme Portrait uniquement, le
folio ne peut pas être téléchargé dans la bibliothèque Adobe Content Viewer.
Format par défaut Choisissez une option par défaut pour le folio. Les articles peuvent avoir des paramètres de
format différents.
UTILISATION DE DIGITAL PUBLISHING SUITE 82
Folios et articles
Dernière mise à jour le 1/2/2013
Choisissez Automatique si vous voulez que InDesing détermine si les pages doivent être exportées dans le format
JPEG ou PNG. L’option PDF permet aux utilisateurs d’effectuer un zoom avant ou arrière, de préserver les vecteurs
et de réduire la taille du fichier d’un simple mouvement de pincement avec les doigts. Voir Differences Between
JPG, PNG, and PDF Image Formats.
Qualité JPEG par défaut Si le paramètre Automatique ou JPEG est sélectionné pour l’option Format d’image par
défaut, précisez la qualité JPEG. La qualité et la taille du fichier augmentent proportionnellement.
Aperçu de la couverture Une image d’aperçu représente chaque folio ajouté à la bibliothèque du lecteur de
contenu. Indiquez les images d’aperçu au format portrait et celles au format paysage. Créez des images de
couverture sous la forme de fichiers JPG ou PNG de 72 ppp en utilisant les mêmes dimensions en pixels que celles
du périphérique cible, par exemple 1 024 x 768.
Créer le folio hors-ligne Sélectionnez cette option si vous ne souhaitez pas télécharger le contenu du folio sur le
serveur tout de suite. Ultérieurement, vous pourrez choisir Télécharger vers Folio Producer dans le menu de
panneau pour télécharger le contenu du folio.
Pour plus d’informations sur la résolution des problèmes de Folio Builder, voir Troubleshoot Folio Builder
(Dépannage de Folio Builder) et Résolution des problèmes de téléchargement des articles dans le panneau Folio
Builder.
Modification des propriétés du folio
Après avoir créé un folio, vous pouvez utiliser la boîte de dialogue Propriétés du folio pour définir un nom de
publication, changer la version du lecteur de contenu et choisir les aperçus de couverture. Certaines propriétés de folio,
telles que l’orientation, le format d’image et la taille du folio, ne peuvent pas être modifiées dans la boîte de dialogue
Propriétés du folio. Si nécessaire, créez un folio avec les paramètres appropriés.
Lorsque vous êtes prêt à publier le folio, utilisez l’organiseur Folio Producer pour spécifier des propriétés de folio pour
la publication.
1 Dans le panneau Folio Builder, sélectionnez un folio.
Modification des propriétés du folio.
UTILISATION DE DIGITAL PUBLISHING SUITE 83
Folios et articles
Dernière mise à jour le 1/2/2013
2 Choisissez Propriétés du folio dans le menu du panneau Folio Builder pour ouvrir la boîte de dialogue Propriétés
du folio.
3 Définissez les paramètres suivants, puis cliquez sur OK.
Nom de la publication Ce nom s’affiche dans le lecteur de contenu. Le nombre maximal de caractères pour le nom
de la publication est 60.
Remarque : pour éviter tout problème, utilisez uniquement des caractères alphanumériques ou numériques dans le
nom de la publication. N’utilisez pas de caractères spéciaux, tels que l’apostrophe (’) sous peine de produire des
résultats inattendus, tels que le message d’erreur « [svr.InvalidParameter] ».
Version du lecteur de contenu Si vous souhaitez spécifier une version différente de lecteur de contenu pour le folio,
sélectionnez la version appropriée. Vous pouvez sélectionner une version plus récente, mais pas une version
antérieure. Pour cibler une version antérieure, créez un folio.
Remarque : si vous modifiez un folio qui a été créé avant la version v20, assurez-vous que vous spécifiez un paramètre
de version du lecteur de contenu.
Reliure sur le bord droit Sélectionnez cette option pour afficher les articles de droite à gauche et non pas de gauche
à droite dans le lecteur de contenu. Elle est particulièrement importante pour les langues asiatiques.
Aperçu de la couverture Une image d’aperçu représente chaque folio ajouté à la bibliothèque du lecteur de
contenu. Indiquez les images d’aperçu au format portrait et celles au format paysage. Créez des images de
couverture sous la forme de fichiers JPG ou PNG de 72 ppp en utilisant les mêmes dimensions en pixels que celles
du périphérique cible, par exemple 1 024 x 768.
4 Pour modifier d’autres propriétés de folio pour la publication d’un folio, choisissez Folio Producer dans le menu
du panneau Folio Builder, puis spécifiez les paramètres dans l’organiseur Folio Producer. Voir « Organiseur Folio
Producer » à la page 108
Nom du folio Le nom du folio s’affiche dans Folio Producer et dans le panneau Folio Builder, mais pas dans le
lecteur de contenu. Si vous créez des rendus pour des périphériques différents, assurez-vous que les réglages portant
sur le nom du folio sont identiques pour tous les rendus.
Nom de la publication Ce nom s’affiche dans la bibliothèque et dans la barre de navigation du lecteur de contenu.
Le nombre maximal de caractères pour le nom de la publication est 60.
Numéro du folio Il peut s’agir d’un numéro ou d’une description, comme « Mai 2013 ». Le nombre maximal de
caractères pour le numéro du folio est 60.
UTILISATION DE DIGITAL PUBLISHING SUITE 84
Folios et articles
Dernière mise à jour le 1/2/2013
Le nom de la publication et le numéro du folio s’affichent dans le lecteur.
Date de publication Ce paramètre détermine l’ordre des folios dans la bibliothèque. Les folios les plus récents sont
affichés en haut. La date de publication revêt une importance particulière dans les lecteurs de contenu pour les
abonnements, car ce point de référence est utilisé pour définir la période pendant laquelle les clients ont droit
d’accéder aux folios. Pour obtenir des résultats optimaux, sélectionnez manuellement un paramètre de date de
publication.
ID du produit L’ID de produit spécifié lorsque vous avez publié le folio s’affiche. Vous ne pouvez pas modifier
directement ce champ. L’ID de produit est particulièrement important pour les folios de vente au détail. Il relie le
folio à l’ID de produit d’achat In-app dans la boutique d’applications. Le nombre maximal de caractères pour l’ID
de produit est 60.
Publié Une coche apparaît dans la colonne Publié si le folio est publié.
Verrouillé Sélectionnez cette option pour empêcher quiconque de télécharger une nouvelle version de l’article ou
de modifier ses métadonnées. L’icône « Verrouillé » apparaît en regard de l’article dans le panneau Folio Builder de
toute personne ayant accès au folio.
UTILISATION DE DIGITAL PUBLISHING SUITE 85
Folios et articles
Dernière mise à jour le 1/2/2013
Aperçus de la couverture Spécifiez des fichiers .png ou .jpg pour les images qui apparaissent dans la bibliothèque
du lecteur de contenu.
Description La description apparaît dans la bibliothèque des lecteurs et dans la barre de navigation du lecteur.
Filtre de la bibliothèque Entrez le nom du filtre pour chaque folio dans votre application. Le nombre maximal de
caractères pour le filtre de bibliothèque est 60. Voir « Création de filtres de bibliothèque » à la page 110.
Reliure sur le bord droit Cette option de la zone des détails du folio a pour effet d’afficher les articles de droite à
gauche et non pas de gauche à droite dans le lecteur de contenu. Elle est particulièrement importante pour les
langues asiatiques.
Date de couverture La date de couverture est une forme de contrôle supplémentaire des métadonnées qui donne
plus de contrôle sur les droits directs à certains éditeurs d’entreprise.
Création de folios hors ligne
Un folio hors ligne, ou local, n’est pas téléchargé vers le service acrobat.com sur le Web. La création d’un tel folio est
particulièrement utile lorsque vous n’êtes pas connecté à Internet ou que le service acrobat.com est temporairement
indisponible.
Vous ne pouvez pas convertir un folio téléchargé en folio hors ligne.
Une icône indique que le folio est hors ligne.
1 Pour créer un folio hors ligne, effectuez l’une des opérations suivantes :
• Cliquez sur Créer un nouveau folio dans le panneau Folio Builder lorsque vous n’êtes pas connecté.
• Cliquez sur Créer un nouveau folio dans le panneau Folio Builder, puis sélectionnez Créer le folio hors ligne.
2 Ajoutez des articles et modifiez le folio.
Vous pouvez prévisualiser les folios hors ligne sur votre bureau ou à l’aide de l’option Aperçu sur le périphérique.
Voir la section « Aperçu des folios et des articles » à la page 98.
UTILISATION DE DIGITAL PUBLISHING SUITE 86
Folios et articles
Dernière mise à jour le 1/2/2013
Lorsque vous prévisualisez ou téléchargez un folio hors ligne, celui-ci est automatiquement mis à jour afin de
prendre en compte les modifications apportées aux documents source InDesign. Il n’est pas obligatoire de choisir
Mettre à jour pour mettre à jour un folio hors ligne.
3 Pour télécharger le folio, connectez-vous au panneau Folio Builder, sélectionnez le folio, puis choisissez
Télécharger vers Folio Producer dans le menu de panneau.
Vous pouvez télécharger un folio hors ligne uniquement si les fichiers source sont disponibles.
Une fois que vous téléchargez un folio, vous ne pouvez pas le rendre accessible localement.
Partage de folios
Partagez un folio si vous souhaitez que d’autres personnes puissent le consulter. Si, par exemple, vous créez une
publicité pour un éditeur, vous pouvez partager le folio contenant cette publicité avec cet éditeur. De même, si vous
êtes éditeur, vous pouvez partager un folio avec plusieurs concepteurs pour leur permettre de télécharger des articles.
Dès que vous mettez à jour un article dans le folio partagé, les destinataires sont avertis qu’une mise à jour est
disponible lorsqu’ils ouvrent la bibliothèque dans Adobe Content Viewer. Si vous ne souhaitez pas que les destinataires
voient les mises à jour, annulez le partage du folio.
1 Dans le panneau Folio Builder, sélectionnez un folio.
2 Choisissez Partager dans le menu du panneau Folio Builder.
3 Dans la boîte de dialogue qui apparaît, saisissez les adresses électroniques des personnes avec lesquelles partager le
folio. Utilisez une virgule ou un point-virgule pour séparer les adresses électroniques. Appuyez sur la touche de
tabulation pour passer au champ suivant.
4 Précisez l’objet et le message, puis cliquez sur Partager.
Lorsque les destinataires ouvrent Adobe Content Viewer sur un périphérique mobile, le folio partagé est disponible au
téléchargement.
Si les destinataires ouvrent le folio dans le panneau Folio Builder, l’icône de partage apparaît à côté du nom du
folio. Les destinataires peuvent ouvrir le folio et y ajouter des articles. En revanche, ils ne peuvent pas modifier les
articles existants.
Annuler le partage de folios Pour annuler le partage d’un folio que vous partagiez avec d’autres personnes,
sélectionnez le folio dans le panneau Folio Builder, puis choisissez Annuler le partage dans le menu de panneau.
Sélectionnez les destinataires dont vous souhaitez annuler le partage, puis cliquez sur OK. L’annulation du partage du
folio empêche le téléchargement de celui-ci et le supprime du panneau Folio Builder des destinataires mais elle
conserve les folios téléchargés vers les appareils. Un folio partagé que vous supprimez n’est plus disponible en
téléchargement.
Supprimer un folio partagé avec vous Si vous ne souhaitez plus accéder à un folio qu’un utilisateur partage avec vous,
sélectionnez le folio dans le panneau Folio Builder, puis cliquez sur l’icône corbeille. La suppression du folio partagé
efface vos informations dans la liste des destinataires partagés de son propriétaire.
Suppression d’un folio
Lorsque vous supprimez un folio, vous supprimez l’espace de travail du serveur ainsi que tous les articles présents dans
ce folio, mais pas les documents source. Si vous avez publié un folio dans Distribution Service, utilisez l’organiseur
Folio Producer pour supprimer ce folio. Evitez de supprimer des folios vendus au détail.
1 Si le folio est publié, utilisez le bouton Annuler la publication de l’organiseur Folio Producer afin de supprimer le
folio de Distribution Service.
UTILISATION DE DIGITAL PUBLISHING SUITE 87
Folios et articles
Dernière mise à jour le 1/2/2013
2 Sélectionnez un folio dans le panneau Folio Builder, puis cliquez sur le bouton de la corbeille.
Si, avant sa suppression, un folio a été téléchargé dans un lecteur, ce folio reste dans la bibliothèque du lecteur tant qu’il
n’est pas supprimé.
Création d’articles et de mises en page
Les folios sont composés d’articles. Vous pouvez créer des articles basés sur des documents InDesign ou des
fichiers HTML. Vous pouvez ajouter des articles à un folio de deux manières : en utilisant le bouton Ajouter un article
pour créer des articles à partir des documents ouverts ou en important des articles depuis un dossier.
Création d’un article d’après un document ouvert
Les articles peuvent comprendre une ou deux mises en page pour les orientations portrait et paysage sur le
périphérique mobile. Toutefois, vous devez conserver la cohérence dans la totalité du folio publié. Tous les articles du
folio publié doivent être au format portrait uniquement, paysage uniquement ou à double orientation.
Vue des articles
1 Ouvrez le document InDesign conçu pour la publication numérique (voir la section « Création de publications
numériques » à la page 37).
Les dimensions du document peuvent différer de la taille du folio dans deux cas.
• Les proportions du folio et la mise en forme du document sont identiques. Par exemple, vous pouvez ajouter à
un folio des documents de 1 024 x 768 définis sur une taille de folio de 2 048 x 1 536 car les proportions sont
égales à 4:3.
• Le document est conçu pour le défilement lisse. Par exemple, si vous créez un document de 1 024 x 2 000
contenant une seule page, le défilement lisse doit être défini pour l’article ajouté.
2 Dans le panneau Folio Builder, créez ou ouvrez le folio dans lequel l’article s’affiche.
3 Dans la vue des articles du panneau Folio Builder, cliquez sur Ajouter.
UTILISATION DE DIGITAL PUBLISHING SUITE 88
Folios et articles
Dernière mise à jour le 1/2/2013
4 Définissez les options suivantes, puis cliquez sur le bouton OK.
Nom de l’article Indiquez le nom de l’article. Le nom de l’article ne s’affiche pas dans le lecteur. Le nom de l’article
est utilisé pour créer des liens entre les articles. Par conséquent, utilisez un nom, tel que « Guide_ville » au lieu de
« guide_ville_h.indd ». Le nombre maximal de caractères pour le nom de l’article est 60.
Format de l’article Attribuez un format d’image à l’article. Par exemple, vous pouvez attribuer le format PDF à un
article afin de permettre aux utilisateurs d’effectuer un zoom d’un mouvement de pincement avec les doigts. Voir
Differences Between JPG, PNG, and PDF Image Formats.
Qualité JPEG Si le paramètre Automatique ou PNG est sélectionné pour l’option Format d’image, précisez la
qualité JPEG. La qualité et la taille du fichier augmentent proportionnellement.
Défilement lisse Définissez le défilement lisse pour l’article et non uniquement pour la mise en page que vous
ajoutez. Ainsi, si vous ajoutez une mise en page verticale dans un folio à double orientation, choisissez Dans les deux
sens si les deux mises en page sont à défilement lisse. Sélectionnez Horizontal uniquement ou Vertical uniquement
s’il s’agit d’un article à orientation unique ou si une seule mise en page est dotée de défilement lisse.
Remarque : lorsque vous sélectionnez une option de défilement lisse dans InDesign CS6, vous pouvez spécifier des
variantes de mises en page. Si votre document à défilement lisse ne contient qu’une seule mise en page, choisissez la
mise en page qui convient, puis l’option Aucune pour l’autre mise en page que vous pourrez ajouter ultérieurement.
Ajout d’une mise en page à un article
Les documents InDesign CS6 peuvent inclure plusieurs mises en page. Lorsque vous ajoutez un article, vous pouvez
spécifier les mises en forme horizontale et verticale. Si vous utilisez InDesign CS5 ou CS5.5, ou si vous avez créé une
seule mise en page dans InDesign CS6, vous pouvez ajouter une nouvelle mise en page à partir d’un autre document.
Si l’article s’affiche dans un folio à double orientation, il nécessite alors une seconde mise en page.
1 Ouvrez le document InDesign créé dans une autre orientation de mise en page que celle de l’article existant.
2 Dans le panneau Folio Builder, cliquez deux fois sur l’article auquel vous souhaitez ajouter la seconde mise en page.
3 Dans la vue Articles du panneau Folio Builder, cliquez sur Ajouter une mise en forme. Si le document comporte
plusieurs mises en page, spécifiez la mise en page qui convient.
Importation d’articles InDesign
Si vous utilisez la structure et les conventions d’appellation des fichiers adéquates, vous pouvez importer un seul article
ou un ensemble d’articles. Actuellement, si le document InDesign CS6 comprend plusieurs mises en page, vous ne
pouvez pas l’importer sous forme d’article. Utilisez l’option Ajouter un article à la place.
Lorsque vous importez des articles, leurs proportions doivent correspondre à celles du folio si vous ne sélectionnez pas
l’option Défilement lisse.
1 Créez un ou plusieurs dossiers contenant des documents InDesign (voir la section « Structure des dossiers pour les
articles importés » à la page 50).
2 Dans le panneau Folio Builder, ouvrez le folio dans lequel le ou les articles s’afficheront.
3 Dans la vue Articles du panneau Folio Builder, choisissez Importer un article dans le menu du panneau.
UTILISATION DE DIGITAL PUBLISHING SUITE 89
Folios et articles
Dernière mise à jour le 1/2/2013
Boîte de dialogue Importer un article
4 Utilisez l’une des méthodes suivantes :
• Choisissez Importer un seul article, cliquez sur l’icône du dossier Emplacement, puis spécifiez un dossier
d’article.
• Choisissez Importer plusieurs articles, cliquez sur l’icône du dossier Emplacement, puis spécifiez un dossier de
folio contenant des dossiers d’article.
5 Sélectionnez un paramètre de défilement lisse pour l’article. Par exemple, si vous importez un article pour un folio
à double orientation et que vous voulez lisser le défilement uniquement pour la mise en forme horizontale,
choisissez Orientation horizontale.
6 Définissez les paramètres de format d’image, puis cliquez sur OK.
Si les dossiers de votre article contiennent des images .png sur le même niveau que les documents InDesign, les images
sont utilisées en tant qu’icônes de la table des matières. Si vous importez plusieurs articles dans lesquels le dossier du
folio inclut un fichier sidecar.xml, ce fichier détermine l’ordre des articles et renseigne les propriétés de l’article. Voir
la section « Création d’un fichier annexe de métadonnées pour l’importation d’articles » à la page 52.
Si l’importation de vos articles ne se déroule pas correctement, voir Résolution des problèmes de téléchargement des
articles dans le panneau Folio Builder.
Importation d’articles HTML
Vous pouvez importer un article HTML dans un folio afin qu’il soit affiché dans le lecteur de contenu sous la forme
d’un article. Sensiblement moins volumineux, les articles HTML conviennent mieux aux publications hebdomadaires
et aux articles denses à structure simple. Les articles HTML peuvent également inclure l’interactivité non disponible
dans le panneau Incrustations de folio.
UTILISATION DE DIGITAL PUBLISHING SUITE 90
Folios et articles
Dernière mise à jour le 1/2/2013
Pour plus dı’informations sur l’utilisation d’Adobe Edge pour créer du contenu HTML pour DPS, voir l’article Raghu
Thricovil Enhance your DPS Folios with HTML animations using Adobe Edge.
1 Créez un dossier contenant des fichiers HTML.
Assurez-vous d’inclure dans le dossier uniquement les fichiers que vous utilisez. Tous les fichiers du dossier sont
téléchargés, même s’ils ne sont pas utilisés.
2 Si vous importez l’article HTML dans un dossier à orientation unique, ajoutez un suffixe _h ou _v dans le fichier
.html, par exemple index_h.html.
Si vous ne souhaitez pas ajouter un suffixe, l’article est importé sous forme d’un article à double orientation. Si vous
essayez d’afficher l’aperçu ou de publier le folio à orientation unique, un message d’erreur s’affiche.
3 Dans le panneau Folio Builder, ouvrez le folio qui contiendra l’article HTML.
4 Dans la vue Articles du panneau Folio Builder, choisissez Importer un article dans le menu du panneau.
5 Choisissez Importer un seul article, cliquez sur l’icône du dossier Emplacement , puis spécifiez un
dossier HTML.
6 Spécifiez des paramètres supplémentaires, tels que Défilement lisse, puis cliquez sur OK.
Si vous modifiez les fichiers HTML, sélectionnez l’article HTML dans le panneau Folio Builder et choisissez Mettre à jour.
Remarque : si vous modifiez un folio qui a été créé avant la version v20, ouvrez la boîte de dialogue Propriétés du folio
et spécifiez un paramètre de version pour le lecteur de contenu. Si le paramètre Non spécifié est sélectionné, vous ne
pouvez pas importer un article HTML pour le moment.
Conditions requises pour les articles HTML
• Vous pouvez créer soit un fichier HTML unique qui s’applique aux orientations portrait et paysage, soit des
fichiers HTML distincts pour les deux orientations. Si vous utilisez des fichiers HTML distincts pour les
orientations portrait et paysage, ajoutez les suffixes _v et _h aux noms de fichier HTML (par exemple,
« index_h.html »). Si vous créez un folio à orientation unique, un seul fichier HTML est nécessaire. Ajoutez le
suffixe _h ou _v pour le fichier HTML dans un folio à orientation unique.
• Pour le moment, les fichiers DHTML (Dynamic HTML) ne sont pas totalement pris en charge.
• S’agissant de la structure de fichiers, une méthode consiste à importer tous les éléments graphiques et scripts
associés au fichier HTML dans les dossiers individuels de l’article. Une autre méthode consiste à importer les
éléments graphiques et les scripts associés pour l’ensemble du folio dans un fichier HTMLResources.zip. Importez
le fichier HTMLResources.zip dans le folio à partir du panneau Folio Builder ou Folio Producer sur le Web. (voir
la section « Importation des ressources HTML » à la page 113).
Exemple de dossier HTMLResources
UTILISATION DE DIGITAL PUBLISHING SUITE 91
Folios et articles
Dernière mise à jour le 1/2/2013
• Assurez-vous d’utiliser des chemins relatifs dans votre code HTML. Si vous créez un lien vers une image au même
niveau que le fichier HTML, utilisez l’instruction suivante :
Si vous créez un lien vers une image dans le dossier HTMLResources, utilisez l’instruction suivante :
Pour plus d’informations sur la création d’hyperliens vers et depuis les articles HTML, voir la section « Création
d’hyperliens de redirection pour les articles HTML » à la page 61.
Création d’articles HTML pour les lecteurs de contenu Android
Pour obtenir des conseils et connaître les exigences en matière de création d’articles HTML pour les lecteurs de
contenu Android, consultez l’article intitulé Create HTML articles for Android Viewers (Création d’articles HTML
pour les lecteurs de contenu Android).
Ressources HTML5
• Pour plus d’informations sur la création d’articles par le biais de HTML5, consultez l’article de Johannes Henseler
intitulé A single file HTML5 framework (Un cadre HTML5 dans un fichier unique).
• Pour plus d’informations sur l’utilisation de CreateJS pour créer du code HTML5, reportez-vous à Toolkit pour
CreateJS.
• Pour plus d’informations sur les polices disponibles dans les articles HTML et les incrustations Affichage Web sur
l’iPad, consultez la page www.michaelcritz.com/2010/04/02/fonts-for-ipad-iphone/.
• Rufus Deuchler a créé un didacticiel vidéo sur l’utilisation d’Adobe Museto pour créer du contenu HTML pour les
publications numériques.
Création de vignettes de défilement pour les articles HTML
Pour les articles InDesign, le lecteur de contenu génère automatiquement les vignettes qui apparaissent lorsque vous
faites glisser la barre de défilement. Cependant, la génération des vignettes prend plus de temps pour les
articles HTML, ce qui peut entraîner une dégradation de leur rendu. Pour améliorer les performances des vignettes
dans les articles HTML, vous pouvez ajouter manuellement des fichiers image au dossier des articles HTML.
Créez des fichiers PNG que vous nommerez « scrubberthumbnail_h.png » et « scrubberthumbnail_v.png » (vous
pouvez aussi utiliser les suffixes _l et _p). Ajoutez-les au dossier des articles HTML. Ces images peuvent être définies
dans n’importe quelle taille mais elles seront réduites proportionnellement à une hauteur de 166 pixels. Notez que les
vignettes ont une taille de 221 x 166 pixels en mode paysage, et une taille de 125 x 166 pixels en mode portrait.
Comportement des vidéos dans les articles HTML similaire aux incrustations vidéo plein écran
Lorsque vous créez un article HTML à orientation simple avec des liens de vidéos, le pivotement de l’appareil peut faire
pivoter également la vidéo en cours de lecture. En outre, lorsque la vidéo est terminée, le navigateur intégré grâce
auquel elle a été lue peut être fermé. Pour activer ce comportement, utilisez le préfixe « videofile:// » dans le lien de
vidéo HTML.
Pour des exemples de comportements vidéo, voir la rubrique Effets de l’application DPS Tips gratuite.
Comportement de vidéo standard Dans cet exemple, la vidéo est lue dans un navigateur intégré et ne pivote pas dans
un folio à orientation unique.
Play Video
ou
UTILISATION DE DIGITAL PUBLISHING SUITE 92
Folios et articles
Dernière mise à jour le 1/2/2013
Play Video
Comportement amélioré de la vidéo Dans cet exemple, la vidéo pivote correctement dans un folio à orientation
unique et retourne à l’article lorsque la vidéo est terminée.
Play Video
ou
Play Video
JavaScript Vous pouvez également déclencher ce comportement via JavaScript à l’aide de la fonction
playFullscreenVideo sur l’objet window.
Play Video
ou
Play Video
Vidéo en flux continu Cet exemple lit une vidéo en flux continu.
Play Video
Voir aussi
« Lien d’accès aux ressources dans le dossier des ressources HTML » à la page 62
« Incorporation de polices dans les articles HTML » à la page 113
Gestion des articles
Utilisez le menu du panneau Folio Builder pour mettre à jour, copier et renommer des articles.
Menu du panneau Folio Builder
UTILISATION DE DIGITAL PUBLISHING SUITE 93
Folios et articles
Dernière mise à jour le 1/2/2013
Modification des propriétés de l’article
Les propriétés d’article que vous définissez déterminent l’aspect de l’article dans le lecteur de contenu. Vous pouvez
modifier les propriétés d’un article en utilisant soit l’option Propriétés de l’article dans le panneau Folio Builder, soit
l’éditeur Folio Producer.
Propriétés de l’article
A. Description B. Rubrique C. Titre D. Signature
1 Dans le panneau Folio Builder, sélectionnez un article.
2 Choisissez Propriétés de l’article dans le menu du panneau Folio Builder.
3 Définissez les options suivantes, puis cliquez sur OK.
Titre Spécifiez le titre de l’article tel qu’il doit apparaître dans le lecteur. Le titre est différent du nom de l’article, qui
apparaît dans le panneau Folio Builder. Le nom de l’article est utilisé pour créer des liens entre les articles. Le titre
s’affiche dans la table des matières et dans les vues de navigation de folio. Le nombre maximal de caractères pour le
titre est 60.
Signature Indiquez le nom de l’auteur. Le nombre maximal de caractères pour la signature est 40.
Rubrique Titre de la section d’un magazine, comme Revue, Dossiers ou Editorial. La rubrique s’affiche dans la table
des matières et dans les vues de navigation de folio. Le nombre maximal de caractères pour la rubrique est 35.
Description Décrivez l’article. La description s’affiche lorsque vous visualisez le folio en mode Parcourir. La
description s’affiche dans la table des matières et dans les vues de navigation du folio. Le nombre maximal de
caractères pour la description est 120.
Publicité Sélectionnez cette option pour marquer l’article comme une publicité à inclure dans le rapport d’analyse.
Masquer la table des matières Sélectionnez cette option pour empêcher l’affichage de l’article lorsque l’utilisateur
appuie sur le bouton de la table des matières dans la barre de navigation du lecteur de contenu.
B
A
C
D
UTILISATION DE DIGITAL PUBLISHING SUITE 94
Folios et articles
Dernière mise à jour le 1/2/2013
Défilement lisse Dans la colonne Défilement lisse, indiquez si chaque article défile en continu ou en utilisant le
magnétisme de la page. La colonne Défilement lisse fonctionne uniquement dans le sens vertical pour un glissement
de bas en haut et inversement. Le document ne peut contenir plusieurs pages. Vous pouvez appliquer le paramètre
Défilement lisse uniquement au mode paysage, uniquement au mode portrait ou aux deux modes simultanément
(voir la section « Défilement lisse » à la page 38).
Glissement horizontal uniquement Lorsque vous sélectionnez cette option pour un article, les utilisateurs
parcourent l’article en le faisant glisser vers la gauche et vers la droite et non vers le haut et le bas. Auparavant, cette
option était appelée « Aplatir» (voir la section « Glissement horizontal des articles » à la page 39).
Aperçu de la table des matières Lorsque l’utilisateur appuie sur le bouton Table des matières dans la barre de
navigation du lecteur, l’icône correspondante de 70 x 70 pixels apparaît en regard de chaque article. Une icône par
défaut de table des matières est générée automatiquement à partir de la première page de l’article. Pour utiliser une
autre icône, cliquez sur l’icône représentant un dossier, puis choisissez un fichier PNG. Pour réduire la taille du
folio, utilisez des fichiers de 70 x 70 pixels de format PNG 8 bits.
UTILISATION DE DIGITAL PUBLISHING SUITE 95
Folios et articles
Dernière mise à jour le 1/2/2013
Table des matières du lecteur de contenu
UTILISATION DE DIGITAL PUBLISHING SUITE 96
Folios et articles
Dernière mise à jour le 1/2/2013
4 Pour modifier d’autres propriétés d’article introuvables dans la boîte de dialogue Propriétés de l’article, utilisez
l’éditeur Folio Producer. Choisissez Folio Producer dans le menu du panneau pour ouvrir l’organiseur
Folio Producer. Sélectionnez le folio, puis choisissez Ouvrir. Sélectionnez ensuite l’article et modifiez les propriétés
suivantes. Voir « Editeur Folio Producer » à la page 111.
Ordre Saisissez des numéros afin de réorganiser les articles.
Verrouillé Verrouillez un article afin d’empêcher sa mise à jour.
Priorité de téléchargement Lorsque les clients téléchargent le lecteur personnalisé, ils peuvent consulter le fichier
pendant son téléchargement. Les articles sont téléchargés du premier au dernier, sauf si vous modifiez la priorité
de téléchargement.
Balises Elles s’affichent lorsque vous utilisez le mode Parcourir du lecteur de contenu. Le nombre maximal de
caractères pour les balises est 75.
Protégé Cette option détermine si un article est inclus avec le partage sur les réseaux sociaux. Si un article est
protégé, il n’est pas téléchargé sur le serveur Web pour affichage dans un navigateur de bureau. Lorsque vous
désélectionnez Protégé, l’article est téléchargé sur un serveur pour affichage. Voir « Utilisation du partage sur les
réseaux sociaux » à la page 152.
Autoriser l’accès aux informations d’habilitation Si vous avez un compte Enterprise, vous pouvez créer un
article HTML pour afficher un contenu différent pour chaque utilisateur selon la façon dont le folio a été obtenu.
Voir « Contenu Web en incrustation » à la page 73.
Section Si vous scindez un folio en sections comme Sports, Business et Style, spécifiez un nom de section pour
chaque article dans le folio. Le nombre maximal de caractères pour la section est 60. Voir « Création de sections »
à la page 112.
Modification et mise à jour d’un article
Lorsque vous créez un article ou une mise en page d’article, le contenu du document InDesign est téléchargé vers
l’espace de travail du serveur. Lorsque vous modifiez et enregistrez un document faisant partie d’un article, les
changements sont enregistrés localement jusqu’à la mise à jour de l’article. Vous pouvez sélectionner et mettre à jour
plusieurs articles.
1 Pour modifier un document, double-cliquez sur une mise en page dans le panneau Folio Builder, puis effectuez les
modifications. Vous pouvez utiliser n’importe quelle méthode pour ouvrir le document.
Il n’est pas nécessaire d’être connecté pour modifier un document d’article.
2 Après avoir modifié et enregistré le document, connectez-vous au panneau Folio Builder, puis sélectionnez l’article
contenant le document modifié.
Si vous avez modifié des fichiers sources de plusieurs articles, vous pouvez maintenir la touche Maj ou
Ctrl/Commande pour sélectionner plusieurs articles afin de les mettre à jour.
3 Choisissez l’option Mettre à jour dans le menu du panneau Folio Builder.
Lors de la mise à jour d’un article, les deux mises en page sont actualisées. Si vous souhaitez que la mise à jour de l’article
soit disponible dans un lecteur de contenu publié, utilisez l’organiseur Folio Producer pour mettre le folio à jour.
Si vous utilisez le même document source dans plusieurs folios, veillez à mettre à jour l’article dans chacun d’entre eux.
UTILISATION DE DIGITAL PUBLISHING SUITE 97
Folios et articles
Dernière mise à jour le 1/2/2013
Copie d’un article dans un autre folio
Une fois l’article créé d’après un document, il est inutile de créer un nouvel article pour un autre folio. Il vous suffit de
copier l’article d’un folio vers l’autre.
1 Dans le panneau Folio Builder, ouvrez le folio contenant l’article et sélectionnez-le.
2 Choisissez l’option Copier vers dans le menu du panneau Folio Builder.
3 Dans la boîte de dialogue qui apparaît, choisissez le folio cible, puis cliquez sur OK.
Vous pouvez également utiliser Folio Producer pour copier des articles entre différents folios.
Attribution d’un nouveau nom à un article
L’attribution d’un nouveau nom à un article est susceptible de rompre les liens qui mènent à l’article renommé.
1 Dans le panneau Folio Builder, sélectionnez un article.
2 Choisissez l’option Renommer dans le menu du panneau Folio Builder, puis saisissez le nouveau nom.
Suppression d’un article
Lorsque vous supprimez un article, vous l’effacez du folio et de l’espace de travail du serveur. Toutefois, les documents
source InDesign ne sont pas supprimés.
1 Dans le panneau Folio Builder, sélectionnez un article.
2 Cliquez sur le bouton de la corbeille, puis cliquez sur Supprimer.
Modification de l’ordre des articles
Pour modifier l’ordre des articles, faites-les glisser dans le panneau Folio Builder, ou utilisez l’éditeur Folio Producer.
Voir « Editeur Folio Producer » à la page 111.
Le fichier sidecar.xml permet également de réorganiser les articles et de mettre à jour les métadonnées. Voir « Création
d’un fichier annexe de métadonnées pour l’importation d’articles » à la page 52.
Réédition du lien des articles vers les fichiers sources
Si vous déplacez les documents sources d’un article dans un nouveau dossier ou que vous les transférez sur un autre
ordinateur, vous pouvez restaurer le lien entre les fichiers sources et les mises en forme de l’article dans le panneau
Folio Builder.
1 Si vous transférez les fichiers sur un autre ordinateur, veillez à restaurer les liens rompus. Assurez-vous également
que les incrustations interactives pointent vers le fichier ou le dossier approprié.
Si l’incrustation ne pointe plus vers l’emplacement approprié, un message d’erreur indique que l’emplacement de
la ressource n’est pas valide quand vous créez l’article.
2 Sélectionnez Rééditer le lien dans le menu du panneau Folio Builder.
3 Spécifiez depuis quels emplacements de fichiers rééditer le lien avec une mise en page ou avec les deux.
UTILISATION DE DIGITAL PUBLISHING SUITE 98
Folios et articles
Dernière mise à jour le 1/2/2013
Aperçu des folios et des articles
Utilisez Adobe Content Viewer pour créer un aperçu des folios. Adobe Content Viewer est disponible en tant
qu’application de bureau (appelée « Desktop Viewer ») ou application de périphérique mobile. L’application de bureau
Desktop Viewer s’installe automatiquement lorsque vous installez les outils Folio Producer. Le lecteur des
périphériques mobiles peut être téléchargé dans iPad App Store, Google Play Store et Amazon Appstore. Recherchez
« Content Viewer » dans la boutique.
Lorsque vous créez un folio ou un article, vous pouvez afficher un aperçu à l’aide de Desktop Viewer ou du lecteur de
votre périphérique mobile. Toutefois, dans le cas des folios, les articles du folio doivent avoir la même proportion et la
même orientation de page. Par exemple, si votre folio inclut un article horizontal uniquement et des articles à double
orientation, vous ne pouvez pas afficher un aperçu du folio. En revanche, vous pourrez afficher un aperçu de l’article.
Voir aussi
« DPS App Builder » à la page 122
Utilisation de Desktop Viewer pour prévisualiser le contenu
Le lecteur Adobe Content Viewer for Desktop (également appelé Desktop Viewer) est une application AIR qui vous
permet de prévisualiser des folios sur votre bureau.
Les articles exportés au format d’image PDF ne sont pas pris en charge par Desktop Viewer.
1 Dans le panneau Folio Builder d’InDesign, sélectionnez le folio ou l’article dont vous souhaitez afficher l’aperçu.
Si vous sélectionnez un folio, vous pouvez prévisualiser tous les articles de ce folio. Si vous sélectionnez un article,
seul celui-ci peut être prévisualisé.
2 Utilisez le bouton Aperçu au bas du panneau. Choisissez une option dans le menu Afficher pour faire pivoter ou
redimensionner le contenu. Pour simuler un zoom avant sur une incrustation comme un panorama, appuyez sur
les touches + ou -.
Vous pouvez également prévisualiser un document en choisissant Fichier > Aperçu du folio ou en cliquant sur Aperçu
dans le panneau Folio Overlays. Vous n’avez pas besoin de créer un article au préalable. Cette méthode est
particulièrement utile lorsque votre ordinateur n’est pas connecté à Internet. Cependant, l’aperçu ne contient qu’une
seule mise en page. Vous pouvez prévisualiser les deux mises en page dans le panneau Folio Builder.
Aperçu des folios sur l’iPad ou l’iPhone
Adobe Content Viewer pour iPad/iPhone est une version générique du lecteur de contenu utilisé pour tester le contenu
numérique que vous créez sur l’iPad ou l’iPhone. Le lecteur de contenu est mis à jour chaque fois que les outils Folio
Producer sont mis à jour.
Remarque : cependant, lorsqu’un nouveau jeu d’outils est publié, les folios créés avec cette nouvelle version de lecteur
peuvent ne pas fonctionner correctement tant qu’Apple n’a pas approuvé la nouvelle version d’Adobe Content Viewer. Si
vous essayez d’ouvrir le folio, le message « Mettez à jour votre application » s’affiche. Si vous avez un compte professionnel
ou d’entreprise, vous pouvez créer une version personnalisée d’Adobe Content Viewer. (Voir « Création d’une instance
personnalisée d’Adobe Content Viewer pour iPad et l’iPhone » à la page 139). Si ce n’est pas le cas, créez un folio en
utilisant une version précédente prise en charge du lecteur.
UTILISATION DE DIGITAL PUBLISHING SUITE 99
Folios et articles
Dernière mise à jour le 1/2/2013
La bibliothèque d’Adobe Content Viewer recherche les folios à deux emplacements : le serveur Folio Producer et
Distribution Service. Folio Producer (hébergé par acrobat.com) contient tous les folios qui apparaissent dans le
panneau Folio Builder. Distribution Service contient tous les folios publiés. Si une bande bleue apparaît avec une icône
d’éclair dans la vignette du folio, cela indique qu’il s’agit d’un folio téléchargé depuis le serveur Folio Producer. Une
bande bleue avec une icône de prise électrique indique un folio chargé via la fonction d’aperçu sur le périphérique. Les
folios publiés avec l’état Vente au détail n’apparaissent pas dans Adobe Content Viewer.
Si une bande bleue apparaît avec une icône d’éclair, cela indique qu’il s’agit d’un folio hébergé sur le serveur Folio Producer.
1 Téléchargez ou mettez à jour Adobe Content Viewer sur votre périphérique à partir de l’Apple Store.
2 Lancez Adobe Viewer sur l’iPad, puis connectez-vous au moyen de l’ID Adobe que vous utilisez pour vous
connecter au panneau Folio Builder.
Vous pouvez maintenant télécharger et prévisualiser les folios auxquels vous avez accès.
Remarque : si votre folio n’apparaît pas dans la bibliothèque du lecteur, vérifiez que le folio n’inclut pas d’article dont
l’orientation ne correspond pas à celle du folio, par exemple un article à orientation paysage uniquement dans un folio
à double orientation.
Voir aussi
« Utilisation de la fonction Aperçu sur le périphérique » à la page 101
UTILISATION DE DIGITAL PUBLISHING SUITE 100
Folios et articles
Dernière mise à jour le 1/2/2013
Navigation à l’aide du lecteur de contenu
Les techniques de navigation suivantes fonctionnent si vous utilisez Adobe Content Viewer en version générique ou
un lecteur de contenu personnalisé. Avec la version v25, plusieurs modifications ont été apportées au lecteur.
• Faites pivoter le périphérique mobile pour afficher la version horizontale ou verticale du fichier.
• Faites glisser vers le haut et vers le bas pour lire un article. Faites glisser vers la gauche et la droite pour passer à un
autre article (ou à d’autres pages s’il s’agit d’un article aplati).
• Touchez les zones interactives pour lire des séquences vidéo, faire pivoter les images à 360° et activer d’autres
éléments interactifs.
• Touchez une zone qui n’est pas interactive pour afficher les barres de navigation. Appuyez sur le bouton de
bibliothèque pour atteindre la bibliothèque dans une application à éditions multiples. Touchez le bouton Retour
pour revenir à l’affichage précédent. Touchez l’icône Table des matières afin de visualiser la table des matières.
Faites glisser la barre de défilement pour faire défiler les images vignettes en mode de navigation.
• Touchez le titre dans la barre de navigation pour revenir au premier article. Touchez deux fois le titre pour basculer
entre le titre et le titre avec l’affichage de version. Touchez trois fois le titre pour réinitialiser la publication de sorte
que chaque article commence à la première page et non à la page affichée précédemment.
Adobe Content Viewer pour iPad
A. Bouton Bibliothèque B. Bouton Retour C. Bouton Table des matières D. Barre de défilement
A B C
D
UTILISATION DE DIGITAL PUBLISHING SUITE 101
Folios et articles
Dernière mise à jour le 1/2/2013
Suppression de folios du lecteur de contenu
Pour supprimer un folio du lecteur, appuyez sur l’icône représentant un engrenage dans le coin supérieur droit de la
bibliothèque, sélectionnez l’option de suppression des publications de l’iPad, puis sélectionnez et supprimez des folios.
(Dans les lecteurs antérieurs à la version v25, appuyez sur le bouton Archiver.) Tant que le folio est disponible sur le
serveur, il reste disponible au téléchargement dans le lecteur. Si le folio n’est plus disponible sur le serveur, le folio
disparaît de la bibliothèque.
Pour supprimer un folio de la bibliothèque iPhone, effectuez un glissement sur le nom du folio de la droite vers la
gauche. Au cours du glissement, le bouton d’affichage est remplacé par le bouton d’archivage.
Utilisation du lecteur de contenu Android pour prévisualiser le contenu
Adobe Content Viewer pour Android est une version générique du lecteur de contenu utilisé pour tester le contenu
numérique que vous créez sur les périphériques mobiles exécutant Android 2.2 ou version ultérieure. Le lecteur de
contenu Android est mis à jour chaque fois que les outils Folio Producer sont mis à jour.
Les lecteurs sont actuellement disponibles uniquement sur les tablettes Android Large et XLarge, mais pas sur les
tablettes petites ou normales.
1 Téléchargez Adobe Content Viewer depuis Android Market ou Amazon Appstore.
2 Lancez Adobe Viewer sur le périphérique Android, puis connectez-vous à l’aide de l’ID Adobe que vous utilisez
pour vous connecter au panneau Folio Builder.
Vous pouvez maintenant télécharger et prévisualiser les folios auxquels vous avez accès.
Voir aussi
« Différences entre les lecteurs de contenu iOS et Android » à la page 50
Utilisation de la fonction Aperçu sur le périphérique
Au lieu de télécharger des folios depuis le serveur, vous pouvez utiliser la fonction Aperçu sur le périphérique pour
copier un folio directement depuis votre ordinateur sur le périphérique mobile.
Aperçu sur le périphérique pour iPad et iPhone (Mac OS uniquement)
1 Connectez l’iPad ou l’iPhone à l’ordinateur.
2 Sur l’iPad ou l’iPhone, démarrez le lecteur de contenu Adobe Content Viewer personnalisé créé avec DPS App
Builder.
Vous n’avez pas besoin d’ouvrir de session.
3 Pour prévisualiser un folio, dans le panneau Folio Builder dans InDesign, sélectionnez le folio à prévisualiser, puis
choisissez Aperçu sur [nom du périphérique] dans le menu Aperçu dans le bas du panneau.
Le folio prévisualisé est alors copié depuis votre ordinateur sur votre périphérique. Le folio reste sur le périphérique
lorsque vous le déconnectez. Lorsque vous archivez le folio, il est supprimé de la bibliothèque.
4 Pour prévisualiser uniquement la mise en page actuelle, ouvrez le panneau Incrustations de folio et choisissez
Afficher dans le menu Aperçu dans le bas du panneau sur [nom du périphérique].
La mise en page prévisualisée reste sur votre appareil après la déconnexion. Lorsque vous revenez à la bibliothèque,
la mise en page prévisualisée est supprimée.
L’aperçu sur le périphérique à partir du panneau Incrustations de folio affiche uniquement les pages de la mise en
page actuelle. Les variantes de mises en page dans InDesign CS6 ne sont pas incluses dans l’aperçu.
UTILISATION DE DIGITAL PUBLISHING SUITE 102
Folios et articles
Dernière mise à jour le 1/2/2013
Aperçu sur le périphérique pour Android
1 Effectuez les opérations suivantes pour vous assurer que votre périphérique Android peut communiquer avec votre
ordinateur.
• Activez le mode de débogage USB. L’emplacement de l’option Débogage USB dépend du modèle de
périphérique Android. Sur certains appareils, l’option se trouve sous Paramètres > Applications >
Développement.
• (Windows uniquement) Installez les pilotes de périphériques qui permettront à votre périphérique Android de
communiquer avec votre ordinateur. L’aide de Flash Builder contient des informations utiles aux pages
suivantes : Débogage d’une application sur un périphérique Google Android et Installation des pilotes de
périphérique USB pour les périphériques Android (Windows).
2 Connectez votre périphérique Android à votre ordinateur.
3 Lancez Adobe Content Viewer (v1.9 ou ultérieure).
4 Dans le panneau Folio Builder d’InDesign, sélectionnez le folio à prévisualiser, puis choisissez le nom du
périphérique dans le menu Aperçu dans la partie inférieure du panneau.
Le folio est alors copié depuis votre ordinateur sur votre périphérique Android.
103
Dernière mise à jour le 1/2/2013
Chapitre 5 : Assemblage et publication
Production et publication de folios
Le tableau de bord Digital Publishing Suite contient les outils dont les abonnés Professional et Enterprise ont besoin
pour publier des folios et créer des lecteurs personnalisés. Utilisez Folio Producer pour apporter les dernières touches
à votre folio avant de le publier. Utilisez DPS App Builder pour créer un lecteur de contenu personnalisé pour Apple
App Store, Google Play ou Amazon Appstore.
Les abonnés aux éditions Professional et Entreprise peuvent publier des folios et créer des lecteurs de contenu
personnalisés. Si vous n’êtes pas abonné à DPS, vous pouvez utiliser votre abonnement Creative Cloud ou une licence
Single Edition pour publier des lecteurs à publication unique.
Articles connexes
Présentation de la publication
Toutes les personnes qui installent les outils Folio Producer peuvent créer un folio et le partager avec des tiers. Pour
créer un lecteur de contenu personnalisé et le proposer à Apple App Store, Google Play ou Amazon Appstore, vous
devez disposer d’un abonnement Professional ou Enterprise à Digital Publishing Suite, d’un abonnement Creative
Cloud ou d’une licence Single Edition.
Pour obtenir des informations sur l’abonnement à Digital Publishing Suite, voir
www.adobe.com/fr/products/digitalpublishingsuite/.
Types de lecteurs de contenu personnalisés
Adobe Content Viewer vous permet de prévisualiser des folios et de les partager avec d’autres utilisateurs. Pour rendre
les folios disponibles dans une boutique, utilisez DPS App Builder pour créer un lecteur de contenu personnalisé.
Lecteur de contenu pour folio simple
Dans le cas d’un lecteur de contenu pour folio simple, ce dernier est intégré au lecteur. Le lecteur de contenu ne possède
pas de bibliothèque. Pour créer une application simple folio, vous sélectionnez le folio dans le panneau Folio Builder
et choisissez Créer l’application dans le menu du panneau. Ensuite, vous créez l’application et la téléchargez vers
l’Apple Store. Les abonnés Professional et Enterprise peuvent également exporter un fichier .zip en utilisant Folio
Producer Organizer et définir ce fichier .zip en utilisant DPS App Builder.
Pour effectuer cette action : Consultez la section :
Configuration d’ID de compte pour publication (sur abonnement) « Outil Administration de comptes » à la page 144
Comprendre les différents types de lecteurs de contenu « Types de lecteurs de contenu personnalisés » à la page 103
Organiser, modifier et publier des folios « Organiseur Folio Producer » à la page 108
Arranger les articles et modifier les métadonnées « Editeur Folio Producer » à la page 111
Créer un lecteur de contenu avec Single Edition « Présentation de Single Edition » à la page 10
Créer un lecteur de contenu personnalisé à envoyer à une boutique « DPS App Builder » à la page 122
UTILISATION DE DIGITAL PUBLISHING SUITE 104
Assemblage et publication
Dernière mise à jour le 1/2/2013
Actuellement, vous pouvez créer un lecteur de contenu simple folio pour les iPads, mais pas pour les iPhones ni les
périphériques Android.
Un lecteur de contenu pour folio simple ne possède pas de bibliothèque.
Lecteur de contenu pour folios multiples
Dans un lecteur de contenu à folios multiples, vous utilisez DPS App Builder pour créer un lecteur qui sert
essentiellement de shell. Vous utilisez ensuite l’organiseur Folio Producer pour publier les folios dans Adobe
Distribution Service. Les clients utilisent la bibliothèque du lecteur pour télécharger les folios auxquels ils ont droit.
Utilisez un ID Adobe distinct pour chaque lecteur de contenu pour folios multiples que vous créez (voir la section
« Utilisation d’un ID Adobe pour la publication numérique » à la page 6).
UTILISATION DE DIGITAL PUBLISHING SUITE 105
Assemblage et publication
Dernière mise à jour le 1/2/2013
La bibliothèque d’un lecteur de contenu pour folios multiples permet aux clients de télécharger, visualiser et acheter des folios.
Il est possible de créer deux types de folios pour un lecteur de contenu destiné aux folios multiples : gratuit et vente au
détail. Tout folio que vous publiez et défini sur Gratuit et Public apparaît automatiquement dans la bibliothèque du
lecteur personnalisé assorti d’un bouton Télécharger.
Tout folio que vous publiez et défini sur Vente au détail et Public doit être lié à un achat In-App que vous configurez
dans iTunes Connect, App Store Amazon ou Google Play. Utilisez le même ID de produit lorsque vous publiez le folio
et lorsque vous configurez l’achat In-App. Les folios mis en vente au détail apparaissent dans la bibliothèque du lecteur
personnalisé munis d’un bouton Acheter. Les utilisateurs appuient sur Acheter pour se procurer le folio.
Lecteur de contenu avec abonnement à plusieurs folios
Un lecteur de contenu avec abonnements est muni d’un bouton Se connecter et d’une option de bibliothèque qui
permettent aux clients de sélectionner le type d’abonnement souhaité. Par exemple, ils peuvent choisir 3 mois, 6 mois
ou 1 an. Lorsqu’ils se connectent, le lecteur effectue une vérification auprès de la boutique pour savoir quels folios les
clients sont autorisés à télécharger.
Vous pouvez définir un abonnement qui fonctionne avec l’Apple Store ou l’App Store Amazon (les abonnements à
Google Play ne sont pas encore pris en charge). En outre, si vous disposez de l’édition Entreprise, vous pouvez
configurer un serveur de droits personnalisé et offrir aux clients le choix de s’abonner soit via la boutique, soit via votre
service.
UTILISATION DE DIGITAL PUBLISHING SUITE 106
Assemblage et publication
Dernière mise à jour le 1/2/2013
Bibliothèque d’un lecteur de contenu avec abonnements
Lecteur de contenu d’entreprise
Les abonnés d’entreprise peuvent créer des lecteurs iPad en vue d’une distribution interne uniquement. Les lecteurs
de contenu iPad d’entreprise sont distribués dans l’entreprise au lieu d’être téléchargés depuis l’Apple Store. Voir la
section « Création d’un lecteur signé par l’entreprise » à la page 140.
Types de distribution d’applications
Utilisez les méthodes suivantes pour distribuer votre contenu DPS.
Via les services publics de boutiques d’applications Créez une application et soumettez-la à Apple App Store, à
Amazon Appstore ou à Google Play Store.
Via les services publics de boutiques d’applications avec distribution restreinte (édition Enterprise uniquement)
Créez et soumettez une application d’abonnement à la boutique d’Apple, de Google ou d’Amazon. Utilisez un serveur
de droits personnalisé pour déterminer quels utilisateurs folios peuvent télécharger et afficher en fonction de leur
compte de connexion (voir Utilisation d’une distribution restreinte avec Digital Publishing Suite).
Via un serveur privé (édition Enterprise uniquement) Créez une application interne et hébergez-la derrière un parefeu.
Voir la section « Création d’un lecteur signé par l’entreprise » à la page 140.
A propos des droits et traitements
Un droit autorise une personne à télécharger un élément. Le traitement est le procédé par lequel un contenu autorisé
est mis à disposition des clients pour téléchargement. La boutique (Apple App Store ou Google Play Store) permet aux
utilisateurs de télécharger des lecteurs de contenu. Vous utilisez DPS App Builder pour créer des applications
personnalisées pour la boutique. Distribution Service contient les folios disponibles au téléchargement. Folio Producer
permet de publier des folios dans Distribution Service.
UTILISATION DE DIGITAL PUBLISHING SUITE 107
Assemblage et publication
Dernière mise à jour le 1/2/2013
Les applications de folios simples sont entièrement téléchargées depuis App Store. Lorsque les clients téléchargent une
application à folios multiples et ouvrent la bibliothèque, le lecteur vérifie auprès d’Adobe Distribution Service les folios
qui sont disponibles au téléchargement.
Tableau de bord Digital Publishing Suite
Toute personne disposant d’un ID Adobe valide peut se connecter au Tableau de bord Digital Publishing Suite et
modifier des folios. L’ID Adobe utilisé pour se connecter détermine les fonctions disponibles.
Les abonnés à Digital Publishing Suite ont accès aux outils de publication via le tableau de bord.
A. Folio Producer dédié à l’assemblage et à la modification des folios B. DPS App Builder pour créer des lecteurs personnalisés C. Page Analyses
destinée au suivi des données utilisateur D. Télécharger le guide de publication
Types d’abonnement Digital Publishing Suite
Il existe deux types d’édition de Digital Publishing Suite : Entreprise et Professionnel.
Professionnel Les détenteurs d’un compte professionnel peuvent utiliser les outils de création et les outils et services
du Tableau de bord pour créer un nombre illimité de lecteurs de contenu personnalisés.
Entreprise Les détenteurs d’un compte d’entreprise ont accès à l’ensemble des outils et des services d’un compte
professionnel, et peuvent en plus personnaliser l’interface du lecteur, créer des serveurs de droit personnalisés, des
applications d’entreprise interne, et bien plus encore.
A
B
C
UTILISATION DE DIGITAL PUBLISHING SUITE 108
Assemblage et publication
Dernière mise à jour le 1/2/2013
Vous pouvez également utiliser l’option Single Edition pour créer un lecteur de contenu pour une édition unique que
vous envoyez à l’Apple Store.
Types de compte Digital Publishing Suite
Quand vous prenez un abonnement à Digital Publishing Suite, un représentant Adobe crée un compte principal. Vous
pouvez alors utiliser le service Administration de comptes pour attribuer des rôles aux différents ID Adobe.
Compte Admin Un compte Admin permet d’attribuer des types de compte.
Compte ID d’application Un ID d’application associe des folios publiés à un lecteur de contenu personnalisé multifolios
particulier. Par exemple, si un éditeur crée des magazines sur les sports de plein air, un ID Adobe peut être créé
pour chaque lecteur de contenu, par exemple « cyclisme@editeur.com » et« randonnée@editeur.com ».
Evitez d’utiliser le nom d’une personne (comme « jeandupont@editeur.com ») pour l’ID d’application, sauf si un
lecteur de contenu personnalisé existe déjà pour l’ID Adobe de cette personne.
Compte de l’ID DPS App Builder Utilisez l’ID DPS App Builder pour vous connecter à DPS App Builder et créer des
lecteurs personnalisés.
Voir aussi
« Utilisation d’un ID Adobe pour la publication numérique » à la page 6
« Outil Administration de comptes » à la page 144
Organiseur Folio Producer
Cliquer sur le lien Folio Producer sur le tableau de bord (https://digitalpublishing.acrobat.com) affiche
Folio Producer. Folio Producer vous permet d’organiser et de modifier des folios. La connexion avec un compte
d’abonnement vous permet de publier des folios. Folio Producer comprend une page Organiseur qui présente les folios
disponibles et une page Editeur qui affiche les articles contenus dans un folio.
UTILISATION DE DIGITAL PUBLISHING SUITE 109
Assemblage et publication
Dernière mise à jour le 1/2/2013
Folios disponibles affichés dans le panneau Organiseur
Pour ouvrir directement l’organiseur Folio Producer, choisissez Folio Producer dans le menu du panneau Folio
Builder.
Assemblage d’articles d’un folio
Les articles que vous créez ou importez dans un folio dans le panneau Folio Builder apparaissent dans le folio. Vous
pouvez également utiliser deux autres méthodes pour ajouter des articles à un folio.
Partager Dans le panneau Folio Builder, sélectionnez le folio, puis sélectionnez Partager dans le menu du panneau.
Toute personne avec qui vous partagez le folio peut y ajouter des articles (voir la section « Partage de folios » à la
page 86).
Copier vers Dans le panneau Folio Builder, sélectionnez l’article, puis sélectionnez Copier vers dans le menu du
panneau. Copiez ensuite l’article dans un autre folio. Vous pouvez également copier un article à l’aide de l’éditeur Folio
Producer (voir la section « Copie d’un article dans un autre folio » à la page 97).
Voir aussi
« Structure des dossiers pour les articles importés » à la page 50
Modification des paramètres des folios
Le panneau Organiseur permet de spécifier des informations relatives au folio et de modifier ses paramètres. Certains
paramètres ont pour objectif un suivi interne uniquement. Les paramètres signalés par un astérisque (*) sont
nécessaires à la publication du folio.
1 Connectez-vous au Tableau de bord Adobe Digital Publishing Suite à l’aide de l’ID Adobe adéquat.
2 Dans le tableau de bord, cliquez sur Folio Producer.
Vous pouvez également choisir Folio Producer dans le menu du panneau Folio Builder dans InDesign.
UTILISATION DE DIGITAL PUBLISHING SUITE 110
Assemblage et publication
Dernière mise à jour le 1/2/2013
3 Modifiez les propriétés du folio. Voir « Modification des propriétés du folio » à la page 82.
Création de filtres de bibliothèque
Si vous définissez des noms de filtre pour chaque folio dans Folio Producer Organizer, les options de filtre apparaissent
dans un menu déroulant dans la bibliothèque des lecteurs.
Par exemple, si vous créez différentes éditions d’un même folio pour des langues différentes, vous pouvez laisser vos
clients afficher uniquement les folios d’une seule langue et masquer les autres. Ou vous pouvez créer des filtres pour
afficher uniquement les folios d’une période spécifique comme « Publications de 2011 » et « Publications de 2012 ».
Vous ne pouvez créer un seul niveau de filtres. Toutefois, les clients peuvent sélectionner plusieurs options dans la liste
déroulante. Par exemple, les clients peuvent afficher des folios en français et en allemand et masquer ceux en anglais
et en espagnol.
Dans cette application, seuls les folios de base et d’information s’affichent.
1 Créez des folios l’aide du lecteur v22 ou version ultérieure.
2 Dans l’organiseur Folio Producer, sélectionnez le folio, puis indiquez un nom de filtre dans la zone de texte Filtre
de bibliothèque.
Assurez-vous d’utiliser les mêmes noms de filtre pour les folios qui appartiennent à une catégorie spécifique. Par
exemple, si vous spécifiez des filtres « Allemand » et « allemand » dans différents folios, ces deux filtres seront
affichés comme des options différentes dans la bibliothèque.
3 Utilisez DPS App Builder pour créer un lecteur. Testez les filtres dans la bibliothèque pour vous assurer qu’ils
fonctionnent comme prévu.
UTILISATION DE DIGITAL PUBLISHING SUITE 111
Assemblage et publication
Dernière mise à jour le 1/2/2013
Editeur Folio Producer
L’éditeur Folio Producer vous permet de modifier des paramètres d’article, certains d’entre eux n’étant pas disponibles
dans le panneau Folio Builder. L’éditeur présente deux modes : l’Affichage par vignettes pour prévisualiser les articles
et changer leurs propriétés et l’Affichage par liste pour trier, verrouiller et modifier d’autres paramètres.
Articles disponibles dans le folio
A. Article sélectionné B. Affichage par liste et Affichage par vignettes C. Affichage de la mise en page horizontale ou verticale
Le mode Affichage par liste sert à réorganiser manuellement des articles, à modifier les priorités de téléchargement,
ainsi qu’à modifier d’autres paramètres.
Présentation des articles d’un folio en mode Affichage par liste
Utilisation du mode Affichage par vignettes pour prévisualiser les articles
Les articles HTML et InDesign qui utilisent les formats d’image JPEG ou PNG affichent des images miniatures dans
l’éditeur Folio Producer. Cependant, aucune miniature n’apparaît dans les articles qui utilisent le format d’image PDF.
1 Connectez-vous au Tableau de bord Adobe Digital Publishing Suite, puis cliquez sur Folio Producer.
2 Sélectionnez le folio à modifier, puis cliquez sur Ouvrir.
3 Effectuez une ou plusieurs des actions suivantes :
Changer l’ordre Faites glisser un article pour le placer ailleurs.
Modifier les propriétés d’un article Les changements que vous apportez aux paramètres Propriétés de l’article sont
répercutés dans le panneau Folio Builder (voir la section « Modification des propriétés de l’article » à la page 93).
A B C
UTILISATION DE DIGITAL PUBLISHING SUITE 112
Assemblage et publication
Dernière mise à jour le 1/2/2013
Afficher les mises en page horizontales et verticales Cliquez sur les boutons Horizontalement et Verticalement
pour modifier la mise en page. Faites glisser le curseur Taille des vignettes pour redimensionner les vignettes des
articles.
Ajouter un article Cliquez sur Ajouter, puis choisissez un article du folio pour la copie. Vous pouvez également
copier un article dans un autre folio en sélectionnant Copier vers dans le menu contextuel de l’article.
Importer le fichier HTMLResources.zip Cliquez sur pour importer le fichier HTMLResources.zip (voir la section
« Importation des ressources HTML » à la page 113).
Renommer un article Choisissez Renommer dans le menu contextuel de l’article, puis donnez un nouveau nom à
ce dernier. Cette action change le nom de l’article, mais pas le titre qui apparaît dans le lecteur de contenu. Le fait
de renommer un article risque de rompre les liens de redirection existant entre plusieurs articles.
Modification des paramètres d’article
1 Sélectionnez et ouvrez un folio dans l’éditeur Folio Producer.
2 A l’aide de l’Affichage par vignette ou de l’Affichage par liste, modifiez l’un des paramètres de l’article (voir la
section « Modification des propriétés de l’article » à la page 93).
Création de sections
La fonction Sections permet aux clients de télécharger des sections individuelles d’un folio que vous définissez. Par
exemple, vous pouvez diviser un folio en plusieurs sections : Actualité, Sports, Business, Style et Finance et vos clients
peuvent choisir de télécharger des articles de certaines sections seulement ou de toutes les sections à la fois.
Affectation des sections
Spécifiez les informations de section pour chaque article dans l’éditeur Folio Producer. Utilisez le même nom de
section pour au moins deux articles. Pour obtenir de meilleurs résultats, créez un folio version v24 ou ultérieure, et
utilisez le panneau Folio Builder pour mettre à jour les articles du folio afin de générer des images de couverture de
section. Utilisez un lecteur de contenu version v24 ou ultérieure pour visualiser les sections.
Vous pouvez également spécifier des sections pour certains articles à l’aide de la balise dans le fichier
sidecar.xml. Voir la section « Création d’un fichier annexe de métadonnées pour l’importation d’articles » à la page 52.
Utilisation des sections
Lorsque vous spécifiez les informations de section pour les articles dans un folio, un bouton d’affichage des sections
s’affiche dans la bibliothèque du lecteur au lieu d’un bouton de téléchargement ou d’achat. Appuyer sur le bouton
d’affichage des sections affiche les sections disponibles dans cet article. La première page du premier article de chaque
section est utilisée comme image de couverture de celle-ci. Lorsqu’un utilisateur appuie sur l’image de couverture
d’une section, tous les articles de celle-ci sont téléchargés.
Les articles pour lesquels aucune information de section n’est spécifiée sont téléchargés avec n’importe quelle section.
Par exemple, si vous ne spécifiez pas d’informations de section pour l’article de couverture et l’article de la table des
matières, ces articles sont téléchargés avec la première section que l’utilisateur télécharge.
Dans un folio comportant des sections, appuyer sur le bouton Table des matières affiche uniquement les titres de
section à ce moment, pas les articles. Appuyer sur le nom d’une section dans la table des matières permet d’accéder au
premier article de cette section.
L’ordre d’origine des articles est conservé dans les folios comportant des sections. Pour obtenir de meilleurs résultats,
regroupez les articles dans la même section côte à côte dans le folio.
UTILISATION DE DIGITAL PUBLISHING SUITE 113
Assemblage et publication
Dernière mise à jour le 1/2/2013
Remarque : si un utilisateur télécharge une seule section, cela compte comme un téléchargement de folio complet. Les
téléchargements ultérieurs d’autres sections de ce même folio ne sont pas comptabilisés.
Test des sections
Pour tester la fonctionnalité Sections, créez une application de développement v24 ou utilisez Adobe Content Viewer
pour afficher un folio publié. Les sections ne sont pas complètement mises en oeuvre dans les folios non publiés
(marqués d’une bande bleue).
Importation des ressources HTML
Lorsque vous créez des articles basés sur des documents HTML au lieu de documents InDesign, vous pouvez définir
un dossier de ressources pour le partage des images, des scripts et des fichiers CSS. Ce dossier doit être nommé
HTMLResources.zip. Vous ne pouvez importer qu’un seul dossier HTMLResources dans un folio. Le fichier
HTMLResources.zip n’est pas un article qui peut être prévisualisé. C’est un fichier réservé aux ressources partagées.
Pour plus d’informations sur la création d’articles HTML, voir la section « Importation d’articles HTML » à la page 89.
Important : pour créer le fichier .zip, sélectionnez le contenu du dossier HTMLResources, pas le dossier lui-même.
Si plusieurs personnes travaillent sur des articles HTML, assurez-vous qu’elles disposent d’une copie à jour du dossier
HTMLResources comme référence.
1 Ouvrez le dossier contenant les ressources HTML, sélectionnez-en le contenu, puis compressez-le dans un fichier
.zip.
2 Connectez-vous au Tableau de bord Adobe Digital Publishing Suite. Cliquez sur Folio Producer.
3 Sélectionnez un folio et choisissez Ouvrir.
4 Dans l’éditeur Folio Producer, cliquez sur le bouton Importer des ressources HTML .
5 Cliquez sur Parcourir, sélectionnez le fichier HTMLResources.zip, puis cliquez sur Ouvrir.
Si vous devez modifier le fichier HTMLResources.zip, effectuez les changements, créez un nouveau fichier .zip, puis
importez-le de nouveau.
Vous pouvez également importer le fichier HTMLResources.zip en sélectionnant Importer des ressources HTML dans
le menu du panneau Folio Builder.
Voir aussi
« Lien d’accès aux ressources dans le dossier des ressources HTML » à la page 62
« Incorporation de polices dans les articles HTML » à la page 113
Incorporation de polices dans les articles HTML
Assurez-vous que votre licence de polices permet d’intégrer des polices dans un article HTML. Dans le dossier source
du fichier HTMLResources.zip, ajoutez un dossier de polices contenant les polices et un dossier CSS avec le fichier de
styles CSS. Dans le fichier .html, faites référence à ces fichiers et polices à l’aide de chemins d’accès relatifs (voir la
section « Importation des ressources HTML » à la page 113).
Vous pouvez également utiliser un paramètre DPS App Builder pour incorporer des polices dans l’application ellemême
au lieu de les placer dans l’article.
UTILISATION DE DIGITAL PUBLISHING SUITE 114
Assemblage et publication
Dernière mise à jour le 1/2/2013
Exemple de structure d’article HTML
Exemple de fichier HTML faisant référence aux polices incorporées
Exemple de fichier CSS
UTILISATION DE DIGITAL PUBLISHING SUITE 115
Assemblage et publication
Dernière mise à jour le 1/2/2013
Publication de folios dans Distribution Service
Lorsque les folios et articles sont créés, ils sont téléchargés dans l’espace de travail Folio Producer par Acrobat.com,
mais ils n’apparaissent pas encore dans Distribution Service (parfois appelé « serveur de traitement »). Distribution
Service stocke tous les folios disponibles au téléchargement pour les clients.
Pour publier des folios publics ou de vente au détail, vous devez vous connecter au tableau de bord Digital Publishing
Suite à partir d’un compte d’abonnement. Cependant, tous les utilisateurs peuvent publier des folios privés afin
d’améliorer les performances de téléchargement.
Publication de contenus dans Distribution Service
1 Connectez-vous au Tableau de bord Adobe Digital Publishing Suite.
2 Dans le tableau de bord, cliquez sur Folio Producer. Dans l’organiseur Folio Producer, sélectionnez un folio, puis
cliquez sur Publier.
3 Définissez l’état du folio.
Privé ou Public Lorsque vous optez pour Public, les clients peuvent télécharger le folio dès qu’il est disponible. Un
abonnement DPS est nécessaire pour publier des folios publics. Si un folio est défini sur Privé, les utilisateurs ne
peuvent pas le télécharger dans un lecteur de contenu personnalisé. Il est disponible uniquement dans Adobe
Content Viewer.
Gratuit ou Vente au détail Définissez l’état du folio sur Vente au détail pour permettre aux clients de le télécharger
uniquement s’ils le paient par le biais d’un achat In-App ou d’un abonnement. Pour les folios de vente au détail,
suivez la procédure d’achat In-App sur le site des développeurs Apple ou la procédure de facturation In-App sur le
site des développeurs Google Play afin de connaître le prix de téléchargement du folio de vente au détail.
Les folios publiés avec l’état Vente au détail n’apparaissent pas dans Adobe Content Viewer. Prévisualisez les folios
de vente au détail à l’aide de l’application de développement personnalisée que vous créez.
Important : dans le cas des folios de vente au détail, ne passez jamais de l’état Gratuit à l’état de Vente au détail.
Définissez-les dès le départ sur l’état Vente au détail. Le folio risquerait sinon de ne pas être disponible dans le lecteur
de contenu personnalisé. Annulez la publication et publiez de nouveau ces folios comme folios publics et au détail.
4 Spécifiez l’ID du produit.
UTILISATION DE DIGITAL PUBLISHING SUITE 116
Assemblage et publication
Dernière mise à jour le 1/2/2013
Pour des résultats optimaux, utilisez le format com.publisher.publication.issue (par exemple,
com.adobepress.dpsconseils.juillet2012) pour indiquer l’ID du produit. Pour un résultat optimal, évitez les
majuscules dans l’ID de votre produit. Les lettres majuscules ne sont pas toujours prises en charge pour les achats
In-App Amazon.
Concernant le contenu vendu au détail, assurez-vous que vous utilisez le même ID de produit dans la boîte de
dialogue Publier le folio et l’App Store, par exemple « Procédure d’achat In-App pour l’iPad ».
Remarque : utilisez des ID de produit différents pour chaque folio distinct dans votre application. Cependant, si vous
êtes en train de créer des rendus de folio, utilisez le même ID de produit pour tous les rendus.
5 Cliquez sur Publier.
Le folio n’est pas publié s’il contient des articles dont les orientations ou les proportions sont contradictoires. Si le
folio est publié, le bouton Publier est remplacé par le bouton Mettre à jour, et le bouton Supprimer est actif.
Lorsque vous publiez ou mettez à jour un folio, le travail est envoyé à la file d’attente, ce qui vous permet de continuer
à travailler dans l’organiseur et de publier ou de mettre à jour d’autres folios. Choisissez la commande Affichage >
Demandes de publication pour voir l’état de la file d’attente. Si un travail échoue, reportez-vous à la page d’état DPS
pour plus d’informations sur les indisponibilités en cours du serveur.
Les articles non protégés sont téléchargés sur un serveur Web pour l’affichage sur le bureau.
Si des notifications Push sont activées dans votre lecteur personnalisé, cliquez sur le bouton Notifier pour déclencher
une notification (voir la section« Notifications Push » à la page 150).
Mise à jour de folios publiés
Quand vous publiez un folio, cliquez sur le bouton Mettre à jour dans l’organiseur Folio Producer pour déclencher la
mise à jour du folio publié. Quand Adobe Content Viewer détecte qu’un folio téléchargé a été mis à jour, un message
invite les utilisateurs à télécharger le folio le plus récent. Assurez-vous que les valeurs Nom de la publication, Numéro
du folio, ID du produit et Taille restent inchangées. Si vous avez besoin de modifier l’une ou l’autre de ces valeurs,
annulez la publication et publiez de nouveau le folio au lieu de le mettre à jour.
1 Apportez les modifications requises au folio et aux articles.
Si vous modifiez les documents source d’un article, utilisez la commande Mettre à jour du panneau Folio Builder.
2 Affichez l’organiseur Folio Producer.
3 Assurez-vous que les paramètres Nom de la publication et Numéro du folio du nouveau folio sont identiques à ceux
du folio existant.
Si ce n’est pas le cas, le nouveau folio est considéré comme une publication distincte.
4 Sélectionnez le folio, puis choisissez Mettre à jour.
5 Indiquez les paramètres d’état et l’ID de produit appropriés.
Ne modifiez pas l’ID du produit. Si vous avez besoin d’utiliser un ID de produit différent, utilisez l’option Annuler
la publication, puis publiez de nouveau le folio.
Si votre folio est une version vendue au détail, vérifiez que l’ID du produit correspond à l’ID du produit spécifié
pendant la procédure d’achat In-App pour les applications de l’iPad ou pendant la procédure de facturation In-App
pour les applications Android ou Amazon. Si l’ID du produit est différent, le folio ne s’affiche pas dans votre lecteur
de contenu personnalisé.
UTILISATION DE DIGITAL PUBLISHING SUITE 117
Assemblage et publication
Dernière mise à jour le 1/2/2013
Si l’option Mettre à jour le contenu est sélectionnée, la mise à jour porte sur le contenu du folio et sur les
métadonnées. Si l’option est désélectionnée, seul l’état est modifié quand vous cliquez sur Mettre à jour. Pour
obtenir de meilleurs résultats, conservez l’option Mettre à jour le contenu sélectionnée.
Suppression de folios du serveur
L’organiseur Folio Producer comprend une commande Annuler la publication et une commande Effacer.
• La commande Annuler la publication supprime le folio publié de Distribution Service. Si la boutique contient un
lecteur de contenu multi-folio, le folio supprimé ne peut plus être téléchargé.
• La commande Effacer efface le folio et son contenu. Un folio qui a été effacé ne s’affiche plus dans l’organiseur Folio
Producer ou dans le panneau Folio Builder.
Un folio supprimé ou effacé n’est pas effacé du périphérique sur lequel il a été téléchargé. Pour supprimer le folio effacé
de la bibliothèque du lecteur, il suffit de tapoter sur le bouton Archiver.
Exportation de folios pour les lecteurs simple folio
Pour créer un lecteur de contenu simple folio, vous pouvez sélectionner un folio dans le panneau Folio Builder, choisir
Créer l’application dans le menu du panneau et générer l’application en fonction du folio. Si vous êtes un client
Professional ou Enterprise, vous pouvez exporter un folio dans un fichier .zip que vous pouvez spécifier dans DPS App
Builder. Avant d’exporter un folio, vous devez d’abord le publier.
1 Connectez-vous au Tableau de bord Adobe Digital Publishing Suite à partir d’un compte d’abonnement.
2 Dans le tableau de bord, cliquez sur Folio Producer. Dans l’organiseur Folio Producer, publiez le folio (voir la
section « Publication de folios dans Distribution Service » à la page 115).
3 Dans l’organiseur Folio Producer, sélectionnez le folio publié, puis cliquez sur Exporter.
4 Précisez le nom et l’emplacement du fichier .zip, puis cliquez sur le bouton Enregistrer.
Vous définissez ce fichier .zip lorsque vous utilisez DPS App Builder pour créer un lecteur de contenu simple folio (voir
la section « Création d’un lecteur de contenu personnalisé pour l’iPad et l’iPhone » à la page 123).
Création de rendus de folio
Le rendu est capital pour les plates-formes où les périphériques sont de diverses tailles. Par exemple, l’iPad est
disponible aux dimensions 1 024 x 768 (SD ou définition standard) et 2 048 x 1 536 (HD ou haute définition) et les
périphériques Android courant incluent les formats 1 280 x 800, 1 024 x 768 et 1 024 x 600.
Lorsque vous publiez du contenu, deux paramètres déterminent si un folio est un rendu ou une publication. Ces
paramètres sont les suivants : Nom du folio et Taille. Les noms de folio des différents rendus doivent être identiques
et les tailles doivent être différentes. Vous définissez ces paramètres lorsque vous utilisez le panneau Folio Builder pour
créer un folio. En outre, si les rendus de folio appartiennent à une application de vente au détail, il est recommandé
d’utiliser le même ID de produit pour tous les rendus. Pour les rendus dans une application d’abonnement, les dates
de publication doivent être identiques ; choisissez la date dans le widget de calendrier.
Remarque : lorsque vous créez des rendus de folio pour un lecteur de contenu avec abonnements, choisissez le même
paramètre de date de publication pour chaque rendu dans le widget de type calendrier.
UTILISATION DE DIGITAL PUBLISHING SUITE 118
Assemblage et publication
Dernière mise à jour le 1/2/2013
Création de plusieurs rendus de folio ayant la même valeur pour le paramètre Nom du folio et une valeur différente pour le paramètre Taille
Lorsque le lecteur de contenu vérifie Distribution Service, il ne propose que le rendu qui correspond le mieux au
périphérique mobile.
Pour les périphériques iPad, si vous téléchargez un rendu folio défini sur une taille 2 048 x 1536 et un autre sur
1 024 x 768, le modèle iPad HD télécharge le folio 2 048 x 1536 alors que les modèles SD téléchargent le rendu plus
petit. Les lecteurs iPad téléchargent uniquement des folios avec un rapport L/H de 4:3. Les lecteurs iPhone téléchargent
uniquement des folios avec un rapport L/H de 3:2. Si vous créez un lecteur de contenu qui prend en charge l’iPad et
l’iPhone, créez quatre rendus pour obtenir de meilleurs résultats. Voir les sections « Création de contenu pour les
modèles d’iPads » à la page 46 et « Création de contenu pour l’iPhone » à la page 47.
Pour les périphériques Android, si vous téléchargez un folio de 1 205 x 725 pixels et un autre folio de 1 024 x 600 pixels,
le lecteur Nexus 7 télécharge uniquement le rendu 1 205 x 725 pixels, alors que le lecteur Kindle Fire télécharge
uniquement le rendu 1 024 x 600 pixels. Voir « Création de documents pour divers périphériques » à la page 44.
Remarque : pour obtenir de meilleurs résultats, utilisez les mêmes paramètres de métadonnées de folio pour les rendus
de folio, notamment Nom du folio, Nom de la publication, Numéro du folio et Date de publication. Lorsque vous publiez
les rendus, utilisez le même ID de produit. Si vous activez le partage sur les réseaux sociaux, assurez-vous d’utiliser les
mêmes valeurs pour le nom de l’article.
UTILISATION DE DIGITAL PUBLISHING SUITE 119
Assemblage et publication
Dernière mise à jour le 1/2/2013
Mise à jour de folios publiés à l’aide d’outils en version bêta
Si vous avez utilisé Content Bundler pour publier des folios destinés à un lecteur de contenu pour folios multiples, ces
folios n’apparaissent pas dans le panneau Folio Builder ou dans Folio Producer. Les folios publiés sont néanmoins
toujours accessibles à vos clients, qui peuvent les télécharger et les afficher. Vous pouvez poursuivre l’édition et la mise
à jour de ces folios via Content Bundler tant qu’ils sont disponibles.
Lorsque vous mettez à jour votre flux de travaux afin d’utiliser le panneau Folio Builder, vous pouvez créer des folios
qui seront disponibles parallèlement aux folios existants. Veillez à utiliser le même ID Adobe que celui utilisé dans
Content Bundler. De même, mettez à jour puis soumettez une nouvelle fois votre lecteur personnalisé afin qu’il puisse
afficher les folios créés à l’aide d’outils plus récents.
Pour le moment, si vous souhaitez modifier un folio existant publié à l’aide de Content Bundler, continuez à utiliser
cet outil.
Listes de contrôle pour lecteurs de contenu
personnalisés
La création d’un lecteur de contenu personnalisé avec DPS App Builder est plus simple si vous disposez de tous les
fichiers et informations nécessaires. Reportez-vous à la liste de contrôle appropriée pour vérifier si vous possédez tous
les fichiers requis.
Liste de contrôle spécifique au lecteur de contenu pour folios simples (iPad
uniquement)
Vous avez besoin des fichiers et des éléments d’information suivants pour créer un lecteur de contenu pour folios
simples pour l’iPad.
Pour plus d’informations sur la création de certificats et d’images pour proposer un lecteur de contenu personnalisé à
Apple App Store, téléchargez le Guide de publication pas à pas depuis le tableau de bord Adobe Digital Publishing
Suite ou depuis DPS App Builder.
Général
• ID Adobe utilisé pour l’application
• Compte d’abonné Creative Cloud ou numéro de série Single Edition (Single Edition uniquement)
Fichiers nécessaires pour sécuriser votre application
• Certificat de distribution P12 (et mot de passe)
• Fichier de distribution mobileprovision
• Certificat de développement P12 (et mot de passe)
• Fichier de développement mobileprovision
Illustration nécessaire pour personnaliser votre application
• Icônes d’application SD de 29 x 29, 50 x 50, 72 x 72 et 512 x 512 pixels au format PNG. Il est inutile d’ajouter un
effet de brillance ou des coins arrondis.
• Icônes d’application HD de 58 x 58, 100 x 100, 144 x 144 et 1 024 x 1 024 pixels au format PNG. Il est inutile
d’ajouter un effet de brillance ou des coins arrondis.
UTILISATION DE DIGITAL PUBLISHING SUITE 120
Assemblage et publication
Dernière mise à jour le 1/2/2013
• Ecrans de démarrage SD : images de 1 024 x 768 et 768 x 1 024 pixels au format PNG.
Voir aussi
« Présentation de Single Edition » à la page 10
« Création d’un lecteur de contenu personnalisé pour l’iPad et l’iPhone » à la page 123
Liste de contrôle pour lecteur de contenu pour folios multiples (iPad et
iPhone)
Vous avez besoin des fichiers et des éléments d’information suivants pour créer un lecteur de contenu pour folios
multiples pour l’iPad.
Folios
• ID Adobe utilisé pour l’application
• Au moins un folio gratuit rendu public à l’aide de l’ID Adobe d’application
• Achats In-App pour l’ensemble des folios de vente au détail publiés. Utilisez le même ID de produit lors de la
création de l’achat In-App et lors de la publication du folio.
Fichiers nécessaires pour sécuriser votre application
• Certificat de distribution P12 (et mot de passe)
• Fichier de distribution mobileprovision
• Certificat de développement P12 (et mot de passe)
• Fichier de développement mobileprovision
• Certificat de distribution P12 et mot de passe (facultatif) Push
• Certificat de développement P12 et mot de passe (facultatif) Push
Illustration nécessaire pour personnaliser votre application
• Icônes d’application SD pour iPad de 29 x 29, 50 x 50, 72 x 72 et 512 x 512 pixels au format PNG. Il est inutile
d’ajouter un effet de brillance ou des coins arrondis.
• Icônes d’application SD pour iPhone de 29 x 29 et 57 x 57 pixels au format PNG. Il est inutile d’ajouter un effet de
brillance ou des coins arrondis.
• Icônes d’application HD pour iPad de 58 x 58, 100 x 100, 144 x 144 et 1 024 x 1 024 pixels au format PNG. Il est
inutile d’ajouter un effet de brillance ou des coins arrondis.
• Icônes d’application HD pour iPhone de 58 x 58 et 114 x 114 pixels au format PNG. Il est inutile d’ajouter un effet
de brillance ou des coins arrondis.
• Ecrans de démarrage SD : images de 1 024 x 768 et 768 x 1 024 pixels au format PNG.
• Ecrans de démarrage HD : images de 2 048 1 536 et 1 536 x 2 048 pixels au format PNG. Utilisez le format PNG
8 bits pour réduire la taille du fichier.
Voir aussi
« Création d’un lecteur de contenu personnalisé pour l’iPad et l’iPhone » à la page 123
UTILISATION DE DIGITAL PUBLISHING SUITE 121
Assemblage et publication
Dernière mise à jour le 1/2/2013
Liste de contrôle pour lecteur de contenu avec abonnement (iPad et iPhone)
Vous avez besoin de certains fichiers et éléments d’information pour créer un lecteur de contenu avec abonnement à
plusieurs folios pour l’iPad.
Folios
• ID Adobe utilisé pour l’application
• Au moins un folio gratuit publié comme document public
• Achats In-App pour l’ensemble des folios de vente au détail publiés. Utilisez le même ID de produit lors de la
création de l’achat In-App et lors de la publication du folio.
• Achats In-App pour toutes les durées d’abonnement Si vous créez une application gratuite, vous devez créer une
option d’inscription gratuite dans votre application.
• Secret partagé associé à l’ID Adobe de l’application (voir « Outil Administration de comptes » à la page 144)
Fichiers nécessaires pour sécuriser votre application
• Certificat de distribution P12 (et mot de passe)
• Fichier de distribution mobileprovision
• Certificat de développement P12 (et mot de passe)
• Fichier de développement mobileprovision
• Certificat de distribution P12 et mot de passe (obligatoire pour le Kiosque) Push
• Certificat de développement P12 et mot de passe (obligatoire pour le Kiosque) Push
Illustration nécessaire pour personnaliser votre application
• Icônes d’application SD pour iPad de 29 x 29, 50 x 50, 72 x 72 et 512 x 512 pixels au format PNG. Il est inutile
d’ajouter un effet de brillance ou des coins arrondis.
• Icônes d’application SD pour iPhone de 29 x 29 et 57 x 57 pixels au format PNG. Il est inutile d’ajouter un effet de
brillance ou des coins arrondis.
• Icônes d’application HD pour iPad de 58 x 58, 100 x 100, 144 x 144 et 1 024 x 1 024 pixels au format PNG. Il est
inutile d’ajouter un effet de brillance ou des coins arrondis.
• Icônes d’application HD pour iPhone de 58 x 58 et 114 x 114 pixels au format PNG. Il est inutile d’ajouter un effet
de brillance ou des coins arrondis.
• Ecrans de démarrage SD : images de 1 024 x 768 et 768 x 1 024 pixels au format PNG.
• Ecrans de démarrage HD : images de 2 048 1 536 et 1 536 x 2 048 pixels au format PNG. Utilisez le format PNG
8 bits pour réduire la taille du fichier.
• Icône du Kiosque en SD : icône de 96 x 128 pixels au format PNG (obligatoire pour le Kiosque)
• Icône du Kiosque en HD : icône de 1 926 x 256 pixels au format PNG (obligatoire pour le Kiosque)
• Mosaïque pour l’abonnement en SD : images de 468 x 135 et 331 x 180 pixels au format PNG.
• Mosaïque pour l’abonnement en HD : images de 936 x 270 et 662 x 360 pixels au format PNG.
• Icônes de navigation personnalisée (Enterprise uniquement) : images de 75 x 43 pixels (SD) et 150 x 86 pixels
(HD) au format PNG. Pour chaque icône, créez des images différentes pour les états Relevé, Enfoncé et Désactivé.
UTILISATION DE DIGITAL PUBLISHING SUITE 122
Assemblage et publication
Dernière mise à jour le 1/2/2013
Voir aussi
« Création d’un lecteur de contenu personnalisé pour l’iPad et l’iPhone » à la page 123
Liste de contrôle spécifique au lecteur de contenu pour folios multiples
(Android et Amazon)
Vous avez besoin des fichiers et des éléments d’information suivants pour créer un lecteur de contenu pour folios
multiples pour Google Play Store et Amazon Appstore. Pour plus d’informations sur la création de ces fichiers, voir
Processus de publication dans DPS pour les périphériques mobiles Android et Amazon.
Folios
• ID Adobe utilisé pour l’application
• Au moins un folio gratuit rendu public à l’aide de l’ID Adobe d’application (recommandé)
• Facturation In-App pour l’ensemble des folios de vente au détail publiés. Utilisez le même ID de produit lors de
l’établissement de la facturation In-App et lors de la publication du folio.
• Secret partagé associé à l’ID Adobe de l’application (voir « Outil Administration de comptes » à la page 144)
Fichiers nécessaires pour sécuriser votre application
• Certificat P12 (et mot de passe) valides
Illustration nécessaire pour personnaliser votre application
• Icônes d’application : 36 x 36, 48 x 48 et 72 x 72 pixels au format PNG.
• Ecrans de démarrage : images de 1 280 x 800/800 x 1 280, 1 920 x 1 200/1 200 x 1 920 ou
2 048 x 1 536/1 536 x 2 048 pixels au format PNG 8 bits.
Voir aussi
« Création d’un lecteur de contenu personnalisé pour les périphériques Android et Amazon » à la page 134
DPS App Builder
DPS App Builder (qui s’appelait Viewer Builder auparavant) permet de créer un lecteur de contenu personnalisé que
vous pouvez proposer aux boutiques, telles qu’Apple Store et Google Play Store. DPS App Builder est actuellement
disponible uniquement pour Mac OS.
Utilisez DPS App Builder pour créer des lecteurs de contenu simple folio ou à folios multiples et des lecteurs à
abonnement. Toutefois, vous ne pouvez pas créer de lecteurs de contenu simples folios à destination de
Google Play Store ni d’Amazon Appstore pour le moment.
Pour télécharger la nouvelle version de DPS App Builder, accédez à www.adobe.com/go/digpubsuite_vb_mac-fr. Ou
bien, vous pouvez supprimer la version existante de DPS App Builder depuis le dossier Applications et cliquer sur le
lien DPS App Builder dans le tableau de bord DPS.
Voir aussi
« Présentation de la publication » à la page 103
« Listes de contrôle pour lecteurs de contenu personnalisés » à la page 119
UTILISATION DE DIGITAL PUBLISHING SUITE 123
Assemblage et publication
Dernière mise à jour le 1/2/2013
« Création d’un lecteur de contenu personnalisé pour l’iPad et l’iPhone » à la page 123
« Création d’un lecteur de contenu personnalisé pour l’iPad (Single Edition) » à la page 134
« Création d’un lecteur de contenu personnalisé pour les périphériques Android et Amazon » à la page 134
Création d’un lecteur de contenu personnalisé pour
l’iPad et l’iPhone
Utilisez DPS App Builder pour créer un lecteur de contenu personnalisé pour l’iPad, l’iPhone ou les deux. Si vous
définissez des fichiers et des informations valides, DPS App Builder génère une application de développement et une
application de distribution. L’application de développement sert aux tests. Si elle fonctionne correctement, envoyez le
fichier .zip de distribution à l’Apple Store.
Les informations, telles que les certificats et mots de passe, que vous fournissez ne sont pas stockées sur le serveur
Adobe. Seuls les fichiers d’application y sont stockés.
Pour plus d’informations sur la création des certificats et images requis, consultez le Guide d’accompagnement pour
les professionnels et les entreprises sur la publication iOS. Si vous êtes un utilisateur Creative Cloud ou Single Edition,
reportez-vous au Guide de publication pas à pas pour Single Edition.
Configuration DPS App Builder requise pour créer des lecteurs pour l’iPad
Configuration système requise :
• Mac OSX 10.6 Snow Leopard ou ultérieur pour les lecteurs de contenu iOS
• Connexion Internet
• DPS App Builder. Téléchargez DPS App Builder depuis le tableau de bord Digital Publishing Suite.
• ID Adobe valide fourni pour utiliser DPS App Builder
Création d’un lecteur de contenu personnalisé
1 Procurez-vous les fichiers et les éléments d’information requis. Voir « Listes de contrôle pour lecteurs de contenu
personnalisés » à la page 119.
2 Téléchargez et installez DPS App Builder.
DPS App Builder est disponible dans le tableau de bord Digital Publishing Suite. Si vous utilisez InDesign CS6, DPS
App Builder est installé lorsque vous mettez à jour les outils DPS Desktop.
3 Démarrez DPS App Builder et connectez-vous en utilisant un ID Adobe valide.
L’ID Adobe que vous utilisez pour vous connecter à DPS App Builder peut être différent de celui que vous utilisez
pour définir l’ID de titre dans le panneau Détails de l’application.
L’outil Administration de compte vous permet, ainsi qu’à l’administrateur, d’affecter un ID Adobe au rôle DPS App
Builder. Voir la section « Outil Administration de comptes » à la page 144.
4 Cliquez sur Nouveau, sélectionnez iOS, puis sélectionnez iPad, iPhone ou les deux. Cliquez sur Suivant.
5 Indiquez les fichiers et les informations requis.
Remarque : si vous créez une application simple folio, vous pouvez sélectionner le folio dans le panneau Folio Builder et
choisir Créer l’application dans le menu du panneau.
UTILISATION DE DIGITAL PUBLISHING SUITE 124
Assemblage et publication
Dernière mise à jour le 1/2/2013
Panneau Détails de l’application
Le panneau Détails de l’application permet de définir les noms des lecteurs et les informations d’ID de compte.
Nom de l’application Donnez un nom au lecteur de contenu ; il apparaît sous l’icône d’application sur l’iPad. En règle
générale, utilisez au plus 13 caractères pour éviter que le nom ne soit tronqué.
Pour tester le nom de votre application sur l’iPad, ouvrez un site Web dans Safari sur l’iPad. Dans le menu Safari,
choisissez Ajouter à l’écran d’accueil, puis saisissez le nom du lecteur de contenu. Si le nom est tronqué, définissez un
nom plus court.
Version de l’application Indiquez le lecteur le plus récent.
DPS App Builder inclut une version précédente à des fins de sauvegarde.
Type de l’application Spécifiez le type de lecteur de contenu (voir « Types de lecteurs de contenu personnalisés » à la
page 103). Les options disponibles varient en fonction du type de compte.
• Publication multiple Un lecteur de contenu pour publications multiples comprend une bibliothèque qui permet
aux utilisateurs de télécharger du contenu hébergé sur Adobe Distribution Service.
• Application intégrée Single Edition Le contenu est intégré à une application folio simple. Lorsque vous
sélectionnez cette option, l’option Folio exporté apparaît. Spécifiez le fichier .zip créé à l’aide de l’option Exporter dans
l’organiseur Folio Producer. Cette option n’est pas disponible si iPhone est sélectionné.
• Multi-folio avec droits (Enterprise uniquement) Créez un lecteur de contenu utilisant un serveur de droit
personnalisé pour déterminer quels clients peuvent télécharger du contenu. Si vous sélectionnez cette option, vous
utiliserez votre propre service d’abonnement. Consultez Apple. Les applications Droit uniquement ne peuvent pas être
activées pour le Kiosque.
• Multi-folio avec abonnement iTunes Créez un lecteur de contenu utilisant le modèle d’abonnement de l’Apple
Store.
• Folios multiples avec droits et abonnement iOS (Enterprise uniquement) Créez un lecteur de contenu utilisant un
serveur de droit personnalisé pour déterminer quels clients peuvent télécharger du contenu. Les clients peuvent
s’abonner via votre service d’abonnement ou via l’Apple Store.
• Adobe Content Viewer Créez une version d’Adobe Content Viewer au lieu de le télécharger de l’App Store. (Voir
« Création d’une instance personnalisée d’Adobe Content Viewer pour iPad et l’iPhone » à la page 139).
Affichages disponibles pour la bibliothèque Cette option n’a aucun effet dans les applications version v25. Dans la
bibliothèque du lecteur version v24, les utilisateurs peuvent appuyer sur un bouton dans le coin supérieur droit pour
afficher des folios en choisissant entre l’Affichage de la grille ou l’Affichage de la couverture (n’affiche que la couverture
du folio). Le fait de sélectionner l’Affichage de la grille désactive l’Affichage de la couverture.
Titre (affichage de bibliothèque) Indiquez le titre ; il apparaît en haut de la bibliothèque de lecteurs. Pour de meilleurs
résultats, n’utilisez pas plus de 35 caractères.
ID de titre/Mot de passe Saisissez l’ID Adobe et le mot de passe correspondant à votre application. Indiquez l’ID
Adobe utilisé pour créer les folios de ce titre. Assurez-vous que l’ID Adobe a bien le rôle Application dans l’outil
Administration de comptes. L’ID de titre de l’application peut être différent de l’ID Adobe que vous utilisez pour vous
connecter à DPS App Builder.
Format d’URL facultatif Spécifiez le format d’URL personnalisé permettant de démarrer le lecteur de contenu depuis
Safari et d’autres applications. Pour garantir l’unicité, Apple vous recommande d’utiliser le format DNS inverse
(com.éditeur.publication). Pour obtenir de meilleurs résultats avec le partage sur Twitter, utilisez 32 caractères ou
moins.
UTILISATION DE DIGITAL PUBLISHING SUITE 125
Assemblage et publication
Dernière mise à jour le 1/2/2013
Par exemple, supposons que vous indiquiez « com.sportspub.kayaking » comme schéma d’URL. Si vous incorporez un
lien « com.sportspub.kayaking:// » sur votre page Web, le lecteur de contenu s’ouvre lorsque vous cliquez sur le
navigateur mobile. Pour plus d’informations, consultez le site des développeurs Apple.
Folio exporté Si vous avez sélectionné Application intégrée Single Edition comme type d’application, indiquez le
fichier .zip ou le fichier .folio à intégrer au lecteur de contenu. Pour créer un fichier .zip, choisissez l’option Exporter
de l’organiseur Folio Producer. Voir « Exportation de folios pour les lecteurs simple folio » à la page 117. (Plutôt que
d’utiliser le fichier exporté .zip, vous pouvez sélectionner le folio dans le panneau Folio Builder et choisir Créer
l’application.)
Écran de bienvenue en option sur l’iPhone (Edition Enterprise uniquement) Vous pouvez créer un fichier .zip qui
inclut les ressources HTML pour le lecteur de contenu de l’iPhone. Cette page HTML s’affiche uniquement la première
fois que vos clients démarrent le lecteur de contenu de l’iPhone. La page HTML contient des liens visant à restaurer
les achats précédents et à faire disparaître l’écran de bienvenue. Pour plus d’informations sur la création de ces liens,
voir Custom HTML Store API Reference.
Options avancées
Activer le zoom des fichiers PDF Sélectionnez cette option pour permettre à vos utilisateurs de pincer et zoomer sur
des pages non interactives. Assurez-vous que vous sélectionnez l’option de format d’image PDF lors de la création de
votre folio.
Activer les signets Sélectionnez cette option pour permettre à vos utilisateurs d’affecter des signets à leurs articles
favoris dans l’application. Si cette option est activée, une icône Signets apparaît sur la zone supérieure droite de la barre
de navigation du lecteur. Les signets ne sont pas encore disponibles dans le lecteur de contenu de l’iPhone.
Activer le masquage automatique des barres de défilement des folios Par défaut, une zone de défilement de 6 pixels
s’affiche sur le côté droit des articles dans un folio. Si vous sélectionnez cette option, la barre de défilement s’affiche
uniquement lorsque l’utilisateur fait défiler l’article.
Toujours ouvrir les publications téléchargées en arrière-plan Lorsque cette option est sélectionnée, tous les folios qui
ont été téléchargés en arrière-plan depuis la session d’affichage précédente s’ouvrent au démarrage. Si cette option n’est
pas sélectionnée, le folio le plus récemment affiché s’ouvre dans sa position de lecture précédente.
Activer la navigation avec les zones actives gauche et droite Si vous sélectionnez cette option, les zones chaudes
invisibles apparaissent sur les côtés gauche et droit de chaque article (ou de la page si l’article défile uniquement
horizontalement). Si vous touchez sur une zone chaude, vous accédez à l’article suivant ou précédent. Les zones
chaudes sont particulièrement utiles pour les incrustations en mode Plein écran, comme dans les diaporamas. Les
zones chaudes ne sont pas disponibles pour les lecteurs iPhone.
Si un bouton s’affiche dans la zone chaude, il vous suffit d’appuyer sur la zone pour activer le bouton. Pour toute autre
incrustation qui s’affiche dans la zone chaude, il vous suffit d’appuyer sur la zone pour l’activer.
Activer la zone active du bas pour afficher les commandes d’affichage des folios Si vous sélectionnez cette option, il
suffit d’appuyer dans la zone active dans le bas de la page pour afficher les barres de navigation (également appelées
« HUD »). Si vous appuyez n’importe où au-dessus de la zone active du bas, aucune barre de navigation ne s’affiche.
Les boutons sont prioritaires sur la zone active du bas, la zone active du bas est prioritaire sur les zones actives gauche
et droite et les zones actives sont prioritaires sur les incrustations ne correspondant pas à des boutons.
Masquer la barre de navigation supérieure dans l’affichage Folio Si vous sélectionnez cette option, seule la barre de
navigation inférieure s’affiche lorsqu’un utilisateur touche un article. Ceci permet aux éditeurs de créer une barre de
navigation personnalisée sur toutes les pages de l’article pour naviguer dans le folio.
Activer l’archivage automatique des folios Sélectionner cette option active l’archivage automatique des folios lorsque
le client télécharge le nombre maximal de folios autorisés. Indiquer si l’archivage est activé par défaut. Les clients
peuvent utiliser les réglages de l’appareil pour activer ou désactiver l’archivage automatique. Spécifiez également le
UTILISATION DE DIGITAL PUBLISHING SUITE 126
Assemblage et publication
Dernière mise à jour le 1/2/2013
nombre maximal de folios téléchargés (entre 6 et 90) pour votre lecteur de contenu. Lorsque le nombre seuil est atteint,
les folios dont la mise à jour est la plus ancienne sont archivés automatiquement. Les clients ne peuvent pas changer le
nombre seuil. Les clients peuvent télécharger à nouveau tout folio archivé.
Activer la mise en cache des informations de bibliothèque : Sélectionnez cette option pour mettre en mémoire cache
des informations sur le folio, comme son prix par exemple. Le fait de sélectionner cette option permet d’améliorer les
performances des applications dotées de grandes bibliothèques, car l’afficheur ne vérifie pas l’état du serveur Apple à
chaque chargement de la bibliothèque. Toutefois, si vous sélectionnez cette option, certaines informations du folio
peuvent devenir obsolètes. Par exemple, si vous sélectionnez cette option et modifiez le coût du folio, votre
bibliothèque affichera des informations erronées. Cette option est actuellement disponible uniquement pour les
applications nécessitant une souscription.
Masquer le bouton Se connecter dans la bibliothèque (édition Enterprise uniquement) Par défaut, le bouton Se
connecter s’affiche dans le coin supérieur gauche de la bibliothèque dans les applications de souscription avec droits
personnalisés. Vous pouvez masquer le bouton Se connecter si votre bibliothèque personnalisée fournit une méthode
de connexion différente.
Masquer le bouton S’inscrire dans la bibliothèque (édition Enterprise uniquement) Par défaut, le bouton S’inscrire
s’affiche dans le coin supérieur gauche de la bibliothèque dans les applications d’abonnement. Vous pouvez masquer
le bouton S’inscrire.
Télécharger automatiquement la dernière publication autorisée pour les nouveaux lecteurs Si cette option est
sélectionnée, les utilisateurs qui téléchargent l’application pour la première fois sont autorisés à télécharger et afficher
gratuitement le folio de vente au détail le plus récemment publié.
Activer la boîte de dialogue Evaluer l’application Sélectionnez cette option pour afficher une invite « Evaluer
l’application » après que les clients ont lancé l’application un certain nombre de fois. Par exemple, si vous affectez à
« Compte de la boîte de dialogue Evaluer l’application » la valeur 5, les utilisateurs sont invités à évaluer l’application
lors de son cinquième lancement. S’ils sélectionnent « Rappeler plus tard », une invite s’affiche lors du lancement
suivant.
Spécifiez l’ID d’application de neuf chiffres de l’application. Pour obtenir cet ID, connectez-vous à
itunesconnect.apple.com, puis cliquez sur Gérer vos applications, puis sur votre application. Copiez l’ID Apple de neuf
chiffres (et non pas l’ID d’assemblage).
Afficher la boîte de souscription Analytics Si vous sélectionnez cette option, vos clients peuvent choisir de ne pas
suivre les données lors du premier lancement de l’application. Pour modifier le texte par défaut qui s’affiche,
sélectionnez Utiliser des chaînes personnalisées et téléchargez et modifiez les valeurs de « Titre de la boîte de dialogue
de souscription Analytics » et « Texte de la boîte de dialogue de souscription Analytics ».
Langues prises en charge iTunes affiche les noms des langues dans lesquels le lecteur est disponible. L’interface du
lecteur est traduite dans plusieurs langues, mais il est fort probable que le contenu de votre folio ne le soit pas. Indiquez
dans quelle langue vous souhaitez afficher l’interface du lecteur.
Utiliser des chaînes personnalisées Vous pouvez personnaliser toutes les chaînes stockées dans le lecteur de contenu
dans toutes les langues prises en charge. Vous pouvez, par exemple, personnaliser le texte des boutons dans la
bibliothèque et le texte dans les boîtes de dialogue. Sélectionnez cette option, puis cliquez sur le bouton de génération
de modèle pour télécharger un modèle XML vers le dossier des documents. Vous pouvez ensuite modifier ce fichier
XML et le spécifier dans DPS App Builder. Si vous modifiez un lecteur de contenu créé pour une version précédente,
téléchargez et modifiez le modèle le plus récent pour obtenir de meilleurs résultats.
Lorsque vous modifiez le fichier XML, chaque élément de l’interface utilisateur comprend un et une ou
plusieurs chaînes de langue (par exemple, pour le français). Modifiez le texte dans le code de langue (par exemple,
) ; ne changez pas la chaîne .
UTILISATION DE DIGITAL PUBLISHING SUITE 127
Assemblage et publication
Dernière mise à jour le 1/2/2013
Détails des droits (édition Enterprise uniquement)
Les options suivantes sont disponibles si vous choisissez l’une des options de droits pour le type de lecteur de contenu.
Remarque : pour obtenir des informations détaillées sur la configuration d’un serveur de droits personnalisé, contactez
votre représentant Adobe.
URL du service Indiquez l’URL principale de votre service de droits. Ce dernier est nécessaire pour l’activation des
abonnements.
URL d’authentification du service Spécifiez l’URL d’hébergement du service d’authentification. Celui-ci stocke les date
et heure auxquelles les utilisateurs se sont connectés.
ID d’intégrateur Adobe propose un ID d’intégrateur sous réserve que votre compte de droits soit en service sur nos
serveurs.
Créer une URL de compte (facultatif) Spécifiez l’URL permettant aux clients de s’abonner par le biais de l’éditeur au
lieu de suivre la procédure d’abonnement Apple. Cette URL est utilisée quand un utilisateur sélectionne un bouton
« S’abonner » qui pointe vers votre service de droits.
URL de mot de passe oublié Spécifiez l’URL permettant aux clients de récupérer leur mot de passe en cas d’oubli.
URL facultative d’abonnement existant Spécifiez l’URL permettant aux clients d’indiquer un abonnement à une
version papier lors de la mise en place d’un abonnement à une version numérique. Laissez ce champ non renseigné
pour désactiver le bouton pointant vers l’abonnement à une version papier dans le lecteur.
Envoyer l’ID et la version d’application Cette option permet d’envoyer les chaînes d’ID et de version du lecteur de
contenu dans les appels API de droits.
Bannière de droits activée Sélectionnez cette option pour afficher une bannière d’abonnement sur toute la largeur
dans la bibliothèque du lecteur. Si cette option n’est pas activée, seule la mosaïque pour l’abonnement s’affiche dans la
bibliothèque.
URL de la page de bannière Spécifiez l’URL qui affiche la bannière d’abonnement si l’utilisateur est connecté à
Internet. Cette bannière pleine largeur s’affiche dans la section supérieure de la bibliothèque du lecteur au-dessus de
la mosaïque d’abonnement et des folios disponibles.
Fichiers de bannière hors ligne Sélectionnez le fichier .zip contenant les ressources à utiliser comme bannière si
l’utilisateur n’est pas connecté à Internet. Ce fichier .zip doit contenir un seul fichier HTML, un ou plusieurs fichiers
image et des fichiers CSS (facultatif). Le fichier .zip ne doit pas contenir de sous-dossiers : tout le contenu doit se
trouver au même niveau.
Hauteur de la bannière Spécifiez la hauteur de la bannière affichée dans la bibliothèque du lecteur de contenu.
Détails de l’abonnement
Les options suivantes sont disponibles si vous choisissez l’une des options d’abonnement pour le type de lecteur de
contenu.
Mosaïques d’abonnement Indiquez les images d’arrière-plan qui décrivent les options d’abonnement Apple. Pour les
mosaïques de paysage qui apparaissent lors de la rotation du périphérique sur le côté, spécifiez une image
468 x 135 pixels pour les iPad 1 et 2, et une image 936 x 270 pixels pour l’iPad3. Pour les mosaïques de portrait,
spécifiez des images 331 x 180 et 662 x 360 pixels pour les deux tailles d’iPad.
Tapotez la mosaïque pour lancer les options d’abonnement iOS. Ces options sont déterminées par les informations
d’achat spécifiées lors de votre abonnement dans iTunes Connect.
UTILISATION DE DIGITAL PUBLISHING SUITE 128
Assemblage et publication
Dernière mise à jour le 1/2/2013
URL facultative de la mosaïque pour l’abonnement à la bibliothèque Spécifiez une URL qui s’affiche dans une fenêtre
de navigateur In-App quand le client tapote la mosaïque d’abonnement. Cette page Web peut inclure des messages qui
ne font pas nécessairement référence aux abonnements.
URL de la boîte de dialogue personnalisée à distance Cette URL est chargée dès que le client termine le processus
d’abonnement. Vous pouvez, par exemple, demander des informations sur l’utilisateur ou fournir des détails
supplémentaires au sujet de vos produits.
Type d’abonnement/Produits d’abonnement Sélectionnez Payé si vous possédez une application d’abonnement au
détail. Pour les produits d’abonnement, cliquez sur l’icône Plus pour spécifier au moins un ID de produit Apple iTunes
Connect et la durée correspondante. Ces options s’affichent quand les clients tapotent la mosaïque d’abonnement ou
sélectionnent le bouton d’abonnement.
Sélectionnez Gratuit si vous créez une application Kiosque avec l’option Abonnement gratuit d’Apple. Spécifiez l’ID
de produit d’abonnement gratuit que vous avez indiqué dans iTunes Connect.
Utiliser des chaînes d’abonnement personnalisées Pour personnaliser les chaînes d’abonnement, utilisez l’option
Utiliser des chaînes personnalisées dans le panneau Détails de l’application.
Important : un secret partagé est exigé avec les lecteurs de contenu pour les abonnements. Servez-vous d’iTunes Connect
pour créer ou afficher votre secret partagé. Utilisez l’outil Administration de comptes pour indiquer les caractères secrets
partagés associés au compte Application. Ensuite, ouvrez l’organiseur Folio Producer pour déclencher la mise à jour
secrète partagée.
Panneau d’icônes et d’écrans de démarrage
Ce panneau permet de définir les icônes d’application et écrans de démarrage visibles dans iTunes et sur l’iPad.
Au lieu de sélectionner chaque fichier d’icône un à un, sélectionnez les fichiers dans une fenêtre du Finder et faites-les
glisser dans le panneau Icônes et Ecrans de démarrage.
Icônes d’application Les icônes que vous spécifiez ici seront utilisées sur l’écran d’accueil de l’iPad au moment de
l’installation et sur l’Apple Store visible depuis l’iPad. Spécifiez des icônes 29 x 29, 50 x 50 et 72 x 72 pixels au format
PNG pour les périphériques iPad 1 et 2. Spécifiez des icônes 58 x 58, 100 x 100 et 156 x 144 pixels au format PNG pour
les périphériques iPad3. Spécifiez des icônes 29 x 29, 57 x 57 et 114 x 114 pixels pour l’iPhone. Apple crée
automatiquement des angles arrondis. N’agrandissez pas les images plus petites. Utilisez des fichiers PNG haute
qualité, 72 ppp, aplatis, de type RVB.
Remarque : pensez à toujours inclure l’extension .png dans les noms de vos fichiers image.
Ecrans de démarrage Lorsque le lecteur de contenu démarre, un écran de démarrage s’affiche pendant près de trois
secondes. Pour les écrans de démarrage, spécifiez les images suivantes à l’aide de fichiers plats RVB en 72 ppp au
format PNG haute qualité. Pour réduire la taille du fichier, utilisez Enregistrer pour le Web et les périphériques dans
Photoshop pour enregistrer des fichiers au format PNG 8 bits.
• Images de 1 024 x 768 et 768 x 1 024 pixels pour l’iPad 1 et 2
• Images de 2 048 x 1 536 et 1 536 x 2 048 pixels pour l’iPad 3
• Images de 320 x 480 pixels pour l’iPhone 3GS
• Images de 320 x 480 pixels pour l’iPhone 4/4S
Pour de meilleurs résultats, il est préférable que l’écran de démarrage et la couverture utilisent des images différentes.
Si les deux images sont identiques, les utilisateurs peuvent penser que l’application est figée lors de son démarrage
initial. Certains éditeurs ajoutent « Chargement . . . » aux images de l’écran de démarrage.
UTILISATION DE DIGITAL PUBLISHING SUITE 129
Assemblage et publication
Dernière mise à jour le 1/2/2013
Image en option La grande icône d’application s’affichera sur l’Apple Store de votre ordinateur et, au besoin,
représentera votre application sur l’Apple Store. Spécifiez une image de 512 x 512 pixels sur les appareils iPad et
iPhone basse résolution et une image de 1 024 x 1 024 pixels sur les périphériques iPad et iPhone haute résolution.
Pour des résultats optimaux, utilisez Enregistrer pour le Web et les périphériques dans Photoshop pour créer des
fichiers au format PNG 8 bits. Vous pouvez également spécifier cette image lors de l’envoi de votre application sur
l’Apple Store. N’agrandissez pas les images plus petites. Utilisez des fichiers PNG haute qualité, 8 bits, 72 ppp, aplatis,
de type RVB. Pour réduire la taille du fichier, créez des fichiers PNG de 8 bits au lieu de 24.
Activer l’effet de brillance sur l’icône de l’application Indiquez si vous voulez associer l’effet de brillance à vos icônes
d’application ; il s’agit d’une zone plus claire dans la partie supérieure de l’icône.
Brillance désactivée (gauche) et activée (droite)
Fichier compressé de polices pour HTML (en option) Si vous appliquez des polices de texte dans vos piles HTML ou
dans les incrustations d’affichage Web, vous pouvez les inclure dans le fichier .folio ou dans le lecteur de contenu. Si
vous choisissez de les inclure dans le lecteur de contenu, compressez les polices dans un dossier .zip. Le fichier .zip ne
doit pas contenir de sous-dossiers : tout le contenu doit se trouver au même niveau.
Kiosque
Si vous activez le Kiosque, votre lecteur de contenu s’affiche dans le dossier Kiosque sur les iPad dotés d’iOS5. Pour
activer le Kiosque, vous devez créer un lecteur de contenu avec un abonnement iTunes (Abonnement iTunes
uniquement ou Droit avec abonnement iTunes mais pas Droit uniquement). En outre, vous devez activer les
notifications Push.
Activer le Kiosque Sélectionnez cette option pour que votre lecteur apparaisse dans le dossier Kiosque.
Magazine/Journal Indiquez si le Kiosque doit classer votre lecteur de contenu comme un magazine ou un journal.
Bord de la reliure Sélectionnez une option afin de déterminer l’aspect de l’icône Kiosque lorsqu’un client touche deux
fois le bouton d’accueil pour afficher les applications actives. Par exemple, le choix de l’option Gauche pour la reliure
a pour effet d’afficher un bord de reliure sur la gauche et les ornements de la page sur la droite.
Icône Kiosque Indiquez une icône au format PNG qui apparaîtra dans le dossier Kiosque. Utilisez un fichier PNG
haute qualité, aplati, RVB de 72 ppp et de 96 x 128 pixels pour les iPad 1 et 2, et un fichier 192 x 256 pixels pour l’iPad3.
Cette icône est utilisée comme image de couverture dans le Kiosque. Cette icône est remplacée par l’icône de
couverture du dernier folio publié.
Barre d’outils de navigation (édition Enterprise uniquement)
Ce panneau vous permet de personnaliser la barre d’outils de navigation qui apparaît dans votre lecteur de contenu
personnalisé en bas de la bibliothèque.
Masquer le bouton Accueil Si la barre d’outils de navigation est affichée, appuyer sur le bouton Bibliothèque sur la
barre inférieure de navigation a le même effet qu’appuyer sur le bouton d’accueil (désormais appelé le bouton
Bibliothèque) dans le coin supérieur gauche de la barre de navigation. Pour éviter cette redondance, pensez à masquer
le bouton d’accueil (Bibliothèque).
Afficher la barre d’outils de navigation Sélectionnez cette option pour afficher la barre d’outils de navigation en bas du
lecteur de contenu.
UTILISATION DE DIGITAL PUBLISHING SUITE 130
Assemblage et publication
Dernière mise à jour le 1/2/2013
Indiquez si la barre d’outils de navigation doit s’afficher dans toutes les vues, y compris la vue du folio et de la
bibliothèque, ou si elle doit être masquée lors de la visualisation des folios.
Masquer l’icône du lecteur Si l’option Afficher la barre d’outils de navigation est active, vous pouvez masquer l’icône
du lecteur qui apparaît par défaut. Appuyez sur l’icône du lecteur pour afficher le dernier folio visualisé.
Masquer les boutons Acheter Sélectionnez cette option si vous souhaitez que les folios soient disponibles à la vente
uniquement via un abonnement et non via des achats individuels.
Masquage de folios gratuits Sélectionnez cette option pour masquer les folios gratuits de votre bibliothèque. Cette
option est particulièrement utile si vous souhaitez utiliser votre serveur personnalisé pour autoriser les clients à
sélectionner des folios en fonction des informations contenues dans leurs comptes.
Pour plus d’informations sur la restriction des folios, voir Using restricted distribution with Digital Publishing Suite
(Utilisation d’une distribution restreinte avec Digital Publishing Suite).
Masquer le bouton Se connecter Sélectionnez cette option si vous souhaitez qu’un bouton Se connecter apparaisse
dans l’angle supérieur gauche de la page Web qui s’affiche lorsque les utilisateurs touchent l’une des icônes
personnalisées.
Personnaliser et tester la barre d’outils et les icônes personnalisées Cette section permet d’indiquer les icônes
personnalisées de la barre d’outils de navigation de la bibliothèque par défaut ou de spécifier une bibliothèque HTML
personnalisée.
Utiliser la bibliothèque de lecteur personnalisée Lorsque vous cliquez sur l’icône Bibliothèque dans la section Barres
de navigation de DPS App Builder, l’option Utilisez la bibliothèque de lecteurs personnalisés s’affiche. Si vous cliquez
sur l’icône de l’option, vous pouvez spécifier le fichier .zip qui contient le code HTML. Voir « Création d’une
bibliothèque personnalisée (Entreprise) » à la page 133.
Etat relevé de l’icône Cliquez sur l’icône Plus sur la droite du panneau pour créer un bouton personnalisé sur la barre
d’outils de navigation. Ou sélectionnez les icônes de la bibliothèque ou du lecteur à utiliser en remplacement des icônes
par défaut. Indiquez des fichiers PNG représentant l’aspect normal du bouton. Utilisez une image 75 x 43 pixels pour
les iPad 1 et 2, et une image 150 x 86 pixels pour l’iPad3.
Lorsque les utilisateurs appuient sur une icône personnalisée, un navigateur intégré affiche le contenu du
fichier HTML que vous avez fourni, c’est-à-dire un site Web pour une boutique, un flux d’informations ou une page
d’aide. Il leur suffit ensuite d’appuyer sur le bouton de fermeture pour revenir à la bibliothèque. Vous pouvez
configurer jusqu’à trois boutons personnalisés sur la barre d’outils.
Etat enfoncé de l’icône Indiquez des fichiers PNG à afficher lorsque l’utilisateur touche le bouton. Utilisez une image
75 x 43 pixels pour les iPad 1 et 2, et une image 150 x 86 pixels pour l’iPad3. Par exemple, vous pouvez modifier la
bordure noire de l’image en couleur rouge.
Etat désactivé de l’icône Indiquez des fichiers PNG à afficher lorsque le bouton n’est pas disponible, pendant un
téléchargement, par exemple. Utilisez une image 75 x 43 pixels pour les iPad 1 et 2, et une image 150 x 86 pixels pour
l’iPad3. Par exemple, vous pouvez afficher la version grisée d’un panier pour un bouton Boutique.
Type Sélectionnez Affichage Web pour afficher le contenu d’un fichier HTML que vous spécifiez. Sélectionnez
Navigation uniquement si vous publiez une application basée sur Woodwing dans laquelle vous pouvez utiliser les
métadonnées de mode pour atteindre une couverture, une table des matières ou l’article d’aide. Spécifiez le mode dans
le champ Etiquette.
Etiquette Cette option vous permet de créer des liens d’article qui ouvrent le contenu HTML associé à l’icône
personnalisée. Par exemple, si votre étiquette est « Magasin », créer un bouton avec une action
goto://ApplicationViewState/Magasin ouvre la banque de données HTML. Voir « Création de liens de type
atteindre (« goto ») vers les icônes personnalisées » à la page 62.
UTILISATION DE DIGITAL PUBLISHING SUITE 131
Assemblage et publication
Dernière mise à jour le 1/2/2013
Zip des ressources HTML de l’icône Spécifiez un fichier .zip contenant les ressources à utiliser pour l’affichage Web qui
apparaît lorsque l’utilisateur touche le bouton de la barre d’outils. Ce fichier .zip doit comporter un seul fichier HTML
ainsi que toute image et fichier CSS requis. Le fichier .zip ne doit pas contenir de sous-dossiers : tout le contenu doit
se trouver au même niveau.
Verrouillage de l’orientation Si vous souhaitez que la vue Web qui apparaît, lorsque les utilisateurs touchent le bouton
de barre d’outils, s’affiche dans une seule orientation, choisissez Horizontal ou Vertical.
Masquer la barre de titre Sélectionnez cette option pour masquer la barre de titre qui apparaît en haut de la
bibliothèque du lecteur lorsque le contenu HTML de l’icône personnalisée s’affiche.
Lancement automatique Vous pouvez personnaliser un des boutons de la barre d’outils en le définissant sur
Lancement automatique. Lorsque le lancement automatique est activé, l’ouverture de la bibliothèque du lecteur de
contenu affiche automatiquement la page HTML.
Afficher les commandes de navigation Affiche les commandes de navigation, comme un bouton Précédent et
Actualiser pour cette page Web. Ces options s’affichent dans la barre de titre, au-dessus du contenu HTML.
Remarque : cliquez sur l’icône Plus sur la droite du panneau de la barre d’outils de navigation pour ajouter un maximum
de huit boutons personnalisés. Vous pouvez également remplacer les boutons Bibliothèque et Lecteur. Cliquez sur les
boutons de la barre d’aperçu pour passer d’un bouton à un autre.
Partage sur réseaux sociaux
Ces paramètres permettent de contrôler si les clients peuvent partager les articles de l’application par le biais de
Facebook, Twitter, Courrier électronique ou Copier/coller. Le partage sur les réseaux sociaux est disponible pour les
lecteurs iPad et iPhone. Toutefois, cette fonctionnalité n’est pas disponible pour les applications à publication unique
ou les lecteurs Android.
Pour comprendre le flux de travaux de partage sur les réseaux sociaux, voir « Utilisation du partage sur les réseaux
sociaux » à la page 152. Pour savoir comment configurer Facebook pour le partage dans le réseau social, voir Setting
up a DPS App for Social Networking.
Activer le partage par courrier électronique Sélectionnez cette option pour ajouter Courrier électronique au menu de
partage sur réseau social dans la zone supérieure droite de la barre de navigation du lecteur de contenu. Les clients
peuvent sélectionner cette option pour envoyer un message électronique contenant un lien renvoyant à l’article ou à
une URL de publication.
Activer le partage Twitter Sélectionnez cette option pour ajouter Twitter au menu de partage sur réseau social. Les
clients peuvent sélectionner cette option pour envoyer un message à leur flux Twitter.
Activer le partage par copie de lien Sélectionnez cette option pour ajouter Copier le lien dans le menu de partage sur
réseau social. Les clients peuvent sélectionner cette option pour copier l’URL de l’article ou de la publication à partager
et la coller dans une page Web ou à un autre emplacement.
Activer le partage sur Facebook Sélectionnez cette option pour ajouter Facebook au menu de partage sur réseau
social. Les clients peuvent sélectionner cette option pour laisser un commentaire et un lien sur leur mur Facebook.
ID de l’application Facebook Spécifiez l’ID d’application obtenu auprès du site de développement Facebook.
URL de publication Spécifiez l’URL qui contient des informations sur votre publication. Le lien vers la publication
URL apparaît lorsque les clients partagent un article protégé.
UTILISATION DE DIGITAL PUBLISHING SUITE 132
Assemblage et publication
Dernière mise à jour le 1/2/2013
Mise en service
Apple exige que les toutes les applications soient signées au moyen d’un certificat valide et mises en service avant de
pouvoir être exécutées sur l’iPad. Dans la section relative à la mise en service, spécifiez les fichiers mobileprovision. Au
moment de télécharger les lecteurs de contenu, spécifiez les certificats.
Pour plus d’informations sur la création de certificats et de fichiers mobileprovision, reportez-vous au iPad Publishing
Companion Guide de format PDF disponible dans le tableau de bord ou depuis le menu Aide de DPS App Builder.
Lecteur de contenu Enterprise signé Sélectionnez cette option uniquement si vous souhaitez utiliser un certificat de
mise en service d’entreprise pour un lecteur à distribuer seulement dans la société. Précisez un ID d’application et votre
fichier mobileprovision d’entreprise. Voir la section « Création d’un lecteur signé par l’entreprise » à la page 140.
Fichier de développement mobileprovision Le fichier mobileprovision permet de déterminer la liste des iPad
autorisés à installer et utiliser votre lecteur de contenu. Le fichier mobileprovision pour l’application de
développement comprend une liste UDID, qui recense les ID des iPad.
Fichier de distribution mobileprovision Le fichier mobileprovision permet de déterminer la liste des iPad autorisés à
installer et utiliser votre lecteur de contenu.
Compilation de développement téléchargeable localement Sélectionnez cette option si vous souhaitez ajouter
manuellement des fichiers .folio au lecteur de développement via iTunes. Seuls les fichiers .folio peuvent être utilisés,
et non les fichiers .zip créés à l’aide du bouton Exporter de l’organiseur Folio Producer.
Activer les notifications Push Sélectionnez cette option pour activer les notifications Push. Si vous sélectionnez cette
option, un badge rouge apparaît sur l’icône du lecteur de contenu et indique le nombre de folios disponibles ou le
Kiosque active un processus de notification Push. La sélection de cette option est obligatoire si le Kiosque est activé.
Utiliser le serveur Push Adobe Si vous sélectionnez cette option, les notifications Push sont gérées par le serveur
Adobe. Précisez le certificat de production ainsi que le mot de passe que vous créez sur le site des développeurs Apple.
Pour configurer les notifications Push, configurez votre ID d’application, créez des fichiers mobileprovision et un
certificat Push de production. Pour obtenir des instructions détaillées, reportez-vous au iPad Publishing Companion
Guide de format PDF que vous pouvez télécharger à partir du menu Aide dans DPS App Builder.
Si vous désélectionnez cette option (Entreprise uniquement), vous pouvez spécifier un serveur Push tiers. Spécifiez un
serveur dans le champ URL Push. Spécifiez les demandes de serveur supplémentaires dont votre serveur a besoin dans
le champ Paramètres Push personnalisés. Pour obtenir des instructions simples sur le paramétrage du serveur Push,
voir « Notifications Push » à la page 150.
Détails de la compilation
Si vous vous êtes connecté à l’aide d’un ID Adobe fourni pour le suivi Omniture, les paramètres de suivi des données
utilisateur apparaissent sur la page Détails de la compilation. Ces données sont remplies automatiquement. Si ces
options ne s’affichent pas alors que vous avez un compte d’entreprise, contactez votre représentant Adobe.
Après avoir spécifié les informations ou les fichiers de tous les champs obligatoires, cliquez sur Envoyer la compilation,
puis sur Terminer.
Le temps nécessaire à l’opération de création des applications de développement et de distribution dépend de la charge
de travail du serveur.
UTILISATION DE DIGITAL PUBLISHING SUITE 133
Assemblage et publication
Dernière mise à jour le 1/2/2013
Téléchargement et test des lecteurs de contenu
Les certificats sont obligatoires pour deux applications de lecteur de contenu différentes : une application de
développement et une application de distribution. L’application de développement est utilisée dans le cadre de tests,
tandis que l’application de distribution est l’application que vous envoyez à Apple après avoir testé et approuvé
l’application de développement.
1 Sélectionnez votre lecteur de contenu dans la page de gestion lorsque la version de votre lecteur de contenu
personnalisé apparaît.
2 Cliquez sur Developer Viewer (.ipa) pour télécharger l’application de développeur.
3 Indiquez votre certificat de développeur p12 et votre mot de passe, puis cliquez sur Télécharger et signer.
Certificat de développement P12 Le fichier .p12 sauvegarde vos informations de clé privée de certificat. Pour créer
le fichier de certificat .p12, vous devez vous rendre sur le site Apple Developer afin de créer et télécharger un
certificat, puis utiliser l’utilitaire Keychain Access pour exporter la clé privée de ce certificat en tant que
certificat .p12.
Mot de passe de développement P12 Lorsque vous créez le fichier de certificat .p12, vous êtes invité à créer un mot
de passe. Les mots de passe vides ne fonctionnent pas. Si vous avez utilisé un mot de passe vide, créez à nouveau le
fichier de certificat .p12 avec un vrai mot de passe.
4 Ajoutez l’application de développement (.ipa) à votre bibliothèque iTunes et suivez les instructions du guide PDF
de publication sur iPad, « iPad Publishing Companion Guide.pdf », pour tester votre application.
5 Si l’application de développement fonctionne normalement, revenez dans la page de gestion dans DPS App Builder
et cliquez sur Lecteur Distribution (.zip). Spécifiez les informations relatives au certificat de distribution, puis
cliquez sur Télécharger et signer.
Envoi et gestion du lecteur de contenu
Après avoir téléchargé et testé votre lecteur de contenu personnalisé, envoyez le lecteur de distribution (.zip) à Apple.
Envoi de l’application de développement Si votre application de développement fonctionne comme prévu, envoyez
l’application de distribution (.zip) à l’Apple Store. Pour obtenir des instructions détaillées, consultez le guide PDF de
publication sur l’iPad.
Changement de l’état d’approbation Lorsque l’application que vous avez envoyée est acceptée et apparaît dans la
boutique, ouvrez DPS App Builder et cliquez sur Etat d’approbation à côté de l’application personnalisée. Saisissez les
informations et cliquez sur Envoyer. Un lien vers votre application est ajouté à Digital Publishing.
Mise à jour d’une compilation Si vous avez besoin de créer des icônes différentes ou d’effectuer d’autres modifications,
sélectionnez le lecteur de contenu sur la page principale et cliquez sur Modifier. Vos informations et sélections sont
conservées. Apportez les modifications nécessaires, puis envoyez à nouveau la compilation. Votre application sera
mise à jour.
Suppression d’une compilation Si vous n’avez plus besoin des applications de développement et de distribution,
sélectionnez le lecteur de contenu sur la page principale et cliquez sur Supprimer.
Création d’une bibliothèque personnalisée (Entreprise)
Si vous êtes un éditeur d’entreprise, vous pouvez remplacer la bibliothèque du lecteur par défaut par une bibliothèque
personnalisée que vous aurez créée.
1 Créez le fichier .zip contenant le code HTML à utiliser pour la bibliothèque personnalisée. Pour plus d’informations
sur la création de fichiers HTML, voir Implémentation d’une bibliothèque séparée et d’une boutique.
UTILISATION DE DIGITAL PUBLISHING SUITE 134
Assemblage et publication
Dernière mise à jour le 1/2/2013
2 Dans DPS App Builder, créez ou modifier le lecteur de droits.
3 Dans la section Barre d’outils de navigation de DPS App Builder, cliquez sur l’icône Bibliothèque dans la barre noire
sous Personnaliser et tester la barre d’outils et les icônes personnalisées.
4 Cliquez sur l’icône située en regard de Utiliser la bibliothèque de lecteur personnalisée et spécifiez le fichier .zip
contenant le code HTML que vous avez créé.
Pour obtenir des informations supplémentaires sur la création de bibliothèques personnalisées, voir Creating an
HTML implementation of the DPS default library (« Création d’une implémentation HTML de la bibliothèque par
défaut DPS ») par Derek Lu.
Création d’un lecteur de contenu personnalisé pour
l’iPad (Single Edition)
Pour de plus amples informations sur la création d’une application personnalisée pour Pad avec une licence Single
Edition, téléchargez le Guide de publication pas à pas pour Single Edition.
Création d’un lecteur de contenu personnalisé pour les
périphériques Android et Amazon
Utilisez DPS App Builder pour créer un lecteur de contenu personnalisé pour les périphériques Android et Amazon.
Vous pouvez créer des lecteurs de contenu pour folios multiples, mais pas pour folios simples. Les achats In-App pour
Google Play Store (qui s’appelait Android Market auparavant) sont disponibles. Vous aurez accès aux services d’achat
et d’abonnement In-App dans l’Amazon Appstore dès que la tablette Amazon Fire sera commercialisée. Consultez
l’article intitulé DPS Publishing Process for Android and Amazon Mobile Devices (Processus de publication dans DPS
pour les périphériques mobiles Android et Amazon).
Les étapes de création de lecteurs pour Google Play Store et Amazon Appstore sont similaires. Dans les deux cas de
figure, il convient de créer un fichier .apk à envoyer. Il est possible de créer la même applications pour chaque boutique
et chaque application peut autoriser le téléchargement du même contenu. Par exemple, l’application « DPS Tips »
apparaît dans Google Play Store et Amazon Appstore et propose les mêmes folios en téléchargement. Sur un
périphérique Android, il est possible de télécharger l’application à partir de l’une ou l’autre des boutiques. Dans
Amazon Fire, vous pouvez télécharger l’application uniquement depuis Amazon Appstore.
Si vous définissez des fichiers et des informations valides, DPS App Builder génère un fichier .apk. Si le fonctionnement
est correct, envoyez le fichier .apk à Google Play Store.
Les informations, telles que les certificats et mots de passe, que vous fournissez ne sont pas stockées sur le serveur
Adobe. Seuls les fichiers d’application y sont stockés.
Création d’un lecteur de contenu personnalisé
1 Procurez-vous les fichiers et les éléments d’information requis. Reportez-vous à « Liste de contrôle spécifique au
lecteur de contenu pour folios multiples (Android et Amazon) » à la page 122 et Processus Publishing Process for
Android Mobile Devices.
2 Téléchargez et installez DPS App Builder.
DPS App Builder est disponible dans le tableau de bord Digital Publishing Suite et il est installé avec InDesign CS6
lorsque vous mettez à jour les outils DPS Desktop.
UTILISATION DE DIGITAL PUBLISHING SUITE 135
Assemblage et publication
Dernière mise à jour le 1/2/2013
3 Démarrez DPS App Builder et connectez-vous en utilisant un ID Adobe valide.
L’ID Adobe que vous utilisez pour vous connecter à DPS App Builder peut être différent de celui que vous utilisez
pour définir l’ID de titre dans le panneau Détails de l’application.
4 Cliquez sur Nouveau, sélectionnez Android, puis cliquez sur Suivant.
5 Indiquez les fichiers et les informations requis.
Panneau Détails de l’application
Le panneau Détails de l’application permet de définir les noms des lecteurs et les informations d’ID de compte.
Nom de l’application Donnez un nom au lecteur de contenu ; il apparaît sous l’icône d’application. En règle générale,
utilisez au plus 13 caractères pour éviter que le nom ne soit tronqué.
Pour tester le nom de votre lecteur de contenu, ajoutez un signet sur la page d’accueil Android.
Version de l’application Indiquez le lecteur le plus récent.
DPS App Builder inclut une version précédente à des fins de sauvegarde.
Type de l’application Spécifiez le type de lecteur de contenu (voir « Types de lecteurs de contenu personnalisés » à la
page 103). Les options disponibles varient en fonction du type de compte.
• Multi-folio Un lecteur de contenu pour publications multiples comprend une bibliothèque qui permet aux
utilisateurs de télécharger du contenu hébergé sur Adobe Distribution Service.
• Multi-folio avec droits (Enterprise uniquement) Créez un lecteur de contenu utilisant un serveur de droit
personnalisé pour déterminer quels clients peuvent télécharger du contenu. Si vous sélectionnez cette option, vous
utiliserez votre propre service d’abonnement.
• Multi-folio avec abonnement Amazon Créez un lecteur de contenu utilisant le modèle d’abonnement de l’Amazon
Appstore. Actuellement, les abonnements Google ne sont pas pris en charge.
• Publication multiple avec droit et abonnement Amazon (Enterprise uniquement) Créez un lecteur de contenu
utilisant un serveur de droit personnalisé pour déterminer quels clients peuvent télécharger du contenu. Les clients
peuvent s’abonner via votre service d’abonnement ou via l’Amazon Appstore.
Marché Choisissez l’option correspondant à la destination voulue pour votre application : Google Play Store ou
Amazon Appstore pour Android. Si vous n’avez pas l’intention d’envoyer l’application que vous créez dans une
boutique, choisissez l’option Aucune.
Mode d’affichage dans la bibliothèque Indiquez si vous voulez que la bibliothèque utilise le mode Affichage de la
grille, Affichage de la couverture ou les deux. Dans la bibliothèque, le mode Affichage de la grille affiche huit folios par
page. Le mode Affichage de la couverture affiche un seul folio par page. Sur des périphériques plus petits, certains
éditeurs proposent uniquement le mode Affichage de la couverture.
Titre (affichage de bibliothèque) Indiquez le titre ; il apparaît en haut de la bibliothèque de lecteurs. Pour de meilleurs
résultats, limitez-vous à 35 caractères. N’utilisez, pour le moment, que des caractères numériques ou
alphanumériques. L’utilisation de caractères spéciaux, tels que les apostrophes (‘), risque de produire des résultats
inattendus sur les périphériques Android.
ID de titre/Mot de passe Saisissez l’ID Adobe et le mot de passe correspondant à votre application. Indiquez l’ID
Adobe utilisé pour publier les folios de cette application. Assurez-vous que l’ID Adobe a bien le rôle Application dans
l’outil Administration de comptes.
UTILISATION DE DIGITAL PUBLISHING SUITE 136
Assemblage et publication
Dernière mise à jour le 1/2/2013
Options avancées
Rendu strict pour périphériques Android 7" Par défaut, les lecteurs des périphériques Android affichent les folios de
toutes les tailles. Pour que le lecteur de contenu affiche uniquement les folios qui correspondent au format de
l’appareil, vous pouvez sélectionner une option dans DPS App Builder. Actuellement, les rendus stricts affichent
uniquement les folios 1 024 x 600 pour les périphériques comme Kindle Fire et les folios 1 280 x 800 pour les
périphériques Android à écran extra-large. Cette option est particulièrement utile pour empêcher l’affichage de rendus
indésirables sur des périphériques Kindle Fire. Si vous avez créé des rendus Android comme des folios 1 232 x 752,
n’activez pas les rendus stricts lorsque vous créez le lecteur pour Google App Store.
Activer les signets Sélectionnez cette option pour permettre à vos utilisateurs d’affecter des signets à leurs articles
favoris dans l’application. Si cette option est activée, une icône Signets apparaît sur la zone supérieure droite de la barre
de navigation du lecteur. Les signets ne sont pas encore disponibles dans le lecteur de contenu de l’iPhone.
Activer le masquage automatique des barres de défilement des folios Par défaut, une zone de défilement de 6 pixels
s’affiche sur le côté droit des articles dans un folio. Si vous sélectionnez cette option, la barre de défilement s’affiche
uniquement lorsque l’utilisateur fait défiler l’article.
Activer la navigation avec les zones actives gauche et droite Si vous sélectionnez cette option, les zones chaudes
invisibles apparaissent sur les côtés gauche et droit de chaque article (ou de la page si l’article défile uniquement
horizontalement). Si vous touchez sur une zone chaude, vous accédez à l’article suivant ou précédent. Les zones
chaudes sont particulièrement utiles pour les incrustations en mode Plein écran, comme dans les diaporamas. Les
zones chaudes ne sont pas disponibles pour les lecteurs iPhone.
Si un bouton s’affiche dans la zone chaude, il vous suffit d’appuyer sur la zone pour activer le bouton. Pour toute autre
incrustation qui s’affiche dans la zone chaude, il vous suffit d’appuyer sur la zone pour l’activer.
Activer la zone active du bas pour afficher les commandes d’affichage des folios Si vous sélectionnez cette option, il
suffit d’appuyer dans la zone active dans le bas de la page pour afficher les barres de navigation (également appelées
« HUD »). Si vous appuyez n’importe où au-dessus de la zone active du bas, aucune barre de navigation ne s’affiche.
Les boutons sont prioritaires sur la zone active du bas, la zone active du bas est prioritaire sur les zones actives gauche
et droite et les zones actives sont prioritaires sur les incrustations ne correspondant pas à des boutons.
Afficher la boîte de souscription Analytics Si vous sélectionnez cette option, les clients de l’application peuvent
désactiver le suivi des données.
Utiliser des chaînes personnalisées Vous pouvez personnaliser toutes les chaînes stockées dans le lecteur de contenu
dans toutes les langues prises en charge. Vous pouvez, par exemple, personnaliser le texte des boutons dans la
bibliothèque et le texte dans les boîtes de dialogue. Sélectionnez cette option, puis cliquez sur le bouton de génération
de modèle pour télécharger un modèle XML vers le dossier de documents. Vous pouvez ensuite modifier ce fichier
XML et le spécifier dans DPS App Builder.
Détails des droits (édition Enterprise uniquement)
Les options suivantes sont activées si vous choisissez Droit pour le type de lecteur de contenu.
Remarque : pour obtenir des informations détaillées sur la configuration d’un serveur de droits personnalisé, contactez
votre représentant Adobe.
ID d’intégrateur Adobe propose un ID d’intégrateur sous réserve que votre compte de droits soit en service sur nos
serveurs. Cette option n’est disponible que pour les clients d’entreprise de Digital Publishing Suite.
Créer une URL de compte Spécifiez l’URL permettant aux clients de s’inscrire à un abonnement par l’intermédiaire de
l’éditeur. Cette URL est utilisée lorsque l’internaute tapote sur un bouton de type S’abonner dans le lecteur.
URL de mot de passe oublié Spécifiez l’URL permettant aux clients de récupérer leur mot de passe en cas d’oubli.
UTILISATION DE DIGITAL PUBLISHING SUITE 137
Assemblage et publication
Dernière mise à jour le 1/2/2013
Envoyer l’ID et la version d’application Cette option permet d’envoyer les chaînes d’ID et de version du lecteur de
contenu dans les appels API de droits.
Bannière de droits activée Sélectionnez cette option pour afficher une bannière HTML dans la bibliothèque du lecteur
lorsque le périphérique est connecté au Web.
URL de la page de bannière Spécifiez l’URL présentant le contenu qui apparaît dans la section supérieure de la
bibliothèque du lecteur de contenu.
Fichiers de bannière hors ligne Sélectionnez le fichier .zip contenant les ressources à utiliser comme bannière si
l’utilisateur n’est pas connecté au Web. Ce fichier .zip doit contenir un seul fichier HTML, un ou plusieurs fichiers
image et aucun fichier CSS. Le fichier .zip ne doit pas contenir de sous-dossiers : tout le contenu doit se trouver au
même niveau.
Hauteur de la bannière Spécifiez la hauteur de la bannière affichée dans la bibliothèque du lecteur de contenu.
Panneau Détails de l’abonnement
Servez-vous de ce panneau pour configurer votre lecteur pour l’abonnement Amazon.
Mosaïque en mode paysage pour l’abonnement Spécifiez une image de 467 x 120 pixels (taille recommandée) avec
une extension .png. Cette image apparaît dans la bibliothèque lorsque le périphérique est en position latérale.
Mosaïque en mode portrait pour l’abonnement Spécifiez une image de 255 x 145 pixels (taille recommandée) avec
une extension .png. Cette image apparaît dans la bibliothèque lorsque le périphérique est en position verticale.
UGS d’abonnement par défaut Indiquez l’UGS d’abonnement par défaut de votre abonnement Amazon. Cette
référence (UGS) est limitée à 150 caractères. Utilisez l’UGS sous abonnement que vous avez spécifié sur le portail des
développeurs Amazon Appstore (https://developer.amazon.com). Vous pouvez spécifier soit l’UGS parent, soit l’un
des UGS enfants qui identifie le terme ou la durée de l’abonnement. Si vous spécifiez un UGS enfant, il devient la
sélection par défaut.
URL de la boîte de dialogue d’abonnement personnalisé (facultatif) Spécifiez une URL qui s’affiche dans une fenêtre
de navigateur In-App quand le client tapote la mosaïque d’abonnement. Cette page Web peut inclure des messages qui
ne font pas nécessairement référence aux abonnements. Indiquez si cette boîte de dialogue doit s’afficher avant ou
après l’achat de l’abonnement.
Panneau d’icônes et d’écrans de démarrage
Utilisez ce panneau pour spécifier les icônes d’application et les écrans de démarrage visibles dans Google Play Store,
Amazon Appstore et sur les périphériques Android.
Icônes 36 x 36/48 x 48/72 x 72 Une fois installées, les icônes que vous indiquez sont utilisées sur la page d’accueil
Android et dans la boutique d’applications. Fournissez des icônes de 36 x 36, 48 x 48 et 72 x 72 pixels au format PNG.
N’agrandissez pas les images plus petites. Utilisez des fichiers PNG haute qualité, 72 ppp, aplatis, de type RVB.
Remarque : pensez à toujours inclure l’extension .png dans les noms de vos fichiers image.
Ecran de démarrage en mode paysage Lorsque le lecteur de contenu démarre, un écran de démarrage s’affiche
pendant près de trois secondes. Spécifiez un fichier PNG 8 bits, de 72 ppp, de taille 1 280 x 800, 1 920 x 1 200 ou de
2 048 x 1 536.
Utilisez le même écran de démarrage pour tous les périphériques Android. Assurez-vous que la création s’adapte à la
zone plus petite du périphérique cible, par exemple 800 x 600. Considérez la zone extérieure comme un fond perdu.
Lorsque l’écran de démarrage s’affiche sur des périphériques plus petits, les zones extérieures de l’image sont rognées.
UTILISATION DE DIGITAL PUBLISHING SUITE 138
Assemblage et publication
Dernière mise à jour le 1/2/2013
Pour de meilleurs résultats, il est préférable que l’écran de démarrage et la couverture utilisent des images différentes.
Si les deux images sont identiques, les utilisateurs peuvent penser que l’application est figée lors de son démarrage
initial.
Ecran de démarrage en mode portrait Spécifiez un fichier PNG 8 bits, de 72 ppp, de taille 800 x 1 280, 1 200 x 1 920 ou
1 536 x 2 048.
Fichier compressé de polices pour HTML (en option) Si vous appliquez des polices de texte dans vos piles HTML ou
dans les incrustations d’affichage Web, vous pouvez les inclure dans le folio ou dans le lecteur de contenu. Si vous
choisissez de les inclure dans le lecteur de contenu, compressez les polices dans un dossier .zip. Le fichier .zip ne doit
pas contenir de sous-dossiers : tout le contenu doit se trouver au même niveau.
Barre d’outils de navigation (édition Enterprise uniquement)
Ce panneau vous permet de personnaliser la barre d’outils de navigation qui apparaît dans votre lecteur de contenu
personnalisé au bas de la bibliothèque. Voir « Barre d’outils de navigation (édition Enterprise uniquement) » à la
page 129.
Mise en service
ID de l’application Indiquez un ID d’application unique pour l’application. Si possible, inversez la syntaxe de domaine,
par exemple « com.éditeur.publication » Utilisez uniquement des points, des traits d’union et des caractères
alphanumériques basiques (a-z, A-Z, 0-9).
Remarque : dans les versions précédentes, DPS App Builder ajoutait le préfixe « air ». à l’ID d’application (par exemple,
« air.com.adobe.dpstips »). Si l’application que vous avez déjà soumise à Amazon Appstore contient le préfixe « air »
ajoutez-le à l’ID d’application dans DPS App Builder. Pour afficher l’ID d’application existant dans Amazon Appstore,
connectez-vous au portail Amazon Developer, ouvrez l’application et cliquez sur l’onglet Fichier binaire pour afficher le
paramètre « package ».
Détails de la compilation
Après avoir spécifié les informations ou les fichiers de tous les champs obligatoires, cliquez sur Envoyer la compilation,
puis sur Terminer.
Le temps nécessaire à l’opération de création des applications de développement et de distribution dépend de la charge
de travail du serveur.
Test de l’application de développement Téléchargez la compilation .apk, ajoutez-la à un ou plusieurs périphériques
Android, puis testez l’application. Suivez les instructions du DPS Publishing Process for Android and Amazon Mobile
Devices (Processus de publication dans DPS pour les périphériques mobiles Android et Amazon).
Téléchargement et test du lecteur de contenu Android
Lorsque vous téléchargez le fichier .apk généré, vous êtes invité à spécifier les informations relatives au certificat.
Google exige que toutes les applications soient signées au moyen d’un certificat valide avant de pouvoir être exécutées
sur un périphérique Android. Pour plus d’informations sur la création de ce certificat, voir DPS Publishing Process for
Android and Amazon Mobile Devices (Processus de publication dans DPS pour les périphériques mobiles Android
et Amazon).
1 Sélectionnez votre lecteur de contenu dans la page de gestion lorsque la version de votre lecteur de contenu
personnalisé apparaît.
2 Cliquez sur le programme d’installation Android Installer (.apk) pour télécharger le lecteur de contenu Android.
UTILISATION DE DIGITAL PUBLISHING SUITE 139
Assemblage et publication
Dernière mise à jour le 1/2/2013
3 Indiquez votre certificat de développeur p12 et votre mot de passe, puis cliquez sur Télécharger et signer.
4 Ajoutez le fichier .apk à un ou plusieurs périphériques Android.
Envoi et gestion du lecteur de contenu
Après avoir téléchargé et testé votre lecteur de contenu personnalisé, envoyez le lecteur de distribution (.zip) à
Google Play Store ou Amazon Appstore.
Envoi de l’application de développement Si votre application de développement fonctionne comme prévu, envoyez le
fichier d’application (fichier .apk) à Google Play Store ou Amazon Appstore. Suivez les instructions du DPS
Publishing Process for Android and Amazon Mobile Devices (Processus de publication dans DPS pour les
périphériques mobiles Android et Amazon).
Changement de l’état d’approbation Lorsque l’application que vous avez envoyée est acceptée et apparaît dans la
boutique, ouvrez DPS App Builder et cliquez sur Etat d’approbation à côté de l’application personnalisée. Saisissez les
informations et cliquez sur Envoyer. Un lien vers votre application sera ajouté à la Galerie Digital Publishing.
Mise à jour d’une compilation Si vous avez besoin de créer des icônes différentes ou d’effectuer d’autres modifications,
sélectionnez le lecteur de contenu sur la page principale et cliquez sur Modifier. Vos informations et sélections sont
conservées. Apportez les modifications nécessaires, puis envoyez à nouveau la compilation. Votre application sera
mise à jour.
Suppression d’une compilation Si vous n’avez plus besoin des applications de développement et de distribution,
sélectionnez le lecteur de contenu sur la page principale et cliquez sur Supprimer.
A propos des lecteurs de contenu personnalisés pour les
périphériques PlayBook
DPS App Builder ne prend plus en charge les périphériques PlayBook.
Création d’une instance personnalisée d’Adobe Content
Viewer pour iPad et l’iPhone
Si vous disposez d’un compte Professional ou Enterprise, vous pouvez utiliser DPS App Builder pour créer votre
propre version d’Adobe Content Viewer pour l’iPad. Cette possibilité comporte deux avantages. Premièrement, quand
une nouvelle version des outils Folio Producer est disponible, vous pouvez en tester les nouvelles fonctionnalités en
attendant l’approbation d’Adobe Content Viewer. Deuxièmement, la fonction Aperçu sur le périphérique est activée
dans la version personnalisée d’Adobe Content Viewer.
Si vous vous connectez à l’aide d’un compte d’entreprise, vous pouvez créer une application d’entreprise que vous
pouvez distribuer en interne. Si vous ne créez pas d’application d’entreprise, Adobe Content Viewer sera disponible
uniquement sur les iPads sur lesquels le fichier mobileprovision du développeur spécifie les ID de périphérique
(UDID). Pour plus d’informations sur la création de certificats et de fichiers mobileprovision, reportez-vous au « iPad
Publishing Companion Guide » de format PDF disponible dans le tableau de bord ou depuis le menu Aide de DPS App
Builder
1 Connectez-vous à DPS App Builder en utilisant un compte Professional ou Enterprise.
2 Dans DPS App Builder, cliquez sur Nouveau et sélectionnez iPad, puis cliquez sur Suivant.
UTILISATION DE DIGITAL PUBLISHING SUITE 140
Assemblage et publication
Dernière mise à jour le 1/2/2013
3 Dans le champ Version de Viewer, sélectionnez Adobe Content Viewer. Cliquez sur Suivant.
4 Utilisez l’une des méthodes suivantes, puis cliquez sur le bouton Suivant :
• (Professionnel) Spécifiez le fichier mobileprovision du développeur.
• (Entreprise) Si vous sélectionnez Compilation d’entreprise, spécifiez l’ID d’application prévue (par exemple
com.publisher.viewer) et le fichier mobileprovision d’entreprise. Utilisez le même ID d’application prévue que
celui utilisé sur le site Apple Developer pour créer le fichier mobileprovision d’entreprise. Pour plus
d’informations sur les compilations d’entreprise, voir « Création d’un lecteur signé par l’entreprise » à la
page 140.
5 Cliquez sur Suivant et suivez les invites à l’écran.
6 Téléchargez et enregistrez Adobe Content Viewer.
7 Le cas échéant, proposez Adobe Content Viewer à la distribution.
Pour installer Adobe Content Viewer, faites glisser le fichier content-viewer.ipa dans votre bibliothèque iTunes et
synchronisez votre iPad.
Il n’est pas nécessaire de supprimer la version App Store d’Adobe Content Viewer. Vous pouvez installer plusieurs
versions d’Adobe Content Viewer sur votre iPad. Vous pouvez même ouvrir les deux lecteurs à l’aide de deux comptes
distincts.
Adobe Content Viewer cesse de fonctionner quand votre fichier mobileprovision de développeur arrive à expiration.
S’ils ne sont pas liés à une entreprise, les fichiers mobileprovision expirent après trois mois.
Voir aussi
« Utilisation de la fonction Aperçu sur le périphérique » à la page 101
Création d’un lecteur signé par l’entreprise
Si vous possédez Enterprise Edition de Digital Publishing Suite, vous pouvez créer des lecteurs de contenu iPad et
iPhone à des fins de distribution interne uniquement. Les lecteurs de contenu d’entreprise sont distribués dans
l’entreprise au lieu d’être téléchargés depuis l’Apple Store.
Vous devez vous abonner au programme entreprise des développeurs iOS d’Apple pour pouvoir créer un lecteur de
contenu d’entreprise. Si vous disposez d’un abonnement Apple de type entreprise, vous n’êtes plus limité à
100 périphériques pour vos applications de développement. Pour en savoir plus sur le programme entreprise des
développeurs, voir le Guide de déploiement d’entreprise.
1 Connectez-vous au centre de développement Apple iOS à l’aide d’un ID d’entreprise, puis créez un certificat .p12
d’entreprise et des fichiers mobileprovision.
2 Dans le client Web Folio Producer, publiez les folios qui seront inclus dans votre application interne à l’aide des
paramètres Gratuit et Public.
3 Dans DPS App Builder, spécifiez les détails dans les panneaux des détails de base et d’écran de démarrage.
4 Dans la section Certificats de DPS App Builder, spécifiez le certificat .p12 de développement et de distribution, le
mot de passe et les informations de fichier mobileprovision.
Les détails relatifs à la distribution ne sont pas utilisés pour votre application interne et ne doivent pas être transmis
à l’Apple Store.
5 Sélectionnez l’ID de compilation d’entreprise et précisez l’ID d’application prévue.
UTILISATION DE DIGITAL PUBLISHING SUITE 141
Assemblage et publication
Dernière mise à jour le 1/2/2013
L’ID d’application prévue se présente généralement au format com.publisher.publication.
6 Créez l’application, puis téléchargez le fichier (.ipa) du lecteur de test de développement.
7 Diffusez le fichier mobileprovision et le fichier .ipa par message électronique ou un serveur. Demandez aux
utilisateurs d’installer ces deux fichiers en les faisant glisser vers leur bibliothèque iTunes, puis d’effectuer la
synchronisation avec l’iPad.
Pour de plus amples informations, voir Distribution de lecteurs de contenu iOS d’entreprise avec Digital Publishing.
142
Dernière mise à jour le 1/2/2013
Chapitre 6 : Analyses et services
Omniture Analytics
La page Analytics du tableau de bord DPS vous permet de suivre les données utilisateur de votre lecteur de contenu
personnalisé. Lorsque vous vous abonnez à Adobe Digital Publishing Suite pour un compte Professional ou
Enterprise, vous avez accès à des analyses de base alimentées par Omniture® pour toutes vos applications. Ces données
comprennent le nombre de publications téléchargées et achetées, le meilleur contenu et les meilleures publicités, ainsi
que le nombre d’installations de l’application. Si vous disposez d’un compte Omniture SiteCatalyst®, vous pouvez
accéder à des données d’utilisateur plus détaillées.
Afin d’éviter que des données Analytics indiquent « ::non spécifié:: », indiquez les titres de tous les articles dans les
propriétés de l’article. En outre, dans la mesure du possible, attribuez des noms réels à vos incrustations pour faciliter
l’interprétation des données Analyses. Par exemple, utilisez « Lien Twitter » au lieu de « Bouton 4 ».
Livres blancs sur les analyses
Pour obtenir des informations de base sur les analyses, voir le didacticiel de Digital Publishing Suite Analytics (PDF).
Pour plus d’informations sur l’optimisation des analyses, reportez-vous à Adobe® Digital Publishing Suite, Analytics
Service (PDF).
Pour plus d’informations sur les analyses SiteCatalyst, voir Adobe® SiteCatalyst Digital Publishing Report Guide.
Configuration d’Omniture Analytics
Lorsque vous souscrivez un abonnement Digital Publishing Suite (Professional ou Enterprise), un ID de compte
principal vous est attribué pour que vous puissiez utiliser l’outil Administration de comptes. Servez-vous de cet outil
pour accorder le rôle « Application » à un ID Adobe. Dans le cadre de cette procédure, il vous appartient de fournir les
informations nécessaires à l’activation d’Omniture Analytics. L’activation d’Analytics peut prendre jusqu’à cinq jours
après la communication de ces informations. Voir la section « Outil Administration de comptes » à la page 144.
Si vous pensez que votre compte n’est pas configuré correctement, contactez votre représentant Adobe. Les
informations de contact pour l’assistance Or s’affichent dans DPS Dashboard.
Si vous disposez d’un abonnement Omniture® SiteCatalyst®, vous avez accès à l’ensemble des fonctionnalités
d’Omniture SiteCatalyst sur le site my.omniture.com.
Affichage de données analytiques
1 Connectez-vous au Tableau de bord Adobe Digital Publishing Suite.
Seul un compte ID Adobe doté du rôle Application permet d’afficher la page Analytics. Pour visualiser les données
d’analyse, utilisez l’ID Adobe employé dans le panneau Folio Builder pour envoyer du contenu destiné à votre
application de lecteur personnalisé.
2 Cliquez sur Analytics.
Les rapports relatifs à votre lecteur de contenu personnalisé sont chargés.
3 Pour analyser vos données, effectuez l’une des actions suivantes :
Afficher un rapport différent Dans la partie gauche de la page Analytics, cliquez sur un type de rapport différent,
tel que celui relatif aux achats individuels ou aux publicités.
UTILISATION DE DIGITAL PUBLISHING SUITE 143
Analyses et services
Dernière mise à jour le 1/2/2013
Changer de plages de dates Utilisez les icônes de calendrier Du/Au pour définir une plage de dates. Cliquez
ensuite sur Mise à jour.
Spécifier le folio Après avoir défini une plage de dates, sélectionnez le folio dont vous souhaitez afficher les
données.
Trier les données Cliquez sur l’en-tête de colonne dans n’importe quel tableau pour trier les données selon ce
critère. Cliquez une nouvelle fois pour inverser la direction, de A à Z ou de Z à A.
Données d’analyses pour une application de lecteur de contenu personnalisé
4 Pour télécharger un fichier .csv contenant des informations relatives aux téléchargements facturables qui peuvent
être affichés dans une application de feuille de calcul, cliquez sur l’option de rapport d’exécution.
Ce fichier .csv inclut le nombre de téléchargements depuis Adobe Distribution Service facturés sur votre compte de
téléchargements.
Vente de contenu numérique
Il existe plusieurs façons de vendre votre contenu numérique via des boutiques d’applications, de·la vente individuelle
d’un lecteur de contenu à publication unique au modèle d’abonnement permanent. Les possibilités varient en fonction
de l’édition dont vous disposez.
Vous pouvez créer et vendre du contenu numérique via Apple App Store, Google Play Store et Amazon Appstore.
UTILISATION DE DIGITAL PUBLISHING SUITE 144
Analyses et services
Dernière mise à jour le 1/2/2013
Articles connexes
Outil Administration de comptes
Avant l’arrivée de l’outil Administration de comptes, un représentant Adobe fournissait des ID Adobe permettant
d’utiliser les outils DPS. Avec l’outil Administration de comptes, un administrateur de votre entreprise peut créer et
fournir les comptes. Vous pouvez accorder trois types de rôles aux comptes, lesquels dépendent tous des ID Adobe.
Pour plus d’informations sur l’utilisation des ID Adobe, voir « Utilisation d’un ID Adobe pour la publication
numérique » à la page 6.
Outil Administration de comptes
A. Comptes délégués auxquels sont affectés des rôles Application B. Compte délégué auquel aucun rôle n’est attribué (déconseillé)
Compte principal et comptes délégués
Lorsque vous vous abonnez à Digital Publishing Suite, un compte de votre entreprise se voit attribuer le rôle
Administrateur. Il s’agit du compte principal. Le compte principal ne figure pas dans l’outil Administration de
comptes. Vous ne pouvez ni supprimer, ni modifier le compte principal.
Lorsque vous utilisez le compte principal pour vous connecter à l’outil Administration de comptes, vous pouvez
affecter à d’autres comptes des rôles de délégués. Un rôle de délégué est directement lié au compte principal. Chaque
compte délégué doit disposer de sa propre adresse électronique. Vous pouvez attribuer des rôles aux délégués avec un
ID Adobe existant mais non vérifié pour travailler avec DPS, ou vous pouvez créer un nouvel ID Adobe délégué sur la
base d’un compte de messagerie existant. Cependant, vous ne pouvez pas créer de compte de délégué à partir d’un ID
Adobe vérifié pour travailler avec DPS.
Dès lors qu’un ID Adobe (et l’adresse électronique qui lui est associée) est lié à un compte délégué, il est difficile de
supprimer cette liaison.
Pour effectuer cette action : Consultez la section :
Comprendre les différents types de lecteurs de contenu « Types de lecteurs de contenu personnalisés » à la page 103
Créer des folios pour des périphériques mobiles de différentes tailles « Création de documents pour divers périphériques » à la page 44
« Création de rendus de folio » à la page 117
Créer un lecteur de contenu avec Single Edition « Présentation de Single Edition » à la page 10
Créer un lecteur de contenu personnalisé à envoyer à une boutique « DPS App Builder » à la page 122
Créer une application iPad d’entreprise pour une distribution en
interne uniquement
« Création d’un lecteur signé par l’entreprise » à la page 140
A
B
UTILISATION DE DIGITAL PUBLISHING SUITE 145
Analyses et services
Dernière mise à jour le 1/2/2013
Important : réfléchissez bien avant d’associer l’adresse électronique d’une personne à un compte délégué. Une fois que
vous avez associé un ID Adobe à un compte délégué, vous pouvez utiliser cet ID Adobe à des fins de publication
numérique uniquement pour votre entreprise. Si vous supprimez cet ID Adobe, vous ne pourrez plus l’utiliser pour vous
servir des fonctions DPS.
Un ID Adobe qui n’est pas affecté à un compte d’entreprise donné est appelé compte concepteur. Vous pouvez créer
des comptes concepteur à l’adresse https://digitalpublishing.acrobat.com/fr/CreateAccount.html.
Pour modifier un compte de messagerie associé à un ID Adobe, voir Modification de l’adresse e-mail associée à un ID
Adobe.
Types de rôles de délégués
Une fois que vous avez ajouté un compte délégué à votre entreprise, vous pouvez affecter jusqu’à trois rôles pour ce
compte.
Administrateur Le compte principal se voit attribuer le rôle Administrateur, mais vous pouvez affecter le rôle
Administrateur à d’autres comptes. Un compte qui dispose du rôle Administrateur peut utiliser l’outil Administration
de comptes.
Application Un rôle Application vous permet d’associer un lecteur de contenu personnalisé aux folios publiés. Utilisez
un ID Adobe distinct pour chaque lecteur de contenu que vous créez. Evitez d’utiliser les ID Adobe de personnes
physiques. Par exemple, si vous publiez plusieurs magazines de cuisine, vous pouvez créer un ID Adobe pour la cuisine
au barbecue (dps.cuisinebarbecue@cuisinedujour.com), un autre pour la cuisine créole
(dps.cuisinecreole@cuisinedujour.com), etc.
Utilisez le compte Application pour créer et publier des folios, et afficher des analyses. Lorsque vous définissez l’ID
d’application dans DPS App Builder, le lecteur de contenu personnalisé que vous créez affiche les folios publiés avec
le compte.
DPS App Builder Avec un compte DPS App Builder, vous pouvez vous connecter à DPS App Builder et créer des
lecteurs personnalisés. Vous pouvez utiliser le même ID Adobe pour le compte Application et le compte DPS App
Builder ou vous pouvez créer un compte DPS App Builder pour créer des applications en utilisant un ou plusieurs
comptes Application.
Meilleures pratiques pour l’administration des comptes
Pour des résultats optimaux, utilisez un domaine d’entreprise pour créer des adresses e-mail dédiées pour les comptes
délégués. Vous pouvez par exemple utiliser les comptes suivants pour une entreprise qui publie des magazines de
cuisine :
• Comptes Application : dps.cuisinebarbecue@cuisinedujour.com, dps.cuisinecreole@cuisinedujour.com et
dps.cuisinefrancaise@cuisinedujour.com
• Compte DPS App Builder : dps.builder@cooktoday.com
• Compte Administrateur : dps.admin@cuisinedujour.com
• Compte délégué sans rôle : dps.jeannedurand@cuisinedujour.com
Dans cet exemple, un compte DPS App Builder est utilisé pour se connecter et publier les trois applications de lecteur
de magazines. Une autre méthode consiste à affecter un rôle d’application et un rôle DPS App Builder au même
compte.
Dans cet exemple, un compte délégué spécifique a été créé pour Jeanne Durand. Elle utilise ce compte pour publier des
informations propriétaires de l’entreprise. Elle ne doit s’en servir que pour créer du contenu pour cet éditeur.
UTILISATION DE DIGITAL PUBLISHING SUITE 146
Analyses et services
Dernière mise à jour le 1/2/2013
N’utilisez pas l’outil d’administration pour créer ou affecter des ID Adobe de concepteurs donnés à votre compte
d’entreprise, sauf si vous souhaitez que ces comptes ne soient autorisés à utiliser les outils DPS que pour votre
entreprise. Les concepteurs peuvent se créer des ID Adobe valides depuis le Tableau de bord DPS
(https://digitalpublishing.acrobat.com/fr/CreateAccount.html).
Les délégués dépendent directement du compte principal. Si le compte principal est fermé, les comptes délégués le sont
également.
Tout contenu téléchargé depuis un compte délégué est facturé au compte principal. Tout contenu publié par les
délégués est également facturé comme téléchargement au compte principal.
Utilisation de l’outil Administration de comptes
1 Connectez-vous au Tableau de bord Adobe Digital Publishing Suite.
2 Cliquez sur Administration de comptes.
Si cette option est grisée, cela signifie que le compte sous lequel vous vous connectez ne dispose pas de privilèges
Administrateur. Si vous vous connectez avec votre ID de compte principal, mais n’avez pas accès à l’outil
Administration de comptes, envoyez un courrier électronique à dmpubsup@adobe.com pour demander
l’activation de votre compte. Une fois le compte principal activé, l’utilisateur est en mesure de se connecter et de
bénéficier de comptes administrateur supplémentaires.
3 Dans le panneau Administration de comptes, cliquez sur Ajouter des utilisateurs.
4 Dans la boîte de dialogue Nouveaux utilisateurs, effectuez l’une des opérations suivantes :
• Pour un ID existant d’Adobe qui n’a pas été encore vérifié pour travailler avec DPS, indiquez l’ID d’Adobe de
l’utilisateur que vous souhaitez modifier, puis cliquez sur Soumettre. Si l’ID Adobe a été vérifié pour travailler
avec Digital Publishing Suite, il ne peut pas être ajouté.
• Pour créer un nouvel ID Adobe, vous devez d’abord créer un compte de messagerie valide, mais ne vous
connectez à aucun service de DPS. Cliquez sur Créer un nouvel ID Adobe, indiquez les informations, puis
cliquez sur Créer un compte. Un message est envoyé au compte de messagerie. Cliquez sur le lien figurant dans
ce message pour spécifier un mot de passe et vérifier le compte.
5 Dans le panneau Administration de comptes, sélectionnez l’utilisateur, puis cliquez sur Configurer un utilisateur.
6 Sous Ajouter des rôles, définissez le type de rôle (Comptes d’application, Comptes DPS App Builder ou
Administrateur de compte) à affecter au compte. Cliquez sur Activer, puis complétez les informations nécessaires.
UTILISATION DE DIGITAL PUBLISHING SUITE 147
Analyses et services
Dernière mise à jour le 1/2/2013
Attribution d’un compte Application à un ID Adobe
Configuration des paramètres de stockage pour spécifier un rôle d’application
Lorsque vous modifiez un compte Application, vous avez la possibilité de définir des informations secrètes partagées.
Un secret partagé est exigé dans iOS pour les lecteurs de contenu avec abonnement et pour tous les lecteurs de contenu
Amazon avec des folios vendus au détail.
Apple appelle ce code d’informations un « secret partagé », mais Android et Amazon l’appellent respectivement une
« clé publique » et une « clé partagée ». Si vous proposez du contenu au détail pour un lecteur de contenu qui apparaît
dans Amazon Appstore, la clé partagée est requise. Pour savoir comment obtenir un secret partagé, reportez-vous au
guide de publication associé à la plateforme.
Utilisez les mêmes informations de secret partagé pour toutes les applications. Evitez de modifier le secret partagé.
Remarque : une fois que vous avez spécifié les informations secrètes partagées, connectez-vous au Tableau de bord DPS
à l’aide de ce compte d’application. Se connecter au tableau de bord authentifie le secret partagé.
Dans les paramètres de stockage, vous pouvez également spécifier l’URL de l’application iTunes une fois votre
application publiée dans iTunes. Cette URL est utilisée dans le flux de travaux de partage social pour permettre aux
destinataires du partage de télécharger l’application si celle-ci n’est pas installée.
Spécification des informations du lecteur de contenu Web
Dans la section Lecteur de contenu Web de la section Application, définissez les options suivantes :
Nom de l’application Le nom de l’application que vous spécifiez s’affiche dans la barre de titre lorsqu’un article partagé
est affiché dans un navigateur Web Viewer.
UTILISATION DE DIGITAL PUBLISHING SUITE 148
Analyses et services
Dernière mise à jour le 1/2/2013
Remarque : spécifiez également l’URL de l’application iTunes dans les paramètres de stockage de façon à ce que les
destinataires de partage soient invités à télécharger l’application si celle-ci n’est pas installée.
Activer le lecteur de contenu Web Sélectionnez cette option pour permettre aux utilisateurs de voir vos articles dans le
lecteur de contenu Web dans un navigateur d’ordinateur de bureau. Si vous activez le lecteur de contenu Web, les vues
d’article sont comptées par rapport à vos exécutions de téléchargement, comme décrit dans « Nombre de médias
sociaux téléchargés » à la page 155.
Si vous désactivez cette option et activez le partage sur les réseaux sociaux dans DPS App Builder, les liens de partage
sur les réseaux sociaux pointent vers l’URL de publication que vous définissez dans DPS App Builder et non pas vers
les articles Lecteurs Web. Le paramètre Activer le lecteur de contenu Web n’a aucun effet lorsque l’utilisateur touche
les liens de partage sur les réseaux sur son iPad ou son iPhone.
URL de redirection Si l’article partagé est introuvable, l’URL de redirection que vous spécifiez s’affiche. Créez une page
Web contenant des informations relatives à votre application.
Activer la limite d’exécution Cette option est utile pour placer une limite sur le nombre total d’articles qui peut être
affiché dans le lecteur de contenu Web. Une fois que cette limite est atteinte, un utilisateur qui tente d’afficher un
article partagé dans le lecteur de contenu Web sur son ordinateur de bureau est redirigé vers une URL que vous
spécifiez indiquant que la limite d’exécution a été atteinte. Créez une page Web contenant des informations relatives
à votre application.
Activer le paywall Vous pouvez configurer un paywall pour les articles de lecteur Web Viewer des folios gratuits ou
vendus au détail. Lorsque les utilisateurs cliquent sur les liens pour afficher les articles que vous avez marqués comme
non protégés, ils peuvent continuer à lire tous les articles non protégés présents dans ce folio sauf si vous définissez
une limite ou un seuil. Lorsque les utilisateurs atteignent la limite, une page de paywall s’affiche avec un bouton qui
permet d’accéder à une URL que vous spécifiez. Créez une page Web contenant des informations relatives à votre
application.
URL de bouton de paywall Spécifiez lı’URL où vous pouvez fournir aux utilisateurs les informations de
téléchargement et d’achat de votre application.
Texte de paywall Saississez un bref message qui apparaît sur la page du paywall. Par exemple, vous pouvez indiquer
que le nombre maximum d’articles visualisés a été atteint et que les utilisateurs peuvent cliquer sur le lien pour en
savoir plus sur l’application.
Spécification des informations Analytics
Lors de la modification du compte Application, vous pouvez spécifier les informations pour configurer un compte
Omniture Analytics. Les données utilisateur associées à votre contenu sont automatiquement collectées et mises à
disposition des clients Professional et Entreprise. La configuration de l’intégration d’Analytics diffère légèrement selon
que vous disposez d’un compte Professional ou Enterprise.
Professional Vous n’êtes pas obligé de remplir le champ Analytics. Les détenteurs d’un compte Professional déjà
clients SiteCatalyst peuvent faire envoyer toutes les données Analytics à un Report Suite dédié depuis leur compte
SiteCatalyst. Si vous ne disposez pas d’un compte SiteCatalyst, n’entrez pas de données de rapport. Les données des
analyses sont collectées dans un compte interne Adobe.
Enterprise Les détenteurs d’un compte Enterprise doivent spécifier un nom de Report Suite et peuvent indiquer le
nom de l’entreprise s’ils disposent déjà d’un compte SiteCatalyst.
Remarque : lorsque vous spécifiez une Report Suite, N’UTILISEZ PAS les préfixes réservés adp.ln, adp.da et adp.sj.
Lorsque vous soumettez les informations SiteCatalyst, la configuration d’Omniture Analytics pour l’application peut
prendre jusqu’à cinq jours ouvrés. (voir la section « Omniture Analytics » à la page 142).
UTILISATION DE DIGITAL PUBLISHING SUITE 149
Analyses et services
Dernière mise à jour le 1/2/2013
Maintenance de votre abonnement DPS
Si vous avez un abonnement DPS à jour avec Adobe, vous pouvez soumettre des lecteurs de contenu sur les boutiques
d’application et publier des folios. Vos clients peuvent télécharger les folios que vous publiez. Toutefois, si votre
compte avec Adobe devient obsolète ou si vous êtes à court de téléchargements, les services peuvent être limités ou
annulés.
Adobe envoie des messages électroniques à l’utilisateur admin de votre compte pour vous avertir lorsque votre compte
approche de sa date de fin ou lorsque votre nombre maximal de téléchargements est presque atteint. Ces messages
électroniques incluent des instructions permettant de maintenir votre compte à jour. Si vous pensez que vous ne
recevez pas ces courriers électroniques, contactez votre représentant Adobe. Les informations de contact pour
l’assistance Or s’affichent dans DPS Dashboard.
Publication restreinte et exécution de folios
Votre publication de folios peut être limitée et vos clients peuvent ne pas être en mesure de télécharger des folios dans
l’une ou l’autre des situations suivantes :
• Si vous n’avez pas renouvelé votre abonnement Professional ou Enterprise dans les 30 jours précédant la date de fin
de votre abonnement.
• Si vous avez dépassé le nombre maximum de téléchargements achetés.
Si des téléchargements sont disponibles mais que vous ne parvenez pas à renouveler votre abonnement, vos clients
peuvent continuer à télécharger des folios pendant 30 jours après la date de fin. Trente jours après la date de fin, Adobe
se réserve le droit de limiter le téléchargement de folios par vos clients.
Lorsque les téléchargements de folio sont restreints, tout folio gratuit, folio gratuit archivé ou folio de vente au détail
devient « temporairement indisponible ». Tout client qui touche le bouton Télécharger ou Acheter est informé que le
contenu n’est pas disponible, et il lui est demandé de réessayer ultérieurement.
Les abonnements payants sont respectés. Les folios publiés qui n’ont pas encore été téléchargés sont disponibles au
téléchargement pour les abonnés. Ces téléchargements sont comptabilisés sur le compte de l’éditeur.
Les clients ont le droit de télécharger tout folio pour lequel ils ont payé. Un client qui appuie sur le bouton Télécharger
d’un folio de vente au détail archivé est autorisé à télécharger le folio. Ces téléchargements sont comptabilisés sur le
compte de l’éditeur.
Compte annulé
Si vous n’avez pas renouvelé votre abonnement DPS ou si vous n’achetez pas un assemblage de téléchargement dans
les 60 jours suivant la date de fin, Adobe se réserve le droit de supprimer votre contenu de Distribution Service et de
déclasser votre compte. Tous les lecteurs de contenu pour publication unique restent disponibles dans l’App Store.
Mise à jour de votre compte
Pour éviter un compte restreint, conservez votre abonnement à jour et achetez les assemblages de téléchargement
supplémentaires. Si nécessaire, contactez votre représentant Adobe.
Abonnements et droits
Des options d’abonnement intégrées sont désormais disponibles sur iOS et Amazon. Diverses options d’abonnement
sont disponibles, notamment le modèle d’abonnement d’Apple (éditions Professional et Enterprise) et un serveur de
droit personnalisé (édition Enterprise uniquement).
UTILISATION DE DIGITAL PUBLISHING SUITE 150
Analyses et services
Dernière mise à jour le 1/2/2013
Abonnements Apple et Amazon
Lorsque les utilisateurs s’abonnent à votre application au moyen d’un abonnement iOS ou Amazon, ils ont
l’autorisation d’accéder à tous les folios dont la date de publication est comprise entre la date de début et la date de fin.
La première fois qu’ils s’abonnent, ils ont, en outre, le droit de télécharger le tout dernier folio publié. Si, par exemple,
un utilisateur souscrit un abonnement de six mois à compter du 10 novembre, l’abonnement prend effet à partir du
10 novembre et prend fin le 10 mai. Dès qu’il s’abonne, l’utilisateur est en droit de télécharger le dernier folio publié
ainsi que tous les folios publiés entre le 10 novembre et le 10 mai. Ces six mois d’accès au contenu restent valables
même en cas de non renouvellement de l’abonnement.
Il est recommandé d’utiliser l’organiseur Folio Producer pour gérer les paramètres de date de publication de vos folios.
Si vous publiez un magazine tous les trois mois, pensez à utiliser des paramètres de publication pertinents et cohérents,
tels que 1er janvier, 1er avril, 1er juillet et 1er octobre, même si vous sortez ces folios à des dates différentes. Tant que
vos publications suivront le même rythme, vos abonnés seront autorisés à accéder au contenu en conséquence.
Pour plus d’informations sur la configuration d’abonnements et sur les droits relatifs aux lecteurs de contenu iPad
personnalisés, procurez-vous le guide de publication sur l’iPad au format PDF depuis le Tableau de bord DPS. Pour
plus d’informations sur la configuration d’abonnements pour les applications Amazon Appstore, voir le site de
développeur Amazon Appstore.
Serveurs de droits personnalisés
Pour savoir comment configurer un serveur de droits personnalisé en vue de gérer les abonnements par le biais de
votre propre site, contactez votre représentant Adobe. Le contenu des développeurs est également disponible dans le
centre des développeurs Digital Publishing Suite.
Distribution restreinte
La distribution restreinte est la méthode qui permet de rendre le contenu disponible uniquement pour un petit groupe
de lecteurs en fonction de leurs profils utilisateur ou de leurs autorisations. Par défaut, un ensemble limité de folios est
présenté à l’utilisateur. Les folios supplémentaires s’afficheront uniquement une fois l’utilisateur connecté à
l’application. La liste des folios sélectionnés pour l’affichage est basée sur les autorisations de l’utilisateur. Pour plus de
détails sur la diffusion restreinte, voir Using Restricted Distribution with Digital Publishing Suite (Utilisation d’une
distribution restreinte avec Digital Publishing Suite).
Notifications Push
Vous pouvez informer les clients de folios mis à jour ou nouveaux avant l’ouverture de votre lecteur de contenu. Si
vous avez configuré les notifications Push en utilisant Adobe Push Server, une notification Push peut indiquer à
l’utilisateur qu’une nouvelle publication est disponible ou elle peut déclencher le téléchargement en arrière-plan de la
nouvelle publication si l’application se trouve dans iOS Newsstand.
La publication d’un folio ne déclenche plus de notification Push automatique. Après avoir publié ou mis à jour un folio,
vous pouvez déclencher une notification Push à votre convenance en cliquant sur le bouton Notifier dans l’organiseur
Folio Producer. Pour rendre plus fiable la livraison de contenu sur les périphériques, le serveur Push Adobe envoie des
notifications de manière régulière sur une période, et non pas toutes à la fois.
L’environnement de notification Push est différent pour les applications Newsstand et les applications non-
Newsstand :
Applications non-Newsstand Lorsque l’éditeur clique sur le bouton Notifier pour indiquer un folio nouveau ou mis à
jour, les utilisateurs voient le badge rouge sur l’icône de l’application.
UTILISATION DE DIGITAL PUBLISHING SUITE 151
Analyses et services
Dernière mise à jour le 1/2/2013
Notification Push indiquant la disponibilité d’un nouveau folio
Applications Newsstand Lorsque l’éditeur clique sur le bouton Notifier pour indiquer un folio nouveau ou mis à jour,
seuls les abonnés à l’application voient un badge rouge sur l’icône Newsstand qui indique le nombre de folios
téléchargés en arrière-plan. Un cordon bleu « Nouveau » apparaît sur la couverture d’application dans Newsstand
jusqu’à ce que l’abonné ouvre l’application. Pour les abonnés et non-abonnés, l’image de couverture est mise à jour
pour refléter la dernière couverture du folio. Les notifications Push sont obligatoires pour les applications Newsstand.
Les abonnés à une application Newsstand voient un cordon bleu sur l’image de couverture et un badge rouge sur l’icône Newsstand qui indique
le nombre de publications téléchargées en arrière-plan.
Pour plus d’informations sur la création des certificats de notification Push requis par Apple, téléchargez le guide PDF
de publication sur iPad depuis le Tableau de bord DPS.
Configuration de notifications Push tierces (Entreprise uniquement)
Lorsque vous utilisez DPS App Builder pour créer un lecteur de contenu personnalisé, vous pouvez utiliser le serveur
de notification Push Adobe ou définir votre propre serveur de notification Push.
De nombreuses options sont à votre disposition pour la création d’un serveur de notification Push tiers. Lors de la
configuration de votre serveur, le lecteur envoie les informations suivantes :
UTILISATION DE DIGITAL PUBLISHING SUITE 152
Analyses et services
Dernière mise à jour le 1/2/2013
newsstandEnabled=> 0 (this is '8' when newsstand is enabled)
badgeEnabled=> 1
token =>
soundEnabled => 2
devId =>
alertEnabled => 4
targetDimension =>
Vous pouvez créer des propriétés supplémentaires parallèlement à ces propriétés de base. Par exemple, si vous utilisez
le même serveur Push pour plusieurs applications, spécifiez une propriété de nom/valeur supplémentaire (par exemple
« app => cycling ») lors de la configuration du serveur. Dans DPS App Builder, spécifiez ces propriétés
supplémentaires dans le champ Paramètres Push personnalisés du panneau Mise en service.
Message d’état HTTP 417
Si vous recevez un message d’état HTTP 417 lors d’une tentative de notification Push, il est impossible d’établir une
connexion SSL vers Apple APNS à l’aide du certificat de notification Push. Assurez-vous que le certificat de
notification Push est valide et n’est pas arrivé à expiration.
Utilisation du partage sur les réseaux sociaux
Lorsque vous créez un lecteur de contenu personnalisé à éditions multiples pour l’iPad ou l’iPhone, vous pouvez
activer le partage sur les réseaux sociaux. Les clients peuvent sélectionner une option dans votre lecteur de contenu
pour partager l’article par le biais de Facebook, Twitter, de leur messagerie électronique ou de la fonction Copiercoller.
Ce message contient un lien vers l’URL de publication ou l’article selon que vous avez protégé ou non l’article.
Un utilisateur qui clique sur le lien d’un article peut visualiser le contenu de l’article dans le lecteur de contenu Web
d’un navigateur de bureau ou sur un iPad ou un iPhone.
Si vous activez le partage sur les réseaux sociaux, les vues des articles partagés sur le bureau sont incluses dans le
nombre d’exécutions de téléchargements. Pour plus d’informations, voir « Nombre de médias sociaux téléchargés » à
la page 155.
Flux de travaux du client des médias sociaux
Pour des résultats optimaux, effectuez les actions suivantes pour configurer vos folios :
• Créez un folio de 1 024 x 768 pixels en utilisant n’importe quel format d’image. Les articles PDF sont maintenant
transférés vers le serveur du lecteur Web en utilisant le format PNG.
• Créez des rendus de folio pour tous les modèles de périphériques. Tout article partagé depuis un iPhone ou
iPad HD fait un lien vers le rendu iPad SD (1 024 x 768) dans lecteur de contenu Web, et le lien de l’article fait la
correspondance avec le rendu approprié sur le périphérique.
• Quand vous créez des rendus, utilisez les mêmes valeurs de nom d’article pour les articles correspondants dans
chaque rendu afin que l’article partagé fasse correctement le lien dans lecteur de contenu Web et dans l’ensemble
des périphériques. Assurez-vous également que vos rendus de folio sont correctement configurés. Voir « Création
de rendus de folio » à la page 117.
Lorsque vos clients affichent un article dans votre lecteur de contenu, ils peuvent appuyer sur l’icône de partage et
sélectionner l’option de médias sociaux activée de leur choix : Facebook, Twitter, Courrier électronique ou Copier le lien.
UTILISATION DE DIGITAL PUBLISHING SUITE 153
Analyses et services
Dernière mise à jour le 1/2/2013
Choix d’une option de médias sociaux dans le lecteur
Selon l’option sélectionnée, les clients peuvent se connecter, entrez un commentaire et spécifier d’autres informations.
Si, par exemple, ils ont choisi Courrier électronique, ils indiquent des destinataires et rédigent un message.
Si l’article est protégé, le lien sur le mur Facebook, dans le fil Twitter ou dans le message électronique renvoie à l’URL
de publication que vous définissez dans DPS App Builder. Si vous avez annulé la protection de l’article, le lien renvoie
à celui-ci.
Les utilisateurs peuvent soit cliquer sur le lien de l’article dans un navigateur de bureau, soit appuyer sur le lien sur un
iPad ou un iPhone. L’action qui s’ensuit lorsque les utilisateurs cliquent ou appuient sur le lien d’un article dépend des
facteurs suivants :
Si l’article est partagé à partir d’un folio de 2 048 x 1 536 Si le client a partagé l’article non protégé depuis un folio
2 048 x 1 536, le lien de l’article est disponible pour le lecteur Web sur le bureau uniquement si vous définissez un
rendu 1 024 x 768 avec un nom d’article correspondant.
Lorsque le lien est actionné sur un iPad ou iPhone, les utilisateurs peuvent acheter (en case de vente au détail),
télécharger et consulter l’article si les rendus sont correctement configurés. S’il n’existe aucun rendu iPhone ou
1 024 x 768, seuls les utilisateurs dotés de l’iPad HD peuvent lire l’article.
Si l’article est partagé à partir d’un folio de 1 024 x 768 (SD) Si le client a partagé l’article non protégé à partir d’un folio
de 1 024 x 768, toute personne qui clique sur le lien depuis un ordinateur de bureau peut lire l’article dans un
navigateur pris en charge.
UTILISATION DE DIGITAL PUBLISHING SUITE 154
Analyses et services
Dernière mise à jour le 1/2/2013
Tout utilisateur qui touche le lien sur un iPad doit pouvoir acheter, télécharger et lire l’article. Un utilisateur qui touche
le lien sur un modèle d’iPhone peut acheter, télécharger et afficher l’article que si des rendus iPhone sont correctement
configurés.
Lorsqu’ils sont partagés depuis un iPhone Si le client a partagé l’article non protégé depuis un iPhone, le lien de
l’article est disponible pour le lecteur Web sur le bureau uniquement si vous définissez un rendu 1 024 x 768 avec un
nom d’article correspondant.
Tout utilisateur qui touche le lien d’un article sur un iPhone peut voir la version iPhone SD si l’article a été partagé
depuis un folio iPhone SD ou d’un folio iPhone HD avec un rendu SD identique. Si la seule version qui existe est celle
de l’iPhone HD, elle ne peut pas s’afficher sur l’iPhone SD.
Lorsque l’utilisateur touche le lien d’un article sur un iPad ou un iPhone Dans la plupart des cas, une page de
destination comportant un bouton Lire l’article s’affiche. (Si les liens profonds Facebook sont activés, la page de
destination est ignorée.)
• Si l’application n’est pas téléchargée sur le périphérique de l’utilisateur, l’application apparaît dans l’App Store.
Après le téléchargement, l’application s’ouvre comme d’habitude. Les clients peuvent alors acheter et télécharger le
folio.
• Si l’application a déjà été téléchargée sur le périphérique de l’utilisateur, l’activation du bouton Lire l’article figurant
sur la page de destination invite l’utilisateur à acheter ou à télécharger le folio. Lorsque le folio est téléchargé, l’article
lié est d’abord téléchargé, puis apparaît lorsque l’utilisateur appuie sur Affichage.
• Si l’application et le folio sont téléchargés, il vous suffit d’appuyer sur Lire l’article pour afficher l’article.
Lorsque l’utilisateur a atteint la limite de l’article dans lecteur de contenu Web Une page de zone payante s’affiche
avec un bouton En savoir plus. Cette information est affichée dans l’outil Administration de comptes.
Lorsque la limite d’article de l’application est atteinte L’URL indiquant que la limite d’exécution a été atteinte définie
dans l’outil Administration de comptes s’affiche.
Fonctionnalités de lecture Web prises en charge
Les navigateurs compatibles sont Internet Explorer 9, Explorer 10, Safari, Firefox et Chrome. Internet Explorer 8 est
partiellement pris en charge, mais il ne gère pas correctement les articles, les vidéos et autres incrustations HTML. Les
navigateurs mobiles ne peuvent pas afficher les articles dans les versions de lecteur Web.
Les clients qui partage l’article doivent disposer d’iOS5 ou d’une version supérieure sur leur iPad pour que le partage
de l’article fonctionne.
Pour le moment, toutes les incrustations ne sont pas prises en charge dans le lecteur de contenu Web. Les panoramas
ne sont pas encore pris en charge et certaines incrustations de contenu Web peuvent avoir un comportement anormal.
Les articles définis sur Glissement horizontal uniquement ne sont pas aplatis dans le lecteur de contenu Web. Pour
obtenir des résultats optimaux, utilisez DPS App Builder pour créer une application de développement et tester les
articles non protégés dans le lecteur Web.
Configuration du partage social pour votre lecteur de contenu
Pour configurer le partage sur un réseau social, effectuez les tâches suivantes :
• Pour activer le partage sur le réseau social Facebook, enregistrez votre application auprès de Facebook. L’activation
du partage sur Twitter et par le biais de la messagerie électronique et de la fonction Copier-coller ne nécessite
aucune tâche de configuration. Pour obtenir les instructions d’enregistrement dans Facebook, voir Setting up a DPS
App for Social Networking.
UTILISATION DE DIGITAL PUBLISHING SUITE 155
Analyses et services
Dernière mise à jour le 1/2/2013
• Utilisez l’éditeur Folio Producer pour indiquer les articles qui sont protégés. Lorsque vous publiez ou mettez jour
le folio, le contenu des articles non protégés est téléchargé d’un site Web sur un serveur Adobe. Le contenu devrait
être disponible rapidement après la publication du folio, mais pas immédiatement. Si le folio dont vous annulez la
protection est vendu au détail, les utilisateurs qui cliquent sur le lien de l’article peuvent afficher le folio dans le
lecteur de contenu Web du bureau. Toutefois, les utilisateurs de l’iPad qui cliquent sur le lien doivent acheter le
folio pour le lire sauf s’ils se sont déjà acquittés des droits correspondants. Voir « Editeur Folio Producer » à la
page 111.
• Utilisez l’outil Administration de comptes pour activer le partage sur les réseaux sociaux et, si nécessaire, limiter le
nombre d’articles non protégés que les clients peuvent lire, et définissez des informations de paywall. Voir la section
« Outil Administration de comptes » à la page 144.
• Activer les médias sociaux dans DPS App Builder lors de la création ou de la mise à jour du lecteur de contenu.
(Voir « Création d’un lecteur de contenu personnalisé pour l’iPad et l’iPhone » à la page 123).
Voir aussi
« Nombre de médias sociaux téléchargés » à la page 155
Nombre de médias sociaux téléchargés
Si vous utilisez DPS App Builder pour activer le partage sur les réseaux sociaux dans le lecteur de contenu, DPS permet
aux lecteurs d’afficher vos articles dans les navigateurs en utilisant DPS Web Viewer. Ces vues sont comptabilisées par
rapport au nombre d’exécutions comme suit : lorsque le nombre de vues dı’article dans le lecteur de contenu Web
atteint le nombre d’articles (protégés et non protégés) dans le folio, cela compte comme une exécution par rapport à
votre paquet d’exécutions.
Supposons que vous activiez le partage sur les réseaux sociaux dans une application qui comprend un folio de 50
articles. Si une personne lit les 50 articles du folio dans le lecteur de contenu Web, cela compte comme une exécution.
Ou bien, si 50 personnes différentes lisent chacune un article partagé, cela compte comme une exécution. Dans cet
exemple, n’importe quelle combinaison de vues d’article qui atteint 50 dans le folio est comptée comme une exécution.
Cet exemple est fourni à des fins de clarification uniquement. Reportez-vous à la section 3.4 des conditions
d’utilisation DPS pour connaître les conditions et restrictions spécifiques associées à l’utilisation de la fonction de
partage sur les réseaux sociaux DPS et du lecteur de contenu Web.
Pour télécharger un fichier .csv contenant des informations relatives aux téléchargements facturables pour une
application, connectez-vous à l’aide d’un compte d’application, puis cliquez sur le rapport d’exécution dans la section
Analytics du tableau de bord DPS. Ce fichier .csv inclut le nombre de téléchargements depuis
Adobe Distribution Service qui sont facturés sur votre compte de téléchargements. Si vous vous connectez à l’aide d’un
compte administrateur, vous pouvez cliquer sur un lien sur le tableau de bord pour obtenir un rapport qui indique le
total des téléchargements exécutés.
Voir aussi
« Utilisation du partage sur les réseaux sociaux » à la page 152
Guide du développeur
d’ACTIONSCRIPT® 3.0
Dernière mise à jour le 27/4/2013
Informations juridiques
Informations juridiques
Vous trouverez des informations juridiques à l’adresse http://help.adobe.com/fr_FR/legalnotices/index.html.
iii
Dernière mise à jour le 27/4/2013
Sommaire
Chapitre 1 : Utilisation des dates et des heures
Gestion des dates calendaires et des heures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
Contrôle des intervalles temporels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
Exemple de date et heure : horloge analogique simple . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
Chapitre 2 : Utilisation des chaînes
Principes de base des chaînes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
Création de chaînes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
Propriété length . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
Utilisation de caractères dans des chaînes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
Comparaison de chaînes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
Récupération des représentations de chaîne d’autres objets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
Concaténation de chaînes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
Recherche de sous-chaînes et de modèles dans des chaînes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
Conversion de la casse dans des chaînes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
Exemple de chaîne : ASCII Art . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
Chapitre 3 : Utilisation de tableaux
Principes de base des tableaux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
Tableaux indexés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
Tableaux associatifs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
Tableaux multidimensionnels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
Clonage de tableaux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
Extension de la classe Array . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
Exemple de tableau : PlayList . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
Chapitre 4 : Gestion des erreurs
Principes de base de la gestion des erreurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
Types d’erreurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
Gestion des erreurs dans ActionScript 3.0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
Utilisation des versions de débogage des moteurs d’exécution Flash . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
Gestion des erreurs synchrones dans une application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
Création de classes d’erreur personnalisées . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
Réponse à des événements et à l’état d’erreur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
Comparaison des classes Error . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
Exemple de gestion des erreurs : application CustomErrors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
Chapitre 5 : Utilisation d’expressions régulières
Principes de base des expressions régulières . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
Syntaxe d’expression régulière . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
Méthodes d’utilisation d’expressions régulières avec des chaînes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
Exemple d’expression régulière : analyseur Wiki . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
GUIDE DU DÉVELOPPEUR D’ACTIONSCRIPT 3.0 iv
Sommaire
Dernière mise à jour le 27/4/2013
Chapitre 6 : Utilisation de XML
Principes de base de XML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
Approche E4X concernant le traitement XML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
Objets XML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
Objets XMLList . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
Initialisation de variables XML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
Assemblage et transformation d’objets XML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
Parcours de structures XML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
Utilisation des espaces de noms XML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
Conversion de type XML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
Lecture de documents XML externes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
Utilisation de XML dans un exemple ActionScript : chargement de données RSS depuis Internet . . . . . . . . . . . . . . . . . . . . . . . 118
Chapitre 7 : Utilisation de la fonctionnalité JSON native
Présentation de l’API JSON . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
Définition du comportement JSON personnalisé . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122
Chapitre 8 : Gestion des événements
Principes de base de la gestion des événements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129
Variation de la gestion d’événements dans ActionScript 3.0 par rapport aux versions antérieures . . . . . . . . . . . . . . . . . . . . . . 131
Flux d’événements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133
Objets événement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
Ecouteurs d’événement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
Exemple de gestion des événements : Alarm Clock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
Chapitre 9 : Utilisation de domaines d’application
Chapitre 10 : Programmation de l’affichage
Concepts fondamentaux de la programmation de l’affichage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157
Classes d’affichage de base . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160
Avantages de l’utilisation de la liste d’affichage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162
Utilisation des objets d’affichage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164
Manipulation des objets d’affichage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180
Animation des objets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200
Orientation de la scène . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202
Chargement dynamique du contenu d’affichage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205
Exemple d’objet d’affichage : SpriteArranger . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211
Chapitre 11 : Utilisation de la géométrie
Principes de base de la géométrie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218
Utilisation des objets Point . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219
Utilisation des objets Rectangle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221
Utilisation des objets Matrix . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224
Exemple de géométrie : application d’une transformation de matrice à un objet d’affichage . . . . . . . . . . . . . . . . . . . . . . . . . . . 226
Chapitre 12 : Utilisation de l’API de dessin
Principes de base de l’API de dessin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 230
Classe Graphics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231
GUIDE DU DÉVELOPPEUR D’ACTIONSCRIPT 3.0 v
Sommaire
Dernière mise à jour le 27/4/2013
Dessin de lignes et de courbes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231
Dessin de formes à l’aide des méthodes intégrées . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234
Création de lignes et de remplissages en dégradé . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235
Utilisation de la classe Math avec les méthodes de dessin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239
Animation avec l’API de dessin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240
Exemple d’utilisation de l’API de dessin : générateur algorithmique d’effets visuels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241
Utilisation avancée de l’API de dessin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243
Chapitre 13 : Utilisation des images bitmap
Principes de base de l’utilisation des images bitmap . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 251
Classes Bitmap et BitmapData . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253
Manipulation des pixels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255
Copie de données bitmap . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257
Compression des données d’une image bitmap . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258
Création de textures avec les fonctions de bruit aléatoire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 259
Défilement du contenu d’images bitmap . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261
Utilisation du mipmapping . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 262
Exemple d’objet Bitmap : lune en rotation animée . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263
Décodage asynchrone des images bitmap . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 273
Chapitre 14 : Filtrage des objets d’affichage
Principes de base du filtrage des objets d’affichage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 276
Création et application de filtres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 277
Filtres d’affichage disponibles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 284
Exemple de filtrage des objets d’affichage : Filter Workbench . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 302
Chapitre 15 : Utilisation des shaders de Pixel Bender
Principes de base des shaders de Pixel Bender . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 310
Chargement ou intégration d’un shader . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 312
Accès aux métadonnées du shader . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 314
Spécification des valeurs des entrées et des paramètres d’un shader . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 315
Utilisation d’un shader . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 320
Chapitre 16 : Utilisation des clips
Principes de base des clips . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 333
Utilisation des objets MovieClip . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 334
Contrôle de la lecture d’un clip . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 334
Création d’objets MovieClip à l’aide d’ActionScript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 337
Chargement d’un fichier SWF externe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 340
Exemple de clip : RuntimeAssetsExplorer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 342
Chapitre 17 : Utilisation des interpolations de mouvement
Principes de base des interpolations de mouvement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 346
Copie de scripts d’interpolation de mouvement dans Flash . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 347
Incorporation de scripts d’interpolation de mouvement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 348
Description de l’animation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 349
Ajout de filtres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 352
Association d’une interpolation de mouvement à ses objets d’affichage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 353
GUIDE DU DÉVELOPPEUR D’ACTIONSCRIPT 3.0 vi
Sommaire
Dernière mise à jour le 27/4/2013
Chapitre 18 : Utilisation de la cinématique inverse
Principes de base de la cinématique inverse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 355
Aperçu de l’animation de squelettes IK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 356
Obtention d’informations sur un squelette IK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 358
Instanciation de l’objet IKMover et restriction du mouvement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 358
Mouvement d’un squelette IK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 359
Utilisation de ressorts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 360
Utilisation d’événements IK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 360
Chapitre 19 : Travail en trois dimensions (3D)
Principes de base des objets d’affichage 3D . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 362
Présentation des objets d’affichage 3D dans les moteurs d’exécution de Flash Player et d’AIR . . . . . . . . . . . . . . . . . . . . . . . . . . 363
Création et déplacement d’objets d’affichage 3D . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 365
Projection d’objets 3D sur un affichage 2D . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 367
Exemple : Projection de perspective . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 369
Transformations 3D complexes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 372
Création d’effets 3D à l’aide de triangles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 375
Chapitre 20 : Principes de base de l’utilisation du texte
Chapitre 21 : Utilisation de la classe TextField
Affichage du texte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 385
Sélection et manipulation de texte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 389
Capture du texte saisi par l’utilisateur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 391
Restriction de la saisie de texte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 392
Mise en forme du texte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 393
Fonctions avancées d’affichage de texte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 397
Utilisation du texte statique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 399
Exemple TextField : mise en forme du texte dans le style « article de journal » . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 401
Chapitre 22 : Utilisation de Flash Text Engine
Création et affichage de texte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 410
Gestion des événements dans FTE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 415
Mise en forme du texte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 418
Utilisation des polices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 422
Contrôle du texte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 425
Exemple d’utilisation de Flash Text Engine : mise en forme d’un article de journal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 431
Chapitre 23 : Utilisation de Text Layout Framework
Présentation de Text Layout Framework . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 440
Utilisation de Text Layout Framework . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 441
Structuration du texte à l’aide de TLF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 446
Formatage du texte à l’aide de TLF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 450
Importation et exportation de texte à l’aide de TLF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 451
Gestion des conteneurs de texte à l’aide de TLF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 452
Activation de la sélection, de la modification et de l’annulation de texte à l’aide de TLF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 453
Gestion des événements à l’aide de TLF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 453
Positionnement des images dans le texte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 454
GUIDE DU DÉVELOPPEUR D’ACTIONSCRIPT 3.0 vii
Sommaire
Dernière mise à jour le 27/4/2013
Chapitre 24 : Utilisation du son
Principes de base de l’utilisation du son . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 455
Présentation de l’architecture audio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 456
Chargement de fichiers audio externes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 458
Utilisation des sons intégrés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 460
Utilisation de fichiers audio de lecture en continu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 462
Utilisation de données audio générées de façon dynamique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 463
Lecture de sons . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 465
Sécurité lors du chargement et de la lecture des sons . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 469
Contrôle du volume du son et de la balance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 470
Utilisation des métadonnées audio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 471
Accès aux données audio brutes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 472
Capture de l’entrée de son . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 476
Exemple d’objet Sound : Podcast Player . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 482
Chapitre 25 : Utilisation de la vidéo
Principes de base de la vidéo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 489
Présentation des formats vidéo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 490
Présentation de la classe Video . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 494
Chargement de fichiers vidéo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 494
Contrôle de la lecture de la vidéo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 495
Lecture de vidéos en mode plein écran . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 497
Lecture de fichiers vidéo en flux continu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 501
Présentation des points de repère . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 501
Ecriture de méthodes de rappel pour les métadonnées et les points de repère . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 502
Utilisation des points de repère et des métadonnées . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 508
Gestion de l’activité de l’objet NetStream . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 518
Rubriques avancées relatives aux fichiers vidéo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 521
Exemple vidéo : Video Jukebox . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 523
Présentation à accélération matérielle par le biais de la classe StageVideo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 528
Chapitre 26 : Utilisation de caméras
Présentation de la classe Camera . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 537
Affichage du contenu de la caméra . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 538
Conception d’une application gérant une caméra locale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 538
Etablissement d’une connexion avec la caméra de l’utilisateur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 539
Vérification de la présence de caméras . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 539
Détection de l’autorisation d’accéder à la caméra . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 540
Optimisation de la qualité des vidéos de la caméra . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 542
Gestion de l’état de la caméra . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 543
Chapitre 27 : Utilisation de la gestion des droits d’auteur numériques (DRM)
Présentation du flux de travail associé au contenu protégé . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 546
Membres et événements DRM de la classe NetStream . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 553
Utilisation de la classe DRMStatusEvent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 554
Utilisation de la classe DRMAuthenticateEvent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 556
Utilisation de la classe DRMErrorEvent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 559
GUIDE DU DÉVELOPPEUR D’ACTIONSCRIPT 3.0 viii
Sommaire
Dernière mise à jour le 27/4/2013
Utilisation de la classe DRMManager . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 560
Utilisation de la classe DRMContentData . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 561
Mise à jour de Flash Player en vue de prendre en charge Adobe Access . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 562
Licences hors bande . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 563
Prise en charge de domaine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 565
Lecture de contenu chiffré à l’aide de la prise en charge de domaine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 565
Aperçu de la licence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 566
Diffusion de contenu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 566
Open Source Media Framework . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 567
Chapitre 28 : Ajout d’un contenu PDF dans AIR
Détection des capacités PDF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 569
Chargement du contenu PDF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 570
Programmation du contenu PDF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 571
Limites connues pour du contenu PDF dans AIR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 572
Chapitre 29 : Principes de base de l’interaction utilisateur
Capture des entrées utilisateur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 574
Gestion de la cible d’action . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 575
Découverte des types de saisie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 576
Chapitre 30 : Saisie au clavier
Capture de la saisie au clavier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 578
Utilisation de la classe IME . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 580
Claviers virtuels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 585
Chapitre 31 : Entrées de souris
Capture des entrées de souris . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 593
Exemple d’entrée de souris : WordSearch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 596
Chapitre 32 : Saisie tactile, multipoint et par mouvement
Principes de base de la saisie tactile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 601
Découverte de la prise en charge des actions tactiles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 603
Gestion des événements tactiles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 604
Toucher-glisser . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 608
Gestion des événements de mouvement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 609
Résolution des problèmes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 613
Chapitre 33 : Opération de copier-coller
Principes de base de l’opération de copier-coller . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 616
Lecture en provenance et écriture à destination du Presse-papiers du système . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 617
Opération copier-coller HTML dans AIR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 617
Formats de données Clipboard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 619
Chapitre 34 : Saisie via un accéléromètre
Vérification de la prise en charge de l’accéléromètre . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 626
Détection des changements de l’accéléromètre . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 627
GUIDE DU DÉVELOPPEUR D’ACTIONSCRIPT 3.0 ix
Sommaire
Dernière mise à jour le 27/4/2013
Chapitre 35 : Opération glisser-déposer dans AIR
Principes de base des opérations glisser-déposer dans AIR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 629
Prise en charge du mouvement de glissement vers l’extérieur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 631
Prise en charge du mouvement de glissement vers l’intérieur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 634
Opération glisser-déposer dans HTML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 637
Glissement des données hors d’un élément HTML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 641
Glissement de données dans un élément HTML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 641
Exemple : Annulation du comportement de glissement vers l’intérieur HTML par défaut . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 642
Gestion des dépôts de fichier dans un sandbox HTML hors application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 644
Dépôt de fichiers promis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 645
Chapitre 36 : Utilisation des menus
Principes de base des menus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 654
Création de menus natifs (AIR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 661
A propos des menus contextuels dans un contenu HTML (AIR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 663
Affichage de menus natifs en incrustation (AIR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 664
Gestion des événements de menu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 664
Exemple de menu natif : menu de fenêtre et d’application (AIR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 666
Chapitre 37 : Icônes de la barre des tâches dans AIR
A propos des icônes de la barre des tâches . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 670
Icônes du Dock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 671
Icônes de la barre d’état système . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 672
Icônes et boutons de la barre des tâches de la fenêtre . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 674
Chapitre 38 : Utilisation du système de fichiers
Utilisation de la classe FileReference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 676
Utilisation de l’interface de programmation du système de fichiers AIR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 691
Chapitre 39 : Stockage des données locales
Objets partagés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 728
Stockage local chiffré . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 737
Chapitre 40 : Utilisation des bases de données SQL locales dans AIR
A propos des bases de données SQL locales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 741
Création et modification d’une base de données . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 746
Manipulation des données de bases de données SQL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 753
Utilisation des opérations de base de données synchrones et asynchrones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 782
Utilisation du chiffrement avec les bases de données SQL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 787
Stratégies d’utilisation des bases de données SQL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 805
Chapitre 41 : Utilisation de tableaux d’octets
Lecture et écriture d’un objet ByteArray . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 808
Exemple ByteArray : lecture d’un fichier .zip . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 814
Chapitre 42 : Principes de base de la mise en réseau et de la communication
Interfaces réseau . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 822
Changements de connectivité réseau . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 823
Enregistrements DNS (Domain Name System) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 826
GUIDE DU DÉVELOPPEUR D’ACTIONSCRIPT 3.0 x
Sommaire
Dernière mise à jour le 27/4/2013
Chapitre 43 : Sockets
Sockets TCP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 828
Sockets UDP (AIR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 839
Adresses IPv6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 841
Chapitre 44 : Communications HTTP
Chargement de données externes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 843
Requêtes de service Web . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 852
Ouverture d’une URL dans une autre application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 860
Chapitre 45 : Communications avec d’autres occurrences de Flash Player et d’AIR
A propos de la classe LocalConnection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 862
Envoi de messages entre deux applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 864
Connexion au contenu dans des domaines différents et aux applications AIR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 866
Chapitre 46 : Communication avec les processus natifs dans AIR
Présentation des communications avec les processus natifs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 869
Lancement et fermeture d’un processus natif . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 870
Communications avec un processus natif . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 871
Considérations liées à la sécurité qui affectent les communications avec le processus natif . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 872
Chapitre 47 : Utilisation de l’API externe
Principes de base de l’utilisation de l’API externe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 874
Avantages de l’API externe et conditions requises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 877
Utilisation de la classe ExternalInterface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 878
Exemple d’API externe : communications entre ActionScript et JavaScript dans un navigateur Web . . . . . . . . . . . . . . . . . . . . 882
Chapitre 48 : Validation des signatures XML dans AIR
Bases de la validation des signatures XML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 888
A propos des signatures XML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 893
Implémentation de l’interface IURIDereferencer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 895
Chapitre 49 : Environnement du système client
Principes de base de l’environnement du système client . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 903
Utilisation de la classe System . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 904
Utilisation de la classe Capabilities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 905
Exemple d’utilisation de Capabilities : détection des capacités du système . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 906
Chapitre 50 : Appel et fermeture d’une application AIR
Appel d’une application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 910
Capture des arguments de ligne de commande . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 912
Appel d’une application AIR lors de la connexion d’un utilisateur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 915
Appel d’une application AIR à partir du navigateur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 916
Fermeture d’une application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 918
Chapitre 51 : Utilisation des informations sur le moteur d’exécution d’AIR et les systèmes d’exploitation
Gestion des associations de fichiers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 920
Lecture de la version du moteur d’exécution et du correctif . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 921
GUIDE DU DÉVELOPPEUR D’ACTIONSCRIPT 3.0 xi
Sommaire
Dernière mise à jour le 27/4/2013
Détection des capacités d’AIR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 921
Suivi de la présence des utilisateurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 922
Chapitre 52 : Utilisation des fenêtres natives AIR
Principes de base des fenêtres natives dans AIR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 923
Création de fenêtres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 931
Gestion des fenêtres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 940
Ecoute des événements d’une fenêtre . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 951
Affichage des fenêtres en mode plein écran . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 952
Chapitre 53 : Ecrans dans AIR
Principes de base des écrans dans AIR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 954
Dénombrement des écrans . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 955
Chapitre 54 : Impression
Principes de base de l’impression . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 958
Impression d’une page . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 959
Tâches des moteurs d’exécution de Flash et impression système . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 960
Définition de la taille, de l’échelle et de l’orientation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 963
Techniques d’impression avancées . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 965
Exemple d’impression : impression de plusieurs pages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 967
Exemple d’impression : mise à l’échelle, recadrage et ajustement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 969
Exemple d’impression : options d’impression et de mise en page . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 971
Chapitre 55 : Geolocation
Détection des changements de géolocalisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 974
Chapitre 56 : Internationalisation des applications
Principes de base de l’internationalisation des applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 978
Présentation du package flash.globalization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 979
Identification des paramètres régionaux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 981
Formatage des nombres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 982
Formatage des valeurs en devise . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 985
Formatage des dates et heures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 987
Tri et comparaison des chaînes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 989
Conversion de la casse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 990
Exemple : Internationalisation d’une application de suivi des stocks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 991
Chapitre 57 : Localisation d’applications
Choix d’un jeu de paramètres régionaux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 996
Localisation de contenu Flex . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 997
Localisation du contenu Flash . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 997
Localisation d’applications AIR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 997
Localisation des dates, heures et devises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 998
Chapitre 58 : A propos de l’environnement HTML
Présentation de l’environnement HTML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1000
AIR et WebKit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1003
GUIDE DU DÉVELOPPEUR D’ACTIONSCRIPT 3.0 xii
Sommaire
Dernière mise à jour le 27/4/2013
Chapitre 59 : Programmation HTML et JavaScript dans AIR
A propos de la classe HTMLLoader . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1019
Contournement des erreurs JavaScript liées à la sécurité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1021
Accès aux classes de l’API AIR à partir de JavaScript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1026
A propos des URL dans AIR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1027
Mise des objets ActionScript à disposition de JavaScript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1028
Accès au DOM HTML et aux objets JavaScript à partir d’ActionScript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1030
Intégration d’un contenu SWF en HTML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1031
Utilisation des bibliothèques ActionScript au sein d’une page HTML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1034
Conversion des objets Date et RegExp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1036
Manipulation d’une feuille de style HTML à partir d’ActionScript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1036
Programmation croisée du contenu dans des sandbox de sécurité distincts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1038
Chapitre 60 : Programmation du conteneur HTML d’AIR à l’aide de scripts
Affichage des propriétés des objets HTMLLoader . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1043
Défilement du contenu HTML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1046
Accès à l’historique de HTML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1047
Paramétrage de l’agent d’utilisateur employé lors du chargement du contenu HTML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1048
Paramétrage du codage des caractères à utiliser pour le contenu HTML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1048
Paramétrage des interfaces utilisateur de type navigateur pour un contenu HTML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1049
Création de sous-classes de la classe HTMLLoader . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1060
Chapitre 61 : Gestion des événements HTML dans AIR
Evénements HTMLLoader . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1062
Gestion des événements DOM avec ActionScript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1063
Réponse aux exceptions JavaScript non interceptées . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1063
Gestion des événements d’exécution avec JavaScript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1065
Chapitre 62 : Affichage de contenu HTML dans une application mobile
Objets StageWebView . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1068
Contenu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1069
Evénements de navigation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1070
Historique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1071
Cible d’action . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1072
Capture d’image bitmap . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1074
Chapitre 63 : Utilisation de programmes de travail à des fins de simultanéité
Présentation des programmes de travail et de la simultanéité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1076
Création et gestion de programmes de travail . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1077
Communication entre programmes de travail . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1080
Chapitre 64 : Sécurité
Présentation de la sécurité sur la plate-forme Flash . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1085
Sandbox de sécurité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1087
Contrôles des autorisations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1091
Restriction des API de réseau . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1100
Sécurité du mode plein écran . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1102
Sécurité du mode interactif plein écran . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1103
GUIDE DU DÉVELOPPEUR D’ACTIONSCRIPT 3.0 xiii
Sommaire
Dernière mise à jour le 27/4/2013
Chargement de contenu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1104
Programmation croisée . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1107
Accès aux médias chargés comme s’il s’agissait de données . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1111
Chargement des données . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1113
Chargement de contenu incorporé à partir de fichiers SWF importés dans un domaine de sécurité . . . . . . . . . . . . . . . . . . . . 1117
Utilisation de contenus existants . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1117
Définition des autorisations LocalConnection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1118
Contrôle de l’accès URL externe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1118
Objets partagés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1120
Accès à la caméra, au microphone, au Presse-papiers, à la souris et au clavier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1122
Sécurité AIR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1122
Chapitre 65 : Utilisation des exemples de code ActionScript
Types d’exemples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1145
Exécution d’exemples ActionScript 3.0 dans Flash Professional . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1147
Exécution d’exemples ActionScript 3.0 dans Flash Builder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1148
Exécution d’exemples ActionScript 3.0 sur un périphérique mobile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1150
Chapitre 66 : Prise en charge de SQL dans les bases de données locales
Syntaxe SQL prise en charge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1155
Prise en charge des types de données . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1177
Chapitre 67 : ID, arguments et messages d’erreur SQL détaillés
Chapitre 68 : AGAL (Adobe Graphics Assembly Language)
Pseudo-code binaire AGAL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1188
1
Dernière mise à jour le 27/4/2013
Chapitre 1 : Utilisation des dates et des
heures
Flash Player 9 et les versions ultérieures, Adobe AIR 1.0 et les versions ultérieures
Si la ponctualité ne fait pas tout, elle n’en est pas moins un facteur clé des applications logicielles. ActionScript 3.0
propose différentes méthodes de gestion des dates calendaires, des heures et des intervalles temporels. Deux classes
principales assurent l’essentiel de la fonctionnalité temporelle : la classe Date et la nouvelle classe Timer du package
flash.utils.
Les dates et les heures constituent un type d’informations courant utilisé dans les programmes ActionScript. Par
exemple, vous pouvez, entre autres, connaître la date du jour ou calculer combien de temps un utilisateur passe sur un
écran particulier. Dans ActionScript, vous pouvez utiliser la classe Date pour représenter un moment unique dans le
temps, y compris des informations de date et d’heure. Une occurrence de Date contient des valeurs pour les unités de
date et d’heure individuelles (année, mois, date, jour de la semaine, heure, minutes, secondes, millisecondes et fuseau
horaire, par exemple). Pour des utilisations plus avancées, ActionScript comprend également la classe Timer que vous
pouvez utiliser pour effectuer des actions après un certain délai ou à des intervalles répétés.
Voir aussi
Date
flash.utils.Timer
Gestion des dates calendaires et des heures
Flash Player 9 et les versions ultérieures, Adobe AIR 1.0 et les versions ultérieures
Dans ActionScript 3.0, toutes les fonctions de gestion des dates calendaires et des heures se concentrent autour de la
classe de niveau supérieur Date. Cette classe contient des méthodes et des propriétés qui vous permettent de manier
les dates et les heures soit selon le modèle universel coordonné (UTC, Universal Time Coordinated), soit selon le
fuseau horaire considéré. L’UTC est une définition normalisée du temps qui correspond essentiellement à l’heure du
méridien de Greenwich (GMT, Greenwich Mean Time).
Création d’objets Date
Flash Player 9 et les versions ultérieures, Adobe AIR 1.0 et les versions ultérieures
La classe Date compte l’une des méthodes constructeur les plus polyvalentes de toutes les classes de base. Vous pouvez
l’invoquer de quatre manières différentes.
Primo, si aucun paramètre n’est fourni, le constructeur Date() renvoie un objet Date contenant la date et l’heure locale
actuelle de votre fuseau horaire. Exemple :
var now:Date = new Date();
GUIDE DU DÉVELOPPEUR D’ACTIONSCRIPT 3.0 2
Utilisation des dates et des heures
Dernière mise à jour le 27/4/2013
Secundo, si un paramètre numérique unique est fourni, le constructeur Date() le considère comme le nombre de
millisecondes écoulées depuis le 1er janvier 1970 et renvoie l’objet Date correspondant. Notez que la valeur en
millisecondes que vous transmettez est considérée comme le nombre de millisecondes depuis le 1er janvier 1970 en
temps UTC. Toutefois, l’objet Date affiche des valeurs dans votre fuseau horaire local, sauf si vous utilisez des
méthodes UTC uniquement pour les extraire et les afficher. Si vous créez un nouvel objet Date à l’aide du paramètre
en millisecondes, veillez à tenir compte du décalage horaire entre votre fuseau local et le temps UTC. Les instructions
ci-après créent un objet Date défini à minuit le 1er janvier 1970 en temps UTC :
var millisecondsPerDay:int = 1000 * 60 * 60 * 24;
// gets a Date one day after the start date of 1/1/1970
var startTime:Date = new Date(millisecondsPerDay);
Tertio, vous pouvez transmettre plusieurs paramètres numériques au constructeur Date(). Celui-ci les traite
respectivement comme la date, le mois, le jour, les heures, les minutes, les secondes et les millisecondes, et renvoie un
objet Date correspondant. Les paramètres indiqués sont considérés comme correspondant à l’heure locale plutôt qu’au
temps UTC. Les instructions suivantes établissent un objet Date défini à minuit le 1er janvier 2000, dans le fuseau
horaire local :
var millenium:Date = new Date(2000, 0, 1, 0, 0, 0, 0);
Quarto, vous pouvez transmettre un paramètre numérique unique au constructeur Date(). Celui-ci essaiera
d’analyser cette chaîne en composants de date et heure, et de renvoyer un objet Date correspondant. Si vous choisissez
cette approche, il est recommandé d’inclure le constructeur Date() dans un bloc try..catch afin d’intercepter toute
erreur d’analyse. Le constructeur Date() gère plusieurs formats de chaîne (dont la liste figure dans le manuel Guide
de référence ActionScript 3.0 pour la plate-forme Adobe Flash). L’instruction suivante initialise un nouvel objet Date
à l’aide d’une valeur chaîne :
var nextDay:Date = new Date("Mon May 1 2006 11:30:00 AM");
Si le constructeur Date() ne peut analyser le paramètre chaîne, il ne déclenche pas d’exception. Cependant, l’objet
Date résultant contiendra une valeur date incorrecte.
Obtention des valeurs d’unités temporelles
Flash Player 9 et les versions ultérieures, Adobe AIR 1.0 et les versions ultérieures
Vous pouvez extraire les valeurs de plusieurs unités temporelles au sein de l’objet Date grâce à des propriétés ou des
méthodes de la classe Date. Chacune des propriétés suivantes fournit la valeur d’une unité temporelle de l’objet Date :
• La propriété fullYear
• La propriété month au format numérique : de 0 pour janvier à 11 pour décembre
• La propriété date, qui correspond au numéro calendaire du jour du mois, de 1 à 31
• La propriété day, qui correspond au jour de la semaine au format numérique, 0 représentant dimanche
• La propriété hours, de 0 à 23
• La propriété minutes
• La propriété seconds
• La propriété milliseconds
La classe Date offre en fait plusieurs manières d’obtenir ces valeurs. Vous pouvez par exemple obtenir la valeur
month de l’objet Date de quatre manières :
• La propriété month
GUIDE DU DÉVELOPPEUR D’ACTIONSCRIPT 3.0 3
Utilisation des dates et des heures
Dernière mise à jour le 27/4/2013
• La méthode getMonth()
• La propriété monthUTC
• La méthode getMonthUTC()
Ces quatre solutions sont d’une efficacité équivalente, vous pouvez donc adopter celle qui convient le mieux à votre
application.
Les propriétés répertoriées ci-dessus représentent toutes des composants de la valeur date totale. Par exemple, la
propriété milliseconds ne sera jamais supérieure à 999, puisque si elle atteint 1000, la valeur seconds augmente de
1, la propriété milliseconds se remet à zéro.
Si vous voulez obtenir la valeur de l’objet Date en millisecondes depuis le 1er janvier 1970 (UTC), vous pouvez
utiliser la méthode getTime(). La méthode setTime(), quant à elle, vous permet de modifier la valeur d’un objet
Date existant en millisecondes depuis le 1er janvier 1970 (UTC).
Opérations arithmétiques sur la date et l’heure
Flash Player 9 et les versions ultérieures, Adobe AIR 1.0 et les versions ultérieures
La classe Date permet d’additionner et de soustraire des dates et heures. Les valeurs Date sont conservées en interne
sous forme de millisecondes. Il est donc nécessaire de convertir les autres valeurs en millisecondes avant de les ajouter
ou de les soustraire aux objets Date.
Si votre application doit effectuer de nombreuses opérations arithmétiques sur les dates et heures, il peut s’avérer utile
de créer des constantes qui conservent les valeurs d’unités temporelles courantes en millisecondes, comme illustré ciaprès
:
public static const millisecondsPerMinute:int = 1000 * 60;
public static const millisecondsPerHour:int = 1000 * 60 * 60;
public static const millisecondsPerDay:int = 1000 * 60 * 60 * 24;
Il devient alors simple d’effectuer des opérations arithmétiques à l’aide des unités temporelles standard. Le code ciaprès
décale la valeur date d’une heure par rapport à l’heure actuelle à l’aide des méthodes getTime() et setTime() :
var oneHourFromNow:Date = new Date();
oneHourFromNow.setTime(oneHourFromNow.getTime() + millisecondsPerHour);
Une autre manière de définir une valeur date consiste à créer un objet Date à l’aide d’un seul paramètre en
millisecondes. Par exemple, le code suivant ajoute 30 jours à une date pour en calculer une autre :
// sets the invoice date to today's date
var invoiceDate:Date = new Date();
// adds 30 days to get the due date
var dueDate:Date = new Date(invoiceDate.getTime() + (30 * millisecondsPerDay));
La constante millisecondsPerDay est ensuite multipliée par 30 pour représenter la période de 30 jours et le résultat
est ajouté à la valeur invoiceDate afin de définir la valeur dueDate.
GUIDE DU DÉVELOPPEUR D’ACTIONSCRIPT 3.0 4
Utilisation des dates et des heures
Dernière mise à jour le 27/4/2013
Conversion entre plusieurs fuseaux horaires
Flash Player 9 et les versions ultérieures, Adobe AIR 1.0 et les versions ultérieures
Les opérations arithmétiques sur les dates et heures sont particulièrement pratiques lorsque vous devez convertir des
dates d’un fuseau horaire à un autre. Tel est le rôle de la méthode getTimezoneOffset(), qui renvoie la valeur (en
minutes) de décalage entre le fuseau horaire de l’objet Date et le temps UTC. La valeur renvoyée s’exprime en minutes
parce que tous les fuseaux horaires ne correspondent pas à une heure ; certains sont décalés d’une demi-heure par
rapport aux fuseaux voisins.
L’exemple suivant utilise le décalage de fuseau horaire pour convertir une date à partir de l’heure locale en temps UTC.
La conversion s’effectue tout d’abord par calcul de la valeur du fuseau horaire en millisecondes, puis par ajustement
de la valeur Date selon ce montant :
// creates a Date in local time
var nextDay:Date = new Date("Mon May 1 2006 11:30:00 AM");
// converts the Date to UTC by adding or subtracting the time zone offset
var offsetMilliseconds:Number = nextDay.getTimezoneOffset() * 60 * 1000;
nextDay.setTime(nextDay.getTime() + offsetMilliseconds);
Contrôle des intervalles temporels
Flash Player 9 et les versions ultérieures, Adobe AIR 1.0 et les versions ultérieures
Lorsque vous développez des applications à l’aide d’Adobe Flash CS4 Professional, vous avez accès au scénario, qui
fournit une progression constante, image par image, au sein de votre application. Toutefois, dans un projet purement
ActionScript, vous devez compter sur d’autres mécanismes temporels.
Boucles ou minuteurs ?
Flash Player 9 et les versions ultérieures, Adobe AIR 1.0 et les versions ultérieures
Dans certains langages de programmation, vous devez mettre au point des motifs temporels à l’aide d’instructions en
boucle telles que for ou do..while.
Les instructions en boucle s’exécutent en général aussi vite que la machine locale le permet, ce qui signifie que
l’application sera plus rapide sur certaines machines que sur d’autres. Si votre application doit bénéficier d’un
intervalle temporel cohérent, vous devez l’associer à un calendrier ou une horloge réels. Bien des applications, telles
que les jeux, les animations, les contrôleurs en temps réel, nécessitent des mécanismes de décompte temporel qui
soient cohérents d’une machine à l’autre.
La classe Timer d’ActionScript 3.0 offre une solution performante dans ce domaine. Grâce au modèle d’événements
ActionScript 3.0, la classe Timer distribue des événements Timer dès qu’un intervalle spécifié est atteint.
La classe Timer
Flash Player 9 et les versions ultérieures, Adobe AIR 1.0 et les versions ultérieures
Pour la gestion des fonctions temporelles dans ActionScript 3.0, il est recommandé d’utiliser la classe Timer
(flash.utils.Timer), qui permet de distribuer des événements dès qu’un intervalle est atteint.
GUIDE DU DÉVELOPPEUR D’ACTIONSCRIPT 3.0 5
Utilisation des dates et des heures
Dernière mise à jour le 27/4/2013
Pour lancer un minuteur, vous devez d’abord créer une occurrence de la classe Timer et lui indiquer à quelle fréquence
elle doit générer un événement Timer et combien de fois elle doit le faire avant de s’arrêter.
Par exemple, le code suivant crée une occurrence de Timer qui distribue un événement toutes les secondes pendant 60
secondes :
var oneMinuteTimer:Timer = new Timer(1000, 60);
L’objet Timer distribue un objet TimerEvent chaque fois que l’intervalle donné est atteint. Le type d’événement de
l’objet TimerEvent est timer (défini par la constante TimerEvent.TIMER). Un objet TimerEvent contient les mêmes
propriétés que l’objet standard Event.
Si l’occurrence de Timer prévoit un nombre fixe d’intervalles, elle distribue également un événement timerComplete
(défini par la constante TimerEvent.TIMER_COMPLETE) lorsqu’elle atteint l’intervalle final.
Voici un court exemple d’application illustrant la classe Timer en action :
package
{
import flash.display.Sprite;
import flash.events.TimerEvent;
import flash.utils.Timer;
public class ShortTimer extends Sprite
{
public function ShortTimer()
{
// creates a new five-second Timer
var minuteTimer:Timer = new Timer(1000, 5);
// designates listeners for the interval and completion events
minuteTimer.addEventListener(TimerEvent.TIMER, onTick);
minuteTimer.addEventListener(TimerEvent.TIMER_COMPLETE, onTimerComplete);
// starts the timer ticking
minuteTimer.start();
}
public function onTick(event:TimerEvent):void
{
// displays the tick count so far
// The target of this event is the Timer instance itself.
trace("tick " + event.target.currentCount);
}
public function onTimerComplete(event:TimerEvent):void
{
trace("Time's Up!");
}
}
}
Lorsque la classe ShortTimer est créée, elle génère une occurrence de Timer qui marque chaque seconde pendant cinq
secondes. Elle ajoute alors deux écouteurs au minuteur : un qui écoute chaque décompte et un qui écoute l’événement
timerComplete.
Elle lance ensuite le décompte du minuteur et à partir de là, la méthode onTick() s’exécute toutes les secondes.
GUIDE DU DÉVELOPPEUR D’ACTIONSCRIPT 3.0 6
Utilisation des dates et des heures
Dernière mise à jour le 27/4/2013
La méthode onTick() affiche simplement le nombre actuel de tics. Après cinq secondes, la méthode
onTimerComplete() s’exécute et vous avertit que le temps est écoulé.
Si vous exécutez cet exemple, vous devriez voir les lignes suivantes s’afficher dans votre console ou fenêtre de suivi à
raison d’une ligne par seconde :
tick 1
tick 2
tick 3
tick 4
tick 5
Time's Up!
Fonctions temporelles du package flash.utils
Flash Player 9 et les versions ultérieures, Adobe AIR 1.0 et les versions ultérieures
ActionScript 3.0 contient un certain nombre de fonctions temporelles similaires à celles qui étaient disponibles dans
ActionScript 2.0. Ces fonctions sont fournies au niveau du package dans le package flash.utils et elles fonctionnent de
la même manière que dans ActionScript 2.0.
Ces fonctions demeurent dans ActionScript 3.0 afin d’assurer la compatibilité avec les versions antérieures. Adobe ne
recommande pas leur utilisation dans les nouvelles applications ActionScript 3.0. Il est en général plus simple et plus
efficace d’utiliser la classe Timer.
Exemple de date et heure : horloge analogique simple
Flash Player 9 et les versions ultérieures, Adobe AIR 1.0 et les versions ultérieures
Un exemple d’horloge analogique simple illustre ces deux concepts de date et heure :
• Obtention de la date et de l’heure actuelle et extraction des valeurs heures, minutes et secondes
• Utilisation d’une horloge pour fixer le rythme d’une application
Pour obtenir les fichiers d’application de cet exemple, voir
www.adobe.com/go/learn_programmingAS3samples_flash_fr. Les fichiers d’application SimpleClock se trouvent
dans le dossier Samples/SimpleClock. L’application se compose des fichiers suivants :
Fonction Description
clearInterval(id:uint):void Annule un appel de setInterval() spécifié.
clearTimeout(id:uint):void Annule un appel de setTimeout() spécifié.
getTimer():int Renvoie le nombre de millisecondes qui se sont écoulées depuis l’initialisation
d’Adobe® Flash® Player ou d’Adobe® AIR™.
setInterval(closure:Function,
delay:Number, ... arguments):uint
Exécute une fonction à fréquence définie (intervalle exprimé en millisecondes).
setTimeout(closure:Function,
delay:Number, ... arguments):uint
Exécute une fonction spécifiée après un délai spécifié (en millisecondes).
GUIDE DU DÉVELOPPEUR D’ACTIONSCRIPT 3.0 7
Utilisation des dates et des heures
Dernière mise à jour le 27/4/2013
Définition de la classe SimpleClock
Flash Player 9 et les versions ultérieures, Adobe AIR 1.0 et les versions ultérieures
Si l’exemple d’horloge est simple, il est toujours judicieux de bien organiser les applications de manière à faciliter leur
extension future. Dans ce but, l’application SimpleClock utilise la classe SimpleClock pour gérer les tâches de
démarrage et de mesure temporelle. Elle se sert ensuite d’une autre classe, AnalogClockFace, pour l’affichage réel de
l’heure.
Voici le code qui définit et initialise la classe SimpleClock (vous remarquerez que dans la version Flash, SimpleClock
étend la classe Sprite à la place) :
public class SimpleClock extends UIComponent
{
/**
* The time display component.
*/
private var face:AnalogClockFace;
/**
* The Timer that acts like a heartbeat for the application.
*/
private var ticker:Timer;
Cette classe possède deux propriétés importantes :
• La propriété face, qui correspond à une occurrence de la classe AnalogClockFace
• La propriété ticker, qui est une occurrence de la classe Timer
La classe SimpleClock utilise un constructeur par défaut. La méthode initClock() se charge de la véritable
configuration, en créant le cadran et en lançant le décompte de l’occurrence de Timer.
Création du cadran
Flash Player 9 et les versions ultérieures, Adobe AIR 1.0 et les versions ultérieures
Les lignes suivantes du code SimpleClock créent le cadran utilisé pour afficher l’heure :
Fichier Description
SimpleClockApp.mxml
ou
SimpleClockApp.fla
Fichier d’application principal dans Flash (FLA) ou Flex
(MXML).
com/example/programmingas3/simpleclock/SimpleClock.as Fichier d’application principal.
com/example/programmingas3/simpleclock/AnalogClockFace.as Dessine un cadran d’horloge rond et les aiguilles des heures,
des minutes et des secondes en fonction de l’heure.
GUIDE DU DÉVELOPPEUR D’ACTIONSCRIPT 3.0 8
Utilisation des dates et des heures
Dernière mise à jour le 27/4/2013
/**
* Sets up a SimpleClock instance.
*/
public function initClock(faceSize:Number = 200)
{
// creates the clock face and adds it to the display list
face = new AnalogClockFace(Math.max(20, faceSize));
face.init();
addChild(face);
// draws the initial clock display
face.draw();
La taille de l’horloge peut être transmise à la méthode initClock(). Si aucune valeur faceSize n’est transmise, la
taille par défaut de 200 pixels est utilisée.
L’application initialise ensuite l’horloge et l’ajoute à la liste d’affichage à l’aide de la méthode addChild() héritée de la
classe DisplayObjectContainer. Elle appelle enfin la méthode AnalogClockFace.draw() pour afficher une fois le
cadran, qui indique l’heure actuelle.
Lancement du minuteur
Flash Player 9 et les versions ultérieures, Adobe AIR 1.0 et les versions ultérieures
Une fois le cadran créé, la méthode initClock() définit le minuteur :
// creates a Timer that fires an event once per second
ticker = new Timer(1000);
// designates the onTick() method to handle Timer events
ticker.addEventListener(TimerEvent.TIMER, onTick);
// starts the clock ticking
ticker.start();
Cette méthode commence par instancier une occurrence de Timer qui va distribuer un événement par seconde (toutes
les 1 000 millisecondes). Comme le constructeur Timer() ne reçoit pas de second paramètre repeatCount, l’horloge
se reproduit indéfiniment.
La méthode SimpleClock.onTick() s’exécute une fois par seconde après réception de l’événement timer :
public function onTick(event:TimerEvent):void
{
// updates the clock display
face.draw();
}
La méthode AnalogClockFace.draw() dessine simplement le cadran de l’horloge et des aiguilles.
GUIDE DU DÉVELOPPEUR D’ACTIONSCRIPT 3.0 9
Utilisation des dates et des heures
Dernière mise à jour le 27/4/2013
Affichage de l’heure actuelle
Flash Player 9 et les versions ultérieures, Adobe AIR 1.0 et les versions ultérieures
La plupart du code de la classe AnalogClockFace implique la définition des éléments d’affichage du cadran. Lors de
son initialisation, AnalogClockFace dessine un contour circulaire, place des libellés numériques pour chaque heure,
puis crée trois objets Shape, un pour l’aiguille des heures, un pour celle des minutes et un pour l’aiguille des secondes
de l’horloge.
Lorsque l’application SimpleClock s’exécute, elle appelle la méthode AnalogClockFace.draw() toutes les secondes,
comme suit :
/**
* Called by the parent container when the display is being drawn.
*/
public override function draw():void
{
// stores the current date and time in an instance variable
currentTime = new Date();
showTime(currentTime);
}
Cette méthode enregistre l’heure actuelle dans une variable, pour que l’heure ne puisse changer pendant le dessin des
aiguilles de l’horloge. Elle appelle ensuite la méthode showTime() pour afficher les aiguilles, comme illustré ci-après :
/**
* Displays the given Date/Time in that good old analog clock style.
*/
public function showTime(time:Date):void
{
// gets the time values
var seconds:uint = time.getSeconds();
var minutes:uint = time.getMinutes();
var hours:uint = time.getHours();
// multiplies by 6 to get degrees
this.secondHand.rotation = 180 + (seconds * 6);
this.minuteHand.rotation = 180 + (minutes * 6);
// Multiply by 30 to get basic degrees, then
// add up to 29.5 degrees (59 * 0.5)
// to account for the minutes.
this.hourHand.rotation = 180 + (hours * 30) + (minutes * 0.5);
}
Tout d’abord, cette méthode extrait les valeurs des heures, des minutes et des secondes pour l’heure actuelle. Elle utilise
ensuite ces valeurs pour calculer l’angle de chaque aiguille. Comme l’aiguille des secondes effectue une rotation
complète en 60 secondes, elle tourne de 6 degrés par seconde (360/60). L’aiguille des minutes pivote selon le même
angle chaque minute.
L’aiguille des heures se met à jour toutes les minutes également et doit donc progresser à chaque minute. Elle tourne
de 30 degrés toutes les heures (360/12), mais pivote également d’un demi-degré toutes les minutes (30 degrés divisés
par 60 minutes).
10
Dernière mise à jour le 27/4/2013
Chapitre 2 : Utilisation des chaînes
Flash Player 9 et les versions ultérieures, Adobe AIR 1.0 et les versions ultérieures
La classe String contient des méthodes qui vous permettent de manipuler des chaînes de texte. Les chaînes s’utilisent
avec de nombreux objets. Les méthodes décrites ci-après permettent de manipuler les chaînes utilisées dans des objets
tels que TextField, StaticText, XML, ContextMenu et FileReference.
Les chaînes sont des séries de caractères. ActionScript 3.0 prend en charge les caractères ASCII et Unicode.
Voir aussi
String
RegExp
parseFloat()
parseInt()
Principes de base des chaînes
Flash Player 9 et les versions ultérieures, Adobe AIR 1.0 et les versions ultérieures
Pour les programmeurs, une « chaîne » est un texte, une suite de lettres, chiffres ou autres caractères qui se suivent et
forment une unité représentée par une valeur. Par exemple, la ligne de code suivante crée une variable ayant le type de
données String (chaîne) et affecte une valeur de chaîne littérale à cette variable :
var albumName:String = "Three for the money";
Comme le montre cet exemple, ActionScript permet de délimiter une valeur chaîne en enfermant du texte entre des
guillemets droits doubles ou simples. Voici d’autres exemples de chaînes :
"Hello"
"555-7649"
"http://www.adobe.com/"
Lorsque vous manipulez un fragment de texte en ActionScript, vous utilisez une valeur chaîne. La classe String
d’ActionScript est le type de données qui permet de travailler avec du texte. Des occurrences de chaînes sont
fréquemment utilisées pour des propriétés, des paramètres de méthodes, etc., dans de nombreuses autres classes en
ActionScript.
Concepts importants et terminologie
La liste de référence suivante contient des termes importants relatifs aux chaînes :
ASCII Système de codage permettant de représenter du texte sous forme de caractères et symboles dans les
programmes informatiques. Le système ASCII gère les 26 lettres de l’alphabet latin, plus un nombre limité de
caractères supplémentaires.
Caractère Unité de base d’un texte (lettre ou symbole).
Concaténation Ajout bout à bout de plusieurs valeurs de chaîne pour en créer une nouvelle.
GUIDE DU DÉVELOPPEUR D’ACTIONSCRIPT 3.0 11
Utilisation des chaînes
Dernière mise à jour le 27/4/2013
Chaîne vide Chaîne qui ne contient rien: ni texte, ni espace, ni autre caractère, représentée par "". Une chaîne vide
n’est pas la même chose qu’une variable ayant une valeur nulle (null) : celle-ci est une variable à laquelle aucune
occurrence de l’objet String n’est affectée, alors qu’une chaîne vide est une occurrence dont la valeur ne contient aucun
caractère.
String Valeur textuelle (séquence de caractères).
Littéral (ou « littéral de chaîne ») Valeur chaîne écrite explicitement en code, sous forme de valeur texte encadrée par
des guillemets droits simples ou doubles.
Sous-chaîne Définit une chaîne qui fait partie d’une autre chaîne.
Unicode Système standardisé de codage permettant de représenter du texte sous forme de caractères et symboles dans
les programmes informatiques. Le système Unicode permet d’utiliser la totalité des caractères de toutes les langues
écrites existantes.
Création de chaînes
Flash Player 9 et les versions ultérieures, Adobe AIR 1.0 et les versions ultérieures
La classe String permet de représenter des données de chaîne (texte) en ActionScript 3.0. Les chaînes ActionScript
prennent en charge les caractères ASCII et Unicode. La meilleure façon de créer une chaîne est d’utiliser un littéral de
chaîne. Pour déclarer un littéral de chaîne, utilisez les guillemets droits doubles (") ou les guillemets droits simples (').
Par exemple, les deux chaînes suivantes sont équivalentes :
var str1:String = "hello";
var str2:String = 'hello';
Vous pouvez également déclarer une chaîne à l’aide de l’opérateur new, comme suit :
var str1:String = new String("hello");
var str2:String = new String(str1);
var str3:String = new String(); // str3 == ""
Les deux chaînes suivantes sont équivalentes :
var str1:String = "hello";
var str2:String = new String("hello");
Pour utiliser des guillemets droits simples (') dans un littéral de chaîne délimité par des guillemets droits simples ('),
utilisez le caractère d’échappement (\). De même, pour utiliser des guillemets droits doubles ('') dans un littéral de
chaîne délimité par des guillemets droits doubles (''), utilisez le caractère d’échappement (\). Les deux chaînes
suivantes sont équivalentes :
var str1:String = "That's \"A-OK\"";
var str2:String = 'That\'s "A-OK"';
Vous pouvez utiliser des guillemets simples ou des guillemets doubles en fonction de ceux qui existent dans un littéral
de chaîne, comme dans l’exemple suivant :
var str1:String = "ActionScript 3.0";
var str2:String = 'banana';
Rappelons qu’ActionScript fait la distinction entre les guillemets droits simples (') et les guillemets simples gauches
ou droits (' ou ' ). Il en est de même pour les guillemets doubles. Utilisez des guillemets droits pour délimiter des
littéraux de chaîne. Lorsque vous collez du texte dans ActionScript depuis une autre source, utilisez les caractères
corrects.
GUIDE DU DÉVELOPPEUR D’ACTIONSCRIPT 3.0 12
Utilisation des chaînes
Dernière mise à jour le 27/4/2013
Comme indiqué dans le tableau suivant, vous pouvez utiliser le caractère d’échappement (\) pour définir d’autres
caractères dans des littéraux de chaîne :
Propriété length
Flash Player 9 et les versions ultérieures, Adobe AIR 1.0 et les versions ultérieures
Chaque chaîne possède une propriété length correspondant au nombre de caractères qu’elle contient:
var str:String = "Adobe";
trace(str.length); // output: 5
Une chaîne vide et une chaîne null ont toutes deux une longueur de 0, comme l’indique l’exemple suivant :
var str1:String = new String();
trace(str1.length); // output: 0
str2:String = '';
trace(str2.length); // output: 0
Utilisation de caractères dans des chaînes
Flash Player 9 et les versions ultérieures, Adobe AIR 1.0 et les versions ultérieures
Chaque caractère d’une chaîne possède une position d’index dans la chaîne (un entier). La position d’index du premier
caractère est 0. Par exemple, dans la chaîne suivante, le caractère y occupe la position 0 et le caractère w occupe la
position 5 :
"yellow"
Vous pouvez examiner des caractères individuels à différentes positions d’une chaîne à l’aide des méthodes charAt()
et charCodeAt(), comme dans l’exemple suivant :
Séquence
d’échappement
Caractère
\b Retour arrière
\f Changement de page
\n Nouvelle ligne
\r Retour chariot
\t Tabulation
\unnnn Caractère Unicode dont le code de caractère est spécifié par le nombre hexadécimal nnnn ; par
exemple, \u263a est le caractère smiley.
\\xnn Caractère ASCII dont le code est spécifié par le nombre hexadécimal nn.
\' Guillemet droit simple
\" Guillemet droit double
\\ Barre oblique inverse
GUIDE DU DÉVELOPPEUR D’ACTIONSCRIPT 3.0 13
Utilisation des chaînes
Dernière mise à jour le 27/4/2013
var str:String = "hello world!";
for (var i:int = 0; i < str.length; i++)
{
trace(str.charAt(i), "-", str.charCodeAt(i));
}
Lorsque vous exécutez ce code, vous obtenez le résultat suivant :
h - 104
e - 101
l - 108
l - 108
o - 111
- 32
w - 119
o - 111
r - 114
l - 108
d - 100
! - 33
Vous pouvez également utiliser des codes de caractère pour définir une chaîne à l’aide de la méthode
fromCharCode(), comme l’indique l’exemple suivant :
var myStr:String = String.fromCharCode(104,101,108,108,111,32,119,111,114,108,100,33);
// Sets myStr to "hello world!"
Comparaison de chaînes
Flash Player 9 et les versions ultérieures, Adobe AIR 1.0 et les versions ultérieures
Vous pouvez utiliser les opérateurs suivants pour comparer des chaînes : <, <=, !=, ==, => et >. Vous pouvez utiliser ces
opérateurs avec des instructions conditionnelles (if et while, par exemple) comme l’indique l’exemple suivant :
var str1:String = "Apple";
var str2:String = "apple";
if (str1 < str2)
{
trace("A < a, B < b, C < c, ...");
}
Lorsque vous utilisez ces opérateurs avec des chaînes, ActionScript considère la valeur du code de chaque caractère
dans la chaîne, en comparant les caractères de gauche à droite, comme indiqué ci-dessous :
trace("A" < "B"); // true
trace("A" < "a"); // true
trace("Ab" < "az"); // true
trace("abc" < "abza"); // true
Utilisez les opérateurs == et != pour comparer des chaînes entre elles et pour comparer des chaînes avec d’autres types
d’objets, comme l’indique l’exemple suivant :
GUIDE DU DÉVELOPPEUR D’ACTIONSCRIPT 3.0 14
Utilisation des chaînes
Dernière mise à jour le 27/4/2013
var str1:String = "1";
var str1b:String = "1";
var str2:String = "2";
trace(str1 == str1b); // true
trace(str1 == str2); // false
var total:uint = 1;
trace(str1 == total); // true
Récupération des représentations de chaîne d’autres
objets
Flash Player 9 et les versions ultérieures, Adobe AIR 1.0 et les versions ultérieures
Vous pouvez obtenir une représentation de chaîne de n’importe quel type d’objet. Tous les objets disposent en effet
d’une méthode toString() :
var n:Number = 99.47;
var str:String = n.toString();
// str == "99.47"
Lorsque vous utilisez l’opérateur de concaténation + avec une combinaison d’objet String et d’objets qui ne sont pas
des chaînes, vous n’avez pas besoin d’utiliser la méthode toString(). Pour plus d’informations sur la concaténation,
voir la section suivante.
La fonction globale String() renvoie la même valeur pour un objet donné que la valeur renvoyée par l’objet appelant
la méthode toString().
Concaténation de chaînes
Flash Player 9 et les versions ultérieures, Adobe AIR 1.0 et les versions ultérieures
La concaténation de chaînes consiste à prendre deux chaînes et à les combiner en une seule chaîne de façon
séquentielle. Par exemple, vous pouvez utiliser l’opérateur + pour concaténer deux chaînes :
var str1:String = "green";
var str2:String = "ish";
var str3:String = str1 + str2; // str3 == "greenish"
Vous pouvez également utiliser l’opérateur += pour obtenir le même résultat, comme dans l’exemple suivant :
var str:String = "green";
str += "ish"; // str == "greenish"
En outre, la classe String comprend la méthode concat(), utilisable comme suit :
var str1:String = "Bonjour";
var str2:String = "from";
var str3:String = "Paris";
var str4:String = str1.concat(" ", str2, " ", str3);
// str4 == "Bonjour from Paris"
Si vous utilisez l’opérateur + (ou l’opérateur +=) avec un objet String et un objet qui n’est pas une chaîne, ActionScript
convertit automatiquement ce dernier en un objet String afin d’évaluer l’expression, comme indiqué dans l’exemple :
GUIDE DU DÉVELOPPEUR D’ACTIONSCRIPT 3.0 15
Utilisation des chaînes
Dernière mise à jour le 27/4/2013
var str:String = "Area = ";
var area:Number = Math.PI * Math.pow(3, 2);
str = str + area; // str == "Area = 28.274333882308138"
Néanmoins, vous pouvez utiliser des parenthèses pour le regroupement afin de fournir un contexte à l’opérateur +,
comme indiqué dans l’exemple suivant :
trace("Total: $" + 4.55 + 1.45); // output: Total: $4.551.45
trace("Total: $" + (4.55 + 1.45)); // output: Total: $6
Recherche de sous-chaînes et de modèles dans des
chaînes
Flash Player 9 et les versions ultérieures, Adobe AIR 1.0 et les versions ultérieures
Les sous-chaînes sont des caractères consécutifs à l’intérieur d’une chaîne. La chaîne "abc", par exemple, contient les
sous-chaînes suivantes : "", "a", "ab", "abc", "b", "bc", "c". Vous pouvez utiliser des méthodes ActionScript pour
localiser les sous-chaînes d’une chaîne.
Les modèles sont définis en ActionScript par des chaînes ou par des expressions régulières. Par exemple, l’expression
régulière suivante définit un modèle spécifique, les lettres A, B, et C suivies d’un chiffre (les barres de fraction sont des
délimiteurs d’expression régulière) :
/ABC\d/
ActionScript comporte des méthodes servant à rechercher des modèles dans des chaînes et à remplacer les
correspondances trouvées par des sous-chaînes de substitution. Ces méthodes sont décrites dans les sections suivantes.
Les expressions régulières peuvent définir des modèles compliqués. Pour plus d’informations, voir « Utilisation
d’expressions régulières » à la page 78.
Recherche d’une sous-chaîne par la position d’un caractère
Flash Player 9 et les versions ultérieures, Adobe AIR 1.0 et les versions ultérieures
Les méthodes substr() et substring() sont similaires. Elles renvoient toutes les deux une sous-chaîne d’une chaîne.
Elles prennent deux paramètres. Dans les deux méthodes, le premier paramètre est la position du caractère initial dans
la chaîne concernée. Toutefois, dans la méthode substr(), le deuxième paramètre est la longueur de la sous-chaîne à
renvoyer, alors que dans la méthode substring(), le deuxième paramètre est la position du caractère final de la souschaîne
(qui ne figure pas dans la chaîne renvoyée). Cet exemple illustre la différence entre ces deux méthodes :
var str:String = "Hello from Paris, Texas!!!";
trace(str.substr(11,15)); // output: Paris, Texas!!!
trace(str.substring(11,15)); // output: Pari
La méthode slice() fonctionne de la même façon que la méthode substring(). Lorsque deux nombres entiers non
négatifs sont passés en paramètres, son fonctionnement est identique. Néanmoins, la méthode slice() peut recevoir
des entiers négatifs comme paramètres. Dans ce cas, la position des caractères est comptée à partir de la fin de la chaîne,
comme dans l’exemple suivant :
GUIDE DU DÉVELOPPEUR D’ACTIONSCRIPT 3.0 16
Utilisation des chaînes
Dernière mise à jour le 27/4/2013
var str:String = "Hello from Paris, Texas!!!";
trace(str.slice(11,15)); // output: Pari
trace(str.slice(-3,-1)); // output: !!
trace(str.slice(-3,26)); // output: !!!
trace(str.slice(-3,str.length)); // output: !!!
trace(str.slice(-8,-3)); // output: Texas
Vous pouvez associer des entiers positifs et négatifs comme paramètres de la méthode slice().
Recherche de la position des caractères d’une sous-chaîne correspondante
Flash Player 9 et les versions ultérieures, Adobe AIR 1.0 et les versions ultérieures
Vous pouvez utiliser les méthodes indexOf() et lastIndexOf() pour localiser des sous-chaînes correspondantes au
sein d’une chaîne, comme dans l’exemple suivant :
var str:String = "The moon, the stars, the sea, the land";
trace(str.indexOf("the")); // output: 10
La méthode indexOf() est sensible à la casse.
Vous pouvez spécifier un deuxième paramètre pour indiquer la position de l’index dans la chaîne à partir de laquelle
commencer la recherche, comme suit :
var str:String = "The moon, the stars, the sea, the land"
trace(str.indexOf("the", 11)); // output: 21
La méthode lastIndexOf() trouve la dernière occurrence d’une sous-chaîne dans la chaîne :
var str:String = "The moon, the stars, the sea, the land"
trace(str.lastIndexOf("the")); // output: 30
Si vous incluez un deuxième paramètre avec la méthode lastIndexOf(), la recherche est effectuée à l’envers à partir
de cette position d’index dans la chaîne (de droite à gauche) :
var str:String = "The moon, the stars, the sea, the land"
trace(str.lastIndexOf("the", 29)); // output: 21
Création d’un tableau de sous-chaînes segmenté par un délimiteur
Flash Player 9 et les versions ultérieures, Adobe AIR 1.0 et les versions ultérieures
Vous pouvez utiliser la méthode split() pour créer un tableau de sous-chaînes divisé en fonction d’un caractère
délimiteur. Par exemple, vous pouvez segmenter une chaîne séparée par des virgules ou des tabulations en plusieurs
chaînes.
L’exemple suivant indique comment diviser un tableau en sous-chaînes avec le caractère esperluette (&) comme
délimiteur :
var queryStr:String = "first=joe&last=cheng&title=manager&StartDate=3/6/65";
var params:Array = queryStr.split("&", 2); // params == ["first=joe","last=cheng"]
Le deuxième paramètre de la méthode split() (qui est facultatif) définit la taille maximale du tableau renvoyé.
Vous pouvez également utiliser une expression régulière comme caractère délimiteur :
var str:String = "Give me\t5."
var a:Array = str.split(/\s+/); // a == ["Give","me","5."]
GUIDE DU DÉVELOPPEUR D’ACTIONSCRIPT 3.0 17
Utilisation des chaînes
Dernière mise à jour le 27/4/2013
Pour plus d’informations, voir « Utilisation d’expressions régulières » à la page 78 et le manuel Guide de référence
ActionScript 3.0 pour la plate-forme Adobe Flash.
Recherche de modèles dans des chaînes et remplacement de sous-chaînes
Flash Player 9 et les versions ultérieures, Adobe AIR 1.0 et les versions ultérieures
La classe String comprend les méthodes suivantes pour utiliser des modèles dans des chaînes :
• Utilisez les méthodes match() et search() pour localiser des sous-chaînes qui correspondent à un modèle.
• Utilisez la méthode replace() pour rechercher des sous-chaînes qui correspondent à un modèle et les remplacer
par une sous-chaîne spécifiée.
Ces méthodes sont décrites dans les sections suivantes.
Vous pouvez utiliser des chaînes ou des expressions régulières pour définir des modèles utilisés dans ces méthodes.
Pour plus d’informations sur les expressions régulières, voir « Utilisation d’expressions régulières » à la page 78.
Recherche de sous-chaînes correspondantes
La méthode search() renvoie la position de l’index de la première sous-chaîne qui correspond à un modèle donné,
comme illustré dans cet exemple :
var str:String = "The more the merrier.";
// (This search is case-sensitive.)
trace(str.search("the")); // output: 9
Vous pouvez également utiliser des expressions régulières pour définir le modèle pour lequel établir une
correspondance, comme illustré dans cet exemple :
var pattern:RegExp = /the/i;
var str:String = "The more the merrier.";
trace(str.search(pattern)); // 0
Le résultat de la méthode trace() est 0, car le premier caractère dans la chaîne est la position de l’index 0. L’indicateur
i est défini dans l’expression régulière. Par conséquent, la recherche n’est pas sensible à la casse.
La méthode search() trouve une seule correspondance et renvoie sa position d’index de début, même si l’indicateur
g (global) est défini dans l’expression régulière.
L’exemple suivant présente une expression régulière plus compliquée qui correspond à une chaîne dans des guillemets
doubles :
var pattern:RegExp = /"[^"]*"/;
var str:String = "The \"more\" the merrier.";
trace(str.search(pattern)); // output: 4
str = "The \"more the merrier.";
trace(str.search(pattern)); // output: -1
// (Indicates no match, since there is no closing double quotation mark.)
La méthode match() fonctionne de façon similaire. Elle recherche une sous-chaîne correspondante. Néanmoins,
lorsque vous utilisez l’indicateur global dans un modèle d’expression régulière (comme dans l’exemple suivant),
match() renvoie un tableau de sous-chaînes correspondantes :
var str:String = "bob@example.com, omar@example.org";
var pattern:RegExp = /\w*@\w*\.[org|com]+/g;
var results:Array = str.match(pattern);
GUIDE DU DÉVELOPPEUR D’ACTIONSCRIPT 3.0 18
Utilisation des chaînes
Dernière mise à jour le 27/4/2013
Le tableau results est défini comme suit :
["bob@example.com","omar@example.org"]
Pour plus d’informations sur les expressions régulières, voir « Utilisation d’expressions régulières » à la page 78.
Remplacement de sous-chaînes mises en correspondance
Vous pouvez utiliser la méthode replace() pour rechercher un modèle spécifié dans une chaîne et remplacer les
correspondances par la chaîne de remplacement spécifiée, comme illustré dans l’exemple suivant :
var str:String = "She sells seashells by the seashore.";
var pattern:RegExp = /sh/gi;
trace(str.replace(pattern, "sch")); //sche sells seaschells by the seaschore.
Dans cet exemple, les chaînes mises en correspondance ne sont pas sensibles à la casse car l’indicateur i (ignoreCase)
est défini dans l’expression régulière, et plusieurs correspondances sont remplacées car l’indicateur g (global) est
défini. Pour plus d’informations, voir « Utilisation d’expressions régulières » à la page 78.
Vous pouvez inclure les codes de remplacement $ suivants dans la chaîne de remplacement. Le texte de remplacement
indiqué dans le tableau suivant est inséré à la place du code de remplacement $ :
L’exemple suivant illustre l’utilisation des codes de remplacement $2 et $1, qui représentent le premier et le deuxième
groupes capturés correspondants :
var str:String = "flip-flop";
var pattern:RegExp = /(\w+)-(\w+)/g;
trace(str.replace(pattern, "$2-$1")); // flop-flip
Vous pouvez également utiliser une fonction comme deuxième paramètre de la méthode replace(). Le texte
correspondant est remplacé par la valeur renvoyée de la fonction.
Code $ Texte de remplacement
$$ $
$& Sous-chaîne correspondante.
$` Partie de la chaîne qui précède la sous-chaîne correspondante. Ce code utilise les guillemets simples droits gauches
(`) et non les guillemets simples droits (') ni les guillemets simples anglais gauches (' ).
$' Partie de la chaîne qui suit la sous-chaîne correspondante. Ce code utilise les guillemets simples droits (' ).
$n nième groupe entre parenthèses correspondant capturé, où n est un chiffre compris entre 1 et 9 et $n n’est pas suivi
d’une décimale.
$nn nnième groupe entre parenthèses correspondant capturé, où nn est un nombre décimal à deux chiffres compris
entre 01 et 99. Si la nnième capture n’est pas définie, le texte de remplacement est une chaîne vide.
GUIDE DU DÉVELOPPEUR D’ACTIONSCRIPT 3.0 19
Utilisation des chaînes
Dernière mise à jour le 27/4/2013
var str:String = "Now only $9.95!";
var price:RegExp = /\$([\d,]+.\d+)+/i;
trace(str.replace(price, usdToEuro));
function usdToEuro(matchedSubstring:String, capturedMatch1:String, index:int,
str:String):String
{
var usd:String = capturedMatch1;
usd = usd.replace(",", "");
var exchangeRate:Number = 0.853690;
var euro:Number = parseFloat(usd) * exchangeRate;
const euroSymbol:String = String.fromCharCode(8364);
return euro.toFixed(2) + " " + euroSymbol;
}
Lorsque vous utilisez une fonction comme deuxième paramètre de la méthode replace(), les arguments suivants sont
transmis à la fonction :
• La partie correspondante de la chaîne.
• Tout groupe entre parenthèses capturé correspondant. Le nombre d’arguments transmis de cette façon varie selon
le nombre de correspondances entre parenthèses. Pour déterminer le nombre de correspondances entre
parenthèses, vérifiez arguments.length - 3 dans le code de la fonction.
• La position d’index dans la chaîne où débute la correspondance.
• La chaîne complète.
Conversion de la casse dans des chaînes
Flash Player 9 et les versions ultérieures, Adobe AIR 1.0 et les versions ultérieures
Comme illustré dans l’exemple suivant, les méthodes toLowerCase() et toUpperCase() convertissent les caractères
alphabétiques de la chaîne en minuscule et en majuscule, respectivement :
var str:String = "Dr. Bob Roberts, #9."
trace(str.toLowerCase()); // dr. bob roberts, #9.
trace(str.toUpperCase()); // DR. BOB ROBERTS, #9.
Une fois que ces méthodes sont exécutées, la chaîne source reste inchangée. Pour transformer la chaîne source, utilisez
le code suivant :
str = str.toUpperCase();
Ces méthodes fonctionnent avec des caractères étendus, pas simplement a–z et A–Z :
var str:String = "José Barça";
trace(str.toUpperCase(), str.toLowerCase()); // JOSÉ BARÇA josé barça
GUIDE DU DÉVELOPPEUR D’ACTIONSCRIPT 3.0 20
Utilisation des chaînes
Dernière mise à jour le 27/4/2013
Exemple de chaîne : ASCII Art
Flash Player 9 et les versions ultérieures, Adobe AIR 1.0 et les versions ultérieures
Cet exemple ASCII Art représente différentes façons d’utiliser la classe String en ActionScript 3.0, notamment :
• La méthode split() de la classe String est utilisée pour extraire des valeurs d’une chaîne séparée par des caractères
(informations d’image dans un fichier de texte séparé par des tabulations).
• Plusieurs techniques de manipulation de chaînes, y compris split(), la concaténation et l’extraction d’une partie
de la chaîne à l’aide de substring() et de substr(), sont utilisées pour mettre la première lettre de chaque mot
dans les titres d’image en majuscule.
• La méthode getCharAt() est utilisée pour obtenir un seul caractère à partir d’une chaîne (pour déterminer le
caractère ASCII correspondant à une valeur bitmap d’échelle de gris).
• La concaténation de chaîne est utilisée pour construire la représentation ASCII art d’une image, un caractère à la fois.
Le terme ASCII art fait référence à des représentations textuelles d’une image dans lesquelles une grille de polices de
caractères à espacement constant (caractères Courier New, par exemple) trace l’image. L’image suivante est un
exemple d’ASCII art produit par l’application :
La version ASCII art du graphique est illustrée à droite.
Pour obtenir les fichiers d’application de cet exemple, voir
www.adobe.com/go/learn_programmingAS3samples_flash_fr. Les fichiers de l’application ASCIIArt se trouvent dans
le dossier Samples/AsciiArt. L’application se compose des fichiers suivants :
Fichier Description
AsciiArtApp.mxml
ou
AsciiArtApp.fla
Fichier d’application principal en FLA pour Flash ou en MXML
pour Flex
com/example/programmingas3/asciiArt/AsciiArtBuilder.as La classe qui fournit la fonctionnalité principale de
l’application, notamment l’extraction de métadonnées
d’image d’un fichier de texte, le chargement des images et la
gestion du processus de conversion d’image en texte.
com/example/programmingas3/asciiArt/BitmapToAsciiConverter.as Une classe qui fournit la méthode parseBitmapData()
pour convertir des données d’image dans une version String.
com/example/programmingas3/asciiArt/Image.as Une classe qui représente une image bitmap chargée.
GUIDE DU DÉVELOPPEUR D’ACTIONSCRIPT 3.0 21
Utilisation des chaînes
Dernière mise à jour le 27/4/2013
Extraction de valeurs séparées par des tabulations
Flash Player 9 et les versions ultérieures, Adobe AIR 1.0 et les versions ultérieures
Cet exemple utilise le stockage séparé de données d’application par rapport à l’application ; de cette façon, si les
données changent (par exemple, si une autre image est ajoutée ou que le titre d’une image change), il est inutile de
recréer le fichier SWF. Dans ce cas, les métadonnées d’image, y compris le titre de l’image, l’URL du fichier d’image
réel et certaines valeurs utilisées pour manipuler l’image, sont stockés dans un fichier de texte (le fichier
txt/ImageData.txt dans le projet). Le contenu du fichier de texte est le suivant :
FILENAMETITLEWHITE_THRESHHOLDBLACK_THRESHHOLD
FruitBasket.jpgPear, apple, orange, and bananad810
Banana.jpgA picture of a bananaC820
Orange.jpgorangeFF20
Apple.jpgpicture of an apple6E10
Le fichier utilise un format séparé par des tabulations spécifique. La première ligne est une ligne d’en-tête. Les lignes
restantes contiennent les données suivantes pour chaque bitmap à charger :
• Le nom de fichier du bitmap.
• Le nom d’affichage du bitmap.
• Les valeurs de seuil du blanc et les valeurs de seuil du noir pour les bitmaps. Il s’agit de valeurs hexadécimales audessus
et en dessous desquelles un pixel doit être considéré comme totalement blanc ou totalement noir.
Dès que l’application démarre, la classe AsciiArtBuilder se charge et analyse le contenu du fichier de texte afin de créer
la « pile » d’images qu’elle chargera. Pour cela, elle utilise le code suivant de la méthode parseImageInfo() de la classe
AsciiArtBuilder :
com/example/programmingas3/asciiArt/ImageInfo.as Une classe représentant des métadonnées pour une image
ASCII art (titre, URL de fichier image, etc.).
image/ Un dossier contenant des images utilisées par l’application.
txt/ImageData.txt Un fichier de texte séparé par des tabulations et contenant
des informations sur les images à charger par l’application.
Fichier Description
GUIDE DU DÉVELOPPEUR D’ACTIONSCRIPT 3.0 22
Utilisation des chaînes
Dernière mise à jour le 27/4/2013
var lines:Array = _imageInfoLoader.data.split("\n");
var numLines:uint = lines.length;
for (var i:uint = 1; i < numLines; i++)
{
var imageInfoRaw:String = lines[i];
...
if (imageInfoRaw.length > 0)
{
// Create a new image info record and add it to the array of image info.
var imageInfo:ImageInfo = new ImageInfo();
// Split the current line into values (separated by tab (\t)
// characters) and extract the individual properties:
var imageProperties:Array = imageInfoRaw.split("\t");
imageInfo.fileName = imageProperties[0];
imageInfo.title = normalizeTitle(imageProperties[1]);
imageInfo.whiteThreshold = parseInt(imageProperties[2], 16);
imageInfo.blackThreshold = parseInt(imageProperties[3], 16);
result.push(imageInfo);
}
}
Le contenu entier du fichier de texte se trouve dans une seule occurrence de String, la propriété
_imageInfoLoader.data. Vous pouvez utiliser la méthode split() avec le caractère de nouvelle ligne ("\n")
comme paramètre pour diviser l’occurrence de String en un tableau (lines) dont les éléments sont les lignes
individuelles du fichier de texte. Le code utilise ensuite une boucle pour travailler avec chacune des lignes (excepté la
première car elle contient uniquement des en-têtes). A l’intérieur de la boucle, la méthode split() est de nouveau
utilisée pour diviser le contenu de la ligne en un ensemble de valeurs (l’objet Array appelé imageProperties). Le
paramètre utilisé avec la méthode split() dans ce cas est le caractère de tabulation ("\t") car les valeurs dans chaque
ligne sont délimitées par des tabulations.
Utilisation de méthodes String pour normaliser des titres d’image
Flash Player 9 et les versions ultérieures, Adobe AIR 1.0 et les versions ultérieures
Dans cette application, tous les titres d’image sont affichés à l’aide d’un format standard, avec la première lettre de
chaque mot en majuscule (excepté quelques mots qui ne sont généralement pas en majuscule dans des titres anglais).
Au lieu de considérer que le fichier de texte contient des titres formatés correctement, l’application formate les titres
lors de leur extraction du fichier de texte.
Dans la liste de code précédente, lors de l’extraction de valeurs de métadonnées d’image individuelles, la ligne de code
suivante est utilisée :
imageInfo.title = normalizeTitle(imageProperties[1]);
Dans ce code, le titre de l’image issu du fichier de texte est transmis au moyen de la méthode normalizeTitle() avant
d’être stocké dans l’objet ImageInfo :
GUIDE DU DÉVELOPPEUR D’ACTIONSCRIPT 3.0 23
Utilisation des chaînes
Dernière mise à jour le 27/4/2013
private function normalizeTitle(title:String):String
{
var words:Array = title.split(" ");
var len:uint = words.length;
for (var i:uint; i < len; i++)
{
words[i] = capitalizeFirstLetter(words[i]);
}
return words.join(" ");
}
Cette méthode utilise la méthode split() pour diviser le titre en mots individuels (séparés par le caractère
d’espacement), transmet chaque mot au moyen de la méthode capitalizeFirstLetter() puis utilise la méthode
join() de la classe Array pour combiner de nouveau les mots en une chaîne unique.
Comme son nom l’indique, la méthode capitalizeFirstLetter() met la première lettre de chaque mot en
majuscule :
/**
* Capitalizes the first letter of a single word, unless it's one of
* a set of words that are normally not capitalized in English.
*/
private function capitalizeFirstLetter(word:String):String
{
switch (word)
{
case "and":
case "the":
case "in":
case "an":
case "or":
case "at":
case "of":
case "a":
// Don't do anything to these words.
break;
default:
// For any other word, capitalize the first character.
var firstLetter:String = word.substr(0, 1);
firstLetter = firstLetter.toUpperCase();
var otherLetters:String = word.substring(1);
word = firstLetter + otherLetters;
}
return word;
}
En anglais, le premier caractère des mots suivants utilisés dans un titre n’est pas mis en majuscule : “and,” “the,” “in,”
“an,” “or,” “at,” “of,” ou “a.” (il s’agit d’une version simplifiée des règles). Pour exécuter cette logique, le code utilise
d’abord une instruction switch pour vérifier si le mot est l’un des mots ne devant pas être en majuscule. Si c’est le cas,
le code sort de l’instruction switch. Si le mot doit être en majuscule, la procédure comprend plusieurs étapes :
1 La première lettre du mot est extraite à l’aide de substr(0, 1), qui extraie une sous-chaîne commençant par le
caractère au niveau de l’index 0 (la première lettre de la chaîne, comme indiqué par le premier paramètre 0). La
sous-chaîne contiendra un caractère (indiqué par le deuxième paramètre 1).
2 Ce caractère est mis en majuscule à l’aide de la méthode toUpperCase().
GUIDE DU DÉVELOPPEUR D’ACTIONSCRIPT 3.0 24
Utilisation des chaînes
Dernière mise à jour le 27/4/2013
3 Les caractères restants du mot d’origine sont extraits à l’aide de substring(1), qui extraie une sous-chaîne
commençant à l’index 1 (la deuxième lettre) jusqu’à la fin de la chaîne (indiqué en omettant le deuxième paramètre
de la méthode substring()).
4 Le dernier mot est créé en combinant la première lettre mise en majuscule et les lettres restantes en utilisant la
concaténation de chaîne : firstLetter + otherLetters
Génération du texte ASCII art
Flash Player 9 et les versions ultérieures, Adobe AIR 1.0 et les versions ultérieures
La classe BitmapToAsciiConverter permet de convertir une image bitmap en sa représentation de texte ASCII. Cette
procédure est effectuée par la méthode parseBitmapData(), partiellement représentée ici :
var result:String = "";
// Loop through the rows of pixels top to bottom:
for (var y:uint = 0; y < _data.height; y += verticalResolution)
{
// Within each row, loop through pixels left to right:
for (var x:uint = 0; x < _data.width; x += horizontalResolution)
{
...
// Convert the gray value in the 0-255 range to a value
// in the 0-64 range (since that's the number of "shades of
// gray" in the set of available characters):
index = Math.floor(grayVal / 4);
result += palette.charAt(index);
}
result += "\n";
}
return result;
Ce code définit d’abord une occurrence de String appelée result qui sera utilisée pour créer la version ASCII art de
l’image bitmap. Il effectue ensuite une boucle sur les pixels de l’image bitmap source. Il utilise plusieurs techniques de
manipulation des couleurs (non décrites ici) pour convertir le rouge, le vert et le bleu d’un pixel en une valeur d’échelle
de gris (un nombre entre 0 et 255). Le code divise ensuite cette valeur par 4 (comme indiqué) pour la convertir en une
valeur dans l’échelle 0-63, qui est stockée dans la variable index (l’échelle 0-63 est utilisée car la palette des caractères
ASCII disponibles utilisée par cette application contient 64 valeurs). La palette des caractères est définie en tant
qu’occurrence de String dans la classe BitmapToAsciiConverter :
// The characters are in order from darkest to lightest, so that their
// position (index) in the string corresponds to a relative color value
// (0 = black).
private static const palette:String =
"@#$%&8BMW*mwqpdbkhaoQ0OZXYUJCLtfjzxnuvcr[]{}1()|/?Il!i><+_~-;,. ";
Etant donné que la variable index définit le caractère ASCII de la palette qui correspond au pixel actuel dans l’image
bitmap, ce caractère est récupéré de la palette String à l’aide de la méthode charAt(). Il est ensuite ajouté à
l’occurrence de String result au moyen de l’opérateur d’affectation de concaténation (+=). En outre, à la fin de chaque
ligne de pixels, un caractère de nouvelle ligne est concaténé à la fin de l’occurrence de String result afin que la ligne
à renvoyer crée une ligne de pixels de caractères.
25
Dernière mise à jour le 27/4/2013
Chapitre 3 : Utilisation de tableaux
Flash Player 9 et les versions ultérieures, Adobe AIR 1.0 et les versions ultérieures
Les tableaux vous permettent de stocker plusieurs valeurs dans une seule structure de données. Vous pouvez utiliser
des tableaux indexés simples qui stockent des valeurs à l’aide d’index d’entiers ordinaux fixes ou des tableaux
associatifs complexes qui stockent des valeurs à l’aide de clés arbitraires. Les tableaux peuvent également être
multidimensionnels et contenir des éléments étant eux-mêmes des tableaux. Pour finir, vous pouvez utiliser un vecteur
pour les tableaux dont les éléments sont tous des occurrences du même type de données.
Voir aussi
Array
Vecteur
Principes de base des tableaux
Flash Player 9 et les versions ultérieures, Adobe AIR 1.0 et les versions ultérieures
Vous aurez souvent besoin en programmation d’utiliser un ensemble d’éléments plutôt qu’un seul objet; par exemple,
dans une application de lecteur de musique, vous pouvez avoir une liste de morceaux en attente de lecture. Vous ne
souhaitez pas créer une variable séparée pour chaque morceau de cette liste. Il serait préférable de rassembler tous les
objets Song et de les utiliser sous forme de groupe.
Un tableau est un élément de programmation qui agit comme conteneur pour un ensemble d’éléments (une liste de
morceaux, par exemple). La plupart du temps, tous les éléments d’un tableau sont des occurrences de la même classe,
mais ceci n’est pas obligatoire dans ActionScript. Les éléments individuels d’un tableau sont les éléments du tableau.
Un tableau peut être comparé à un tiroir classeur pour des variables. Les variables peuvent être ajoutées en tant
qu’éléments au tableau, comme vous placez un dossier dans le tiroir classeur. Vous pouvez utiliser le tableau comme
une variable unique, comme si vous transportiez le tiroir entier à un autre endroit. Vous pouvez utiliser les variables
en tant que groupe, comme si vous recherchiez des informations dans les dossiers en les parcourant l’un après l’autre.
Vous pouvez y accéder individuellement, comme si vous ouvriez le tiroir et sélectionniez un seul dossier.
Par exemple, imaginez que vous créez une application de lecteur de musique dans laquelle un utilisateur peut
sélectionner plusieurs morceaux et les ajouter à une liste de lecture. Dans votre code ActionScript, vous avez une
méthode appelée addSongsToPlaylist() qui accepte un seul tableau comme paramètre. Peu importe le nombre de
morceaux à ajouter à la liste (quelques-uns, un grand nombre, ou même un seul), vous devez appeler la méthode
addSongsToPlaylist() une seule fois, en lui transmettant le tableau qui contient les objets Song. Dans la méthode
addSongsToPlaylist(), vous pouvez utiliser une boucle pour parcourir les éléments (morceaux) du tableau un par
un et les ajouter à la liste de lecture.
Le type de tableau ActionScript le plus courant est le tableau indexé. Dans un tableau indexé, chaque élément est stocké
dans un emplacement numéroté appelé index. On accède à des éléments à l’aide du numéro, comme une adresse. Les
tableaux indexés répondent à la plupart des besoins en programmation. La classe Array est une classe courante utilisée
pour représenter un tableau indexé.
GUIDE DU DÉVELOPPEUR D’ACTIONSCRIPT 3.0 26
Utilisation de tableaux
Dernière mise à jour le 27/4/2013
Un tableau indexé est souvent utilisé pour stocker plusieurs éléments du même type, des objets qui sont des
occurrences de la même classe. La classe Array ne dispose pas de moyens pour restreindre le type d’éléments qu’elle
contient. La classe Vector est un type de tableau indexé dans lequel tous les éléments d’un tableau unique sont du
même type. L’utilisation d’une occurrence de Vector à la place d’une occurrence de Array peut également déboucher
sur une amélioration des performances entre autres. la classe Vector est prise en charge à partir de Flash Player 10 et
Adobe AIR 1.5.
Une utilisation spéciale d’un tableau indexé est un tableau multidimensionnel. Un tableau multidimensionnel est un
tableau indexé dont les éléments sont des tableaux indexés, qui contiennent à leur tour d’autres éléments.
Le tableau associatif est un autre type de tableau. Il utilise une chaîne key au lieu d’un index numérique pour identifier
des éléments individuels. Enfin, ActionScript 3.0 comprend également une classe Dictionary qui représente un
dictionnaire. Un dictionnaire est un tableau qui vous permet d’utiliser tout type d’objet comme clé afin de distinguer
les éléments entre eux.
Concepts importants et terminologie
La liste de référence suivante contient des termes importants utilisés dans le cadre de la programmation de routines
qui gèrent des tableaux et des vecteurs :
Array Objet qui sert de conteneur pour regrouper plusieurs objets.
Opérateur ([]) d’accès au tableau Paire de crochets entourant un index ou une clé qui identifie de façon unique un
élément du tableau. Cette syntaxe est utilisée après le nom d’une variable de tableau pour spécifier un seul élément du
tableau plutôt qu’un tableau entier.
Tableau associatif Tableau qui utilise des clés de chaîne pour identifier des éléments individuels.
Type de base Type de données des objets qu’une occurrence de Vector est autorisée à stocker.
Dictionnaire Tableau dont les éléments sont constitués de paires d’objets appelées clé et valeur. La clé est utilisée à la
place d’un index numérique pour identifier un seul élément.
Elément Elément unique dans un tableau.
Index Adresse numérique utilisée pour identifier un élément unique dans un tableau indexé.
Tableau indexé Type de tableau standard qui stocke chaque élément dans une position numérotée et utilise le numéro
(index) pour identifier des éléments individuels.
Clé Chaîne ou objet utilisé pour identifier un seul élément dans un tableau associatif ou un dictionnaire.
Tableau multidimensionnel Tableau contenant des éléments qui sont des tableaux plutôt que des valeurs uniques.
T Convention standard utilisée dans la présente documentation pour représenter le type de base d’une occurrence de
Vector, quel qu’il soit. La convention T est utilisée pour représenter un nom de classe, comme cela est indiqué dans la
description du paramètre Type. (« T » correspond à « type », comme dans « type de données ».)
Paramètre Type Syntaxe utilisée avec le nom de classe Vector pour spécifier le type de base de Vector (le type de
données des objets qu’il stocke). La syntaxe consiste en un point (.), puis le nom du type de données entouré de
parenthèses en chevron (<>). L’ensemble ressemble à ceci : Vector. Dans la présente documentation, la classe
spécifiée dans le paramètre Type est représenté de façon générique par T.
Vecteur Type de tableau dont les éléments sont tous des occurrences du même type de données.
GUIDE DU DÉVELOPPEUR D’ACTIONSCRIPT 3.0 27
Utilisation de tableaux
Dernière mise à jour le 27/4/2013
Tableaux indexés
Flash Player 9 et les versions ultérieures, Adobe AIR 1.0 et les versions ultérieures
Les tableaux indexés stockent une série d’une ou de plusieurs valeurs organisées de façon à ce que vous puissiez accéder
à chaque valeur à l’aide d’une valeur d’entier non signé. Le premier index correspond toujours au nombre 0. L’index
est ensuite incrémenté d’une unité pour chaque élément ajouté consécutivement au tableau. Dans ActionScript 3.0,
deux classes sont utilisées comme tableaux indexés : la classe Array et la classe Vector.
Les tableaux indexés utilisent un entier 32 bits non signé pour le numéro d’index. La taille maximale d’un tableau
indexé est 232 - 1 ou 4 294 967 295. Si vous tentez de créer un tableau plus grand que la taille maximale, une erreur
d’exécution se produit.
Pour accéder à un élément particulier d’un tableau indexé, vous pouvez utiliser l’opérateur ([]) d’accès au tableau pour
spécifier la position de l’index de l’élément visé. Par exemple, le code suivant représente le premier élément (l’élément
à l’index 0) dans un tableau indexé appelé songTitles :
songTitles[0]
La combinaison du nom de la variable du tableau suivi de l’index entre crochets fonctionne comme un identifiant
unique. En d’autres termes, elle peut être utilisée tout comme un nom de variable. Vous pouvez affecter une valeur à
un élément du tableau indexé en utilisant le nom et l’index du côté gauche d’une instruction d’affectation :
songTitles[1] = "Symphony No. 5 in D minor";
Dans la même veine, vous pouvez récupérer une valeur à un élément du tableau indexé en utilisant le nom et l’index
du côté droit d’une instruction d’affectation :
var nextSong:String = songTitles[2];
Vous pouvez aussi utiliser une variable entre crochets plutôt que de fournir une valeur explicite. Elle doit contenir une
valeur entière non-négative telle qu’un uint, un int positif ou une occurrence de Number d’entier positif. Cette
technique est utilisée couramment pour passer en boucle sur les éléments dans un tableau indexé et effectuer une
opération sur un ou tous les éléments. Le code ci-dessous décrit cette technique. Le code utilise une boucle pour
accéder à chaque valeur dans un objet Array appelé oddNumbers. Il utilise l’instruction trace() pour imprimer
chaque valeur sous la forme “oddNumber[index] = value” :
var oddNumbers:Array = [1, 3, 5, 7, 9, 11];
var len:uint = oddNumbers.length;
for (var i:uint = 0; i < len; i++)
{
trace("oddNumbers[" + i.toString() + "] = " + oddNumbers[i].toString());
}
Classe Array
La classe Array est le premier type de tableau indexé. Une occurrence de Array peut comporter une valeur de n’importe
quel type de données. Le même objet Array peut comporter des objets qui sont de types de données différents. Par
exemple, une occurrence de Array unique peut avoir une valeur String en index 0, une occurrence de Number en index
1 et un objet XML en index 2.
Classe Vector
La classe Vector est un autre type de tableau indexé qui est disponible dans ActionScript 3.0. Une occurrence de Vector
est un tableau typé, ce qui signifie que tous les éléments d’une occurrence de Vector ont toujours le même type de
données.
GUIDE DU DÉVELOPPEUR D’ACTIONSCRIPT 3.0 28
Utilisation de tableaux
Dernière mise à jour le 27/4/2013
Remarque : la classe Vector est prise en charge à partir de Flash Player 10 et Adobe AIR 1.5.
Lorsque vous déclarez une variable Vector ou que vous instanciez un objet Vector, vous spécifiez explicitement le type
de données des objets que le vecteur peut contenir. Le type de données spécifié est connu sous le nom de type de base
du vecteur. Lors de l’exécution et de la compilation (en mode strict), tout code qui fixe la valeur d’un élément Vector
ou récupère une valeur d’un élément Vector est contrôlé. Si le type de données de l’objet que l’on tente d’ajouter ou de
récupérer ne correspond pas au type de base du vecteur, une erreur se produit.
Outre la restriction concernant le type de données, la classe Vector possède d’autres restrictions qui la distinguent de
la classe Array :
• Un vecteur est un tableau dense. Un objet Array peut comporter des valeurs dans les index 0 et 7 même si elle n’en
a pas dans les positions 1 à 6. Cependant, un vecteur doit comporter une valeur (ou null) dans chaque index.
• Un vecteur peut facultativement avoir une longueur fixe. Ceci signifie que le nombre d’éléments du vecteur est
immuable.
• L’accès aux éléments d’un vecteur est défini par ses limites. Vous ne pouvez jamais lire une valeur d’un index
supérieur à celui de l’élément final (longueur - 1). Vous ne pouvez jamais définir une valeur avec un index
supérieur à l’index final actuel. En d’autres termes, vous pouvez définir une valeur uniquement à l’index existant
ou à une [longueur] d’index.
En raison de ses restrictions, un vecteur présente trois avantages principaux par rapport à une occurrence d’Array dont
les éléments sont tous des occurrences d’une classe unique :
• Performance : l’accès à l’élément de tableau et son itération sont beaucoup plus rapides lorsque vous utilisez une
occurrence de Vector que lorsque vous utilisez une occurrence d’Array.
• Sécurité des types : en mode strict, le compilateur peut identifier les erreurs de type de données. Parmi ces erreurs,
il y a l’affectation d’une valeur du type de données incorrect à un vecteur ou l’attente d’un type de données
incompatible lors de la lecture d’une valeur à partir du vecteur. A l’exécution, les types de données sont également
contrôlés lors de l’ajout de données à un objet Vector ou la lecture de données qui en provient. Notez cependant
que lorsque vous utilisez la méthode push() ou unshift() pour ajouter des valeurs à un vecteur, les types de
données des arguments ne sont pas vérifiés au moment de la compilation. Lorsque vous utilisez ces méthodes, les
valeurs sont toujours contrôlées à l’exécution.
• Fiabilité : le contrôle de gamme à l’exécution (ou contrôle de longueur fixe) assure une fiabilité nettement
supérieure à celle des objets Array.
A part les contraintes et les avantages supplémentaires, la classe Vector est très proche de la classe Array. Les propriétés
et les méthodes d’un objet Vector sont similaires, voire dans certains cas identiques, aux propriétés et aux méthodes
d’un objet Array. Au lieu d’utiliser un objet Array dont tous les éléments possèdent le même type de données, il est
généralement préférable de faire appel à une occurrence de l’objet Vector.
Création de tableaux
Flash Player 9 et les versions ultérieures, Adobe AIR 1.0 et les versions ultérieures
Vous pouvez utiliser plusieurs techniques pour créer une occurrence de Array ou une occurrence de Vector.
Cependant, les techniques de création de chaque type de tableau sont quelque peu différentes.
Création d’une occurrence de Array
Flash Player 9 et les versions ultérieures, Adobe AIR 1.0 et les versions ultérieures
Vous créez un objet Array par l’appel au constructeur Array( ou par l’utilisation d’une syntaxe de littéral de tableau.
GUIDE DU DÉVELOPPEUR D’ACTIONSCRIPT 3.0 29
Utilisation de tableaux
Dernière mise à jour le 27/4/2013
Vous pouvez utiliser la fonction de constructeur Array() de trois façons différentes. Premièrement, si vous appelez le
constructeur sans arguments, vous obtenez un tableau vide. Vous pouvez utiliser la propriété length de la classe Array
pour vérifier que le tableau ne contient aucun élément. Par exemple, le code suivant appelle le constructeur Array()
sans arguments :
var names:Array = new Array();
trace(names.length); // output: 0
Deuxièmement, si vous utilisez un nombre comme unique paramètre pour le constructeur Array(), un tableau de
cette longueur est créé, avec chaque valeur d’élément définie sur undefined. L’argument doit être un entier non signé
compris entre les valeurs 0 et 4 294 967 295. Par exemple, le code suivant appelle le constructeur Array() avec un seul
argument numérique :
var names:Array = new Array(3);
trace(names.length); // output: 3
trace(names[0]); // output: undefined
trace(names[1]); // output: undefined
trace(names[2]); // output: undefined
Troisièmement, si vous appelez le constructeur et transmettez une liste d’éléments comme paramètres, un tableau est
créé avec des éléments correspondant à chacun des paramètres. Le code suivant transmet trois arguments au
constructeur Array() :
var names:Array = new Array("John", "Jane", "David");
trace(names.length); // output: 3
trace(names[0]); // output: John
trace(names[1]); // output: Jane
trace(names[2]); // output: David
Vous pouvez aussi créer des tableaux avec des littéraux de tableau. Un littéral de tableau peut être affecté directement
à une variable de tableau, comme illustré dans l’exemple suivant :
var names:Array = ["John", "Jane", "David"];
Création d’une occurrence de Vector
Flash Player 10 et les versions ultérieures, Adobe AIR 1.5 et les versions ultérieures
Vous créez une occurrence de Vector par l’appel du constructeur Vector.(). Vous pouvez aussi créer un vecteur
par l’appel à la fonction globale Vector.(). Cette fonction convertit un objet spécifié en une occurrence de Vector.
Dans Flash Professional CS5 et les versions ultérieures, Flash Builder 4 et les versions ultérieures et Flex 4 et les
versions ultérieures, vous pouvez également créer une occurrence de Vector à l’aide de la syntaxe de littéral
correspondante.
Toutes les fois que vous déclarez une variable Vector (ou de la même façon, un paramètre de la méthode Vector ou un
type de renvoi de la méthode Vector), vous spécifiez le type de base de la variable Vector. Vous spécifiez également le
type de base lorsque vous créez une occurrence de Vector par l’appel au constructeur Vector.(). Autrement dit,
toutes les fois que vous utilisez le terme Vector dans ActionScript, il est accompagné d’un type de base.
Vous spécifiez le type de base du vecteur à l’aide de la syntaxe de paramètres de type. Le paramètre de type suit
immédiatement le mot Vector dans le code. Il est formé d’un point (.), puis du nom de classe de base entouré de
parenthèses en chevron (<>), comme l’indique cet exemple :
var v:Vector.;
v = new Vector.();
GUIDE DU DÉVELOPPEUR D’ACTIONSCRIPT 3.0 30
Utilisation de tableaux
Dernière mise à jour le 27/4/2013
Dans la première ligne de cet exemple, la variable v est déclarée comme une occurrence de Vector.. En
d’autres termes, il représente un tableau indexé qui ne peut comporter que des occurrences de String. La deuxième
ligne appelle le constructeur Vector() pour créer une occurrence du même type Vector, c’est-à-dire un vecteur dont
les éléments sont tous des objets String. Il affecte cet objet à v.
Utilisation du constructeur Vector.()
Si vous utilisez le constructeur Vector.() sans arguments, il crée une occurrence de Vector vide. Vous pouvez
contrôler qu’un vecteur est vide en vérifiant sa propriété length. Par exemple, le code ci-dessus appelle le constructeur
Vector.() sans arguments :
var names:Vector. = new Vector.();
trace(names.length); // output: 0
Si vous savez d’avance de combien d’éléments un vecteur a besoin initialement, vous pouvez prédéfinir ce nombre dans
le vecteur. Pour créer un vecteur avec un certain nombre d’éléments, transmettez le nombre d’éléments comme
premier paramètre (le paramètre length). Comme les éléments du vecteur ne peuvent pas être vides, ils sont remplis
d’occurrences du type de base. Si ce type est un type de référence qui autorise les valeurs null, les éléments contiennent
tous null. Autrement, ils contiennent tous la valeur par défaut pour la classe. Par exemple, une variable uint ne peut
pas être null. Par conséquent, dans le code ci-dessous, le vecteur appelé ages est créé avec sept éléments, chacun
contenant la valeur 0.
var ages:Vector. = new Vector.(7);
trace(ages); // output: 0,0,0,0,0,0,0
Enfin, à l’aide du constructeur Vector.(), vous pouvez également créer un vecteur de longueur fixe en
transmettant true comme deuxième paramètre (le paramètre fixed). Dans ce cas, le vecteur est créé avec le nombre
spécifié d’éléments et celui-ci ne peut pas être modifié. Notez cependant que vous pouvez quand même changer les
valeurs des éléments d’un vecteur de longueur fixe.
Utilisation du constructeur de syntaxe de littéral Vector
Dans Flash Professional CS5 et les versions ultérieures, Flash Builder 4 et les versions ultérieures et Flex 4 et les
versions ultérieures, vous pouvez transmettre une liste de valeurs au constructeur Vector() pour stipuler les
valeurs initiales du vecteur :
// var v:Vector. = new [E0, ..., En-1 ,];
// For example:
var v:Vector. = new [0,1,2,];
Cette syntaxe possède les caractéristiques suivantes :
• La virgule de fin de ligne est facultative.
• La syntaxe ne gère pas la présence d’éléments vides dans le tableau. Une instruction telle que var v:Vector.
= new [0,,2,] renvoie une erreur de compilation.
• Il est impossible de stipuler la longueur par défaut de l’occurrence de Vector. La longueur correspond au nombre
d’éléments qui composent la liste d’initialisation.
• Il est impossible de spécifier si l’occurrence de Vector possède une longueur fixe. Utilisez à cet effet la propriété
fixed.
• Il risque de se produire des pertes de données ou des erreurs si les éléments transmis en tant que valeurs ne
correspondent pas au type indiqué. Exemple :
var v:Vector. = new [4.2]; // compiler error when running in strict mode
trace(v[0]); //returns 4 when not running in strict mode
GUIDE DU DÉVELOPPEUR D’ACTIONSCRIPT 3.0 31
Utilisation de tableaux
Dernière mise à jour le 27/4/2013
Utilisation du constructeur Vector. ()
Outre le constructeur Vector.() et le constructeur de syntaxe de littéral Vector, vous disposez également de la
fonction globale Vector. () pour créer un objet Vector. La fonction globale Vector.() est une fonction de
conversion. Lorsque vous appelez la fonction globale Vector.(), vous spécifiez le type de base du vecteur que la
méthode renvoie. Vous transmettez un tableau indexé unique (occurrence de Array ou Vector) comme argument. La
méthode renvoie alors un vecteur avec le type de base spécifié, contenant les valeurs dans l’argument du tableau source.
Le code ci-dessous montre la syntaxe nécessaire pour appeler la fonction globale Vector.().
var friends:Vector. = Vector.(["Bob", "Larry", "Sarah"]);
La fonction globale Vector.() exécute une conversion de type de base sur deux niveaux. D’abord, lorsqu’une
occurrence de Array est transmise à la fonction, une occurrence de Vector est renvoyée. Ensuite, que le tableau source
soit une occurrence de Array ou Vector, la fonction tente de convertir les éléments du tableau source en valeurs du
type de base. La conversion utilise des règles standard de conversion des types de données ActionScript. Par exemple,
le code suivant convertit les valeurs String du tableau source en nombres entiers dans le vecteur résultant. La partie
décimale de la première ("1.5") est tronquée et la troisième valeur non numérique ("Waffles") est convertie en 0
dans le résultat :
var numbers:Vector. = Vector.(["1.5", "17", "Waffles"]);
trace(numbers); // output: 1,17,0
S’il n’est pas possible de convertir un élément source quelconque, une erreur se produit.
Lorsque le code appelle la fonction globale Vector.(), si un élément du tableau source est une occurrence d’une
sous-classe du type de base spécifié, l’élément est ajouté au vecteur résultant (aucune erreur ne se produit). L’utilisation
de la fonction globale Vector.() est en fait le seul moyen de convertir un vecteur avec un type de base T en un
vecteur avec un type de base qui est une superclasse de T.
Insertion d’éléments de tableau
Flash Player 9 et les versions ultérieures, Adobe AIR 1.0 et les versions ultérieures
L’opérateur ([]) d’accès au tableau constitue le moyen le plus élémentaire d’ajouter un élément à un tableau indexé.
Pour définir la valeur d’un élément de tableau indexé, utilisez le nom d’objet Array ou Vector et le numéro d’index du
côté gauche d’une instruction d’affectation.
songTitles[5] = "Happy Birthday";
Si un élément ne se trouve pas déjà à cette position d’index du tableau ou du vecteur, l’index est créé et la valeur y est
stockée. Si une valeur existe à cet index, la nouvelle valeur remplace l’ancienne.
Un objet Array vous permet de créer un élément pour tout index. Cependant, avec un objet Vector, vous pouvez
affecter uniquement une valeur à un index existant ou à l’index disponible suivant. Celui-ci correspond à la propriété
length de l’objet Vector. Utilisez du code comme celui qui est présenté ci-dessous pour ajouter un nouvel élément à
un objet Vector de la façon la plus sûre :
myVector[myVector.length] = valueToAdd;
Trois méthodes des classes Array et Vector, push(), unshift() et splice(), vous permettent d’insérer des éléments
dans un tableau indexé. La méthode push() ajoute un ou plusieurs éléments à la fin d’un tableau. Ainsi, le dernier
élément inséré dans le tableau à l’aide de la méthode push() aura le numéro d’index le plus élevé. La méthode
unshift() insère un ou plusieurs éléments au début d’un tableau, qui est toujours au numéro d’index 0. La méthode
splice() insère des éléments au niveau d’un index spécifié dans le tableau.
GUIDE DU DÉVELOPPEUR D’ACTIONSCRIPT 3.0 32
Utilisation de tableaux
Dernière mise à jour le 27/4/2013
L’exemple suivant illustre les trois méthodes. Un tableau appelé planets est créé pour trier les noms des planètes par
ordre de proximité par rapport au soleil. La méthode push() est tout d’abord appelée pour ajouter l’élément initial,
Mars. Deuxièmement, la méthode unshift() est appelée pour insérer l’élément Mercury au début du tableau. Pour
finir, la méthode splice() est appelée pour insérer les éléments Venus et Earth après Mercury, mais avant Mars. Le
premier élément envoyé à splice(), l’entier 1, indique à l’insertion de débuter à l’index 1. Le deuxième argument
envoyé à splice(), l’entier 0, indique qu’aucun élément ne doit être supprimé. Pour finir, les troisième et quatrième
arguments envoyés à splice(), Venus et Earth, sont les éléments à insérer.
var planets:Array = new Array();
planets.push("Mars"); // array contents: Mars
planets.unshift("Mercury"); // array contents: Mercury,Mars
planets.splice(1, 0, "Venus", "Earth");
trace(planets); // array contents: Mercury,Venus,Earth,Mars
Les méthodes push() et unshift() renvoient toutes les deux un entier non signé qui représente la longueur du
tableau modifié. La méthode splice() renvoie un tableau vide lorsqu’elle est utilisée pour insérer des éléments, ce qui
semble étrange mais compréhensible en raison de saversatilité. Vous pouvez utiliser la méthode splice() non
seulement pour insérer des éléments dans un tableau, mais également pour en supprimer. Lorsque vous l’utilisez pour
supprimer des éléments, la méthode splice() renvoie un tableau contenant les éléments supprimés.
Remarque : si une propriété fixed de l’objet Vector est définie sur true, le nombre total d’éléments du vecteur reste
immuable. Si vous tentez d’ajouter un nouvel élément à un vecteur de longueur fixe à l’aide des techniques décrites ici,
une erreur se produit.
Récupération des valeurs et suppression des éléments du tableau
Flash Player 9 et les versions ultérieures, Adobe AIR 1.0 et les versions ultérieures
Utilisez l’opérateur ([]) d’accès au tableau pour récupérer la valeur d’un élément de la façon la plus simple. Pour
récupérer la valeur d’un élément de tableau indexé, utilisez le nom d’objet Array ou Vector et le numéro d’index du
côté droit d’une instruction d’affectation.
var myFavoriteSong:String = songTitles[3];
Il est possible d’essayer de récupérer une valeur à partir d’un tableau ou d’un vecteur à l’aide d’un index où aucun
élément n’existe. Dans ce cas, un objet Array renvoie la valeur non définie et un vecteur renvoie une exception
RangeError.
Trois méthodes des classes Array et Vector, pop(), shift() et splice(), vous permettent de supprimer des éléments.
La méthode pop() supprime un élément de la fin du tableau. En d’autres termes, elle supprime l’élément au niveau du
numéro d’index le plus élevé. La méthode shift() supprime un élément du début du tableau, ce qui signifie qu’elle
supprime toujours l’élément au numéro d’index 0. La méthode splice(), qui peut également être utilisée pour insérer
des éléments, supprime un nombre arbitraire d’éléments en commençant au numéro d’index indiqué par le premier
argument envoyé à la méthode.
L’exemple suivant utilise les trois méthodes pour supprimer des éléments d’une occurrence d’Array. Un tableau
nommé oceans est créé pour stocker les noms des océans. Certains noms dans le tableau sont des noms de lacs plutôt
que des noms d’océans. Ils doivent donc être supprimés.
Premièrement, la méthode splice() est utilisée pour supprimer les éléments Aral et Superior, et insérer les
éléments Atlantic et Indian. Le premier argument envoyé à splice(), l’entier 2, indique que l’opération doit
commencer par le troisième élément dans la liste, qui est à l’index 2. Le deuxième argument, 2, indique que deux
éléments doivent être supprimés. Les arguments restants, Atlantic et Indian, sont des valeurs à insérer à l’index 2.
GUIDE DU DÉVELOPPEUR D’ACTIONSCRIPT 3.0 33
Utilisation de tableaux
Dernière mise à jour le 27/4/2013
Deuxièmement, la méthode pop() est utilisée pour supprimer le dernier élément dans le tableau, Huron. Et
troisièmement, la méthode shift() est utilisée pour supprimer le premier élément dans le tableau, Victoria.
var oceans:Array = ["Victoria", "Pacific", "Aral", "Superior", "Indian", "Huron"];
oceans.splice(2, 2, "Arctic", "Atlantic"); // replaces Aral and Superior
oceans.pop(); // removes Huron
oceans.shift(); // removes Victoria
trace(oceans);// output: Pacific,Arctic,Atlantic,Indian
Les méthodes pop() et shift() renvoient toutes les deux l’élément qui a été supprimé. Pour une occurrence de Array,
le type de données de la valeur renvoyée est Object car les tableaux peuvent contenir des valeurs de n’importe quel type
de données. Pour une occurrence de Vector, le type de données de la valeur renvoyée est le type de base du vecteur. La
méthode splice() renvoie un tableau ou un vecteur contenant les valeurs supprimées. Vous pouvez modifier
l’exemple du tableau oceans de façon à ce que l’appel à splice() affecte le tableau renvoyé à une nouvelle variable de
tableau, comme illustré dans l’exemple suivant :
var lakes:Array = oceans.splice(2, 2, "Arctic", "Atlantic");
trace(lakes); // output: Aral,Superior
Il se peut que vous rencontriez un code qui utilise l’opérateur delete sur un élément de l’objet Array. L’opérateur
delete définit la valeur d’un élément de tableau sur undefined, mais il ne supprime pas l’élément du tableau. Par
exemple, le code suivant utilise l’opérateur delete sur le troisième élément dans le tableau oceans, mais la longueur
du tableau demeure à 5 :
var oceans:Array = ["Arctic", "Pacific", "Victoria", "Indian", "Atlantic"];
delete oceans[2];
trace(oceans);// output: Arctic,Pacific,,Indian,Atlantic
trace(oceans[2]); // output: undefined
trace(oceans.length); // output: 5
Vous pouvez tronquer un tableau ou un vecteur à l’aide d’une propriété length de tableau. Si vous définissez la
propriété length d’un tableau indexé sur une longueur qui est moindre que la longueur actuelle du tableau, celui-ci
est tronqué : tous les éléments stockés à des numéros d’index supérieurs à la nouvelle valeur length, diminuée de 1,
sont supprimés. Par exemple, si le tableau oceans était trié de telle façon que toutes les entrées valides se trouvaient au
début du tableau, vous pourriez utiliser la propriété length pour supprimer les entrées de fin de tableau, comme
l’indique le code ci-dessous :
var oceans:Array = ["Arctic", "Pacific", "Victoria", "Aral", "Superior"];
oceans.length = 2;
trace(oceans); // output: Arctic,Pacific
Remarque : si une propriété fixed de l’objet Vector est définie sur true, le nombre total d’éléments du vecteur reste
immuable. Si vous essayez de supprimer un élément d’un vecteur de longueur fixe ou de tronquer celui-ci à l’aide des
techniques décrites ici, une erreur se produit.
Tri d’un tableau
Flash Player 9 et les versions ultérieures, Adobe AIR 1.0 et les versions ultérieures
Trois méthodes, reverse(), sort() et sortOn(), vous permettent de modifier l’ordre d’un tableau indexé, soit en
triant, soit en inversant l’ordre. Toutes ces méthodes modifient le tableau existant. Le tableau ci-dessous résume ces
méthodes et leurs comportements pour les objets Array et Vector :
GUIDE DU DÉVELOPPEUR D’ACTIONSCRIPT 3.0 34
Utilisation de tableaux
Dernière mise à jour le 27/4/2013
Méthode reverse()
La méthode reverse() ne prend aucun paramètre et ne renvoie aucune valeur mais vous permet de faire basculer
l’ordre de votre tableau de son état actuel à l’ordre inverse. L’exemple suivant inverse l’ordre des océans répertoriés
dans le tableau oceans :
var oceans:Array = ["Arctic", "Atlantic", "Indian", "Pacific"];
oceans.reverse();
trace(oceans); // output: Pacific,Indian,Atlantic,Arctic
Tri de base avec la méthode sort() (classe Array uniquement)
Pour une occurrence d’Array, la méthode sort() réorganise les éléments dans un tableau à l’aide de l’ordre de tri par
défaut. L’ordre de tri par défaut possède les caractéristiques suivantes :
• Le tri est sensible à la casse, ce qui signifie que les majuscules précédent les minuscules. Par exemple, la lettre D
précède la lettre b.
• Le tri est croissant, ce qui signifie que les codes de caractère bas (A, par exemple) précédent les codes de caractère
élevés (B, par exemple).
• Le tri place les valeurs identiques les unes à côté des autres mais sans ordre particulier.
• Le tri est basé sur des chaînes, ce qui signifie que les éléments sont convertis en chaînes avant d’être comparés (par
exemple, 10 précède 3 car la chaîne "1" a un code de caractère inférieur à celui de la chaîne "3").
Vous pouvez trier votre tableau en ignorant la casse ou par ordre décroissant. Vous pouvez également trier les nombres
de votre tableau par ordre numérique plutôt que par ordre alphabétique. La méthode sort() de la classe Array possède
un paramètre options qui vous permet de modifier chaque caractéristique de l’ordre de tri par défaut. Les options
sont définies par un ensemble de constantes statiques dans la classe Array, comme indiqué dans la liste suivante :
• Array.CASEINSENSITIVE : cette option permet d’ignorer la casse lors du tri. Par exemple, la lettre minuscule b
précède la lettre majuscule D.
• Array.DESCENDING : cette option inverse le tri croissant par défaut. Par exemple, la lettre B précède la lettre A.
• Array.UNIQUESORT : cette option permet d’arrêter le tri si deux valeurs identiques sont repérées.
• Array.NUMERIC : cette option permet d’effectuer un tri numérique, de façon à ce que 3 précède 10.
L’exemple suivant met en évidence certaines de ces options. Un tableau appelé poets est créé. Il est trié à l’aide de
plusieurs options.
Méthode Comportement d’Array Comportement de Vector
reverse() Modifie l’ordre des éléments de telle sorte que le dernier élément
devient le premier élément, le pénultième le deuxième, etc.
Identique au comportement d’Array
sort() Vous permet de trier les éléments du tableau de diverses façons
prédéfinies, comme l’ordre alphabétique ou numérique. Vous pouvez
également spécifier un algorithme de tri personnalisé.
Trie les éléments suivant l’algorithme de tri
personnalisé que vous spécifiez
sortOn() Vous permet de trier des objets qui ont une ou plusieurs propriétés en
commun en spécifiant la ou les propriétés à utiliser comme critères de
tri.
Non disponible dans la classe Vector
GUIDE DU DÉVELOPPEUR D’ACTIONSCRIPT 3.0 35
Utilisation de tableaux
Dernière mise à jour le 27/4/2013
var poets:Array = ["Blake", "cummings", "Angelou", "Dante"];
poets.sort(); // default sort
trace(poets); // output: Angelou,Blake,Dante,cummings
poets.sort(Array.CASEINSENSITIVE);
trace(poets); // output: Angelou,Blake,cummings,Dante
poets.sort(Array.DESCENDING);
trace(poets); // output: cummings,Dante,Blake,Angelou
poets.sort(Array.DESCENDING | Array.CASEINSENSITIVE); // use two options
trace(poets); // output: Dante,cummings,Blake,Angelou
Tri personnalisé avec la méthode sort() (classes Array et Vector)
En plus du tri de base qui est disponible pour un objet Array, vous pouvez également établir une règle de tri
personnalisée. Cette technique est la seule forme de méthode sort() disponible pour la classe Vector. Pour définir un
tri personnalisé, vous rédigez une fonction de tri personnalisée et la transmettez comme argument à la méthode
sort().
Par exemple, si vous avez une liste de noms dans laquelle chaque élément de liste contient le nom entier d’une personne
mais que vous souhaitez trier la liste par nom de famille, vous devez utiliser une fonction de tri personnalisé pour
analyser chaque élément et utiliser le nom de famille dans la fonction de tri. Le code suivant indique comment
procéder avec une fonction personnalisée utilisée comme paramètre pour la méthode Array.sort() :
var names:Array = new Array("John Q. Smith", "Jane Doe", "Mike Jones");
function orderLastName(a, b):int
{
var lastName:RegExp = /\b\S+$/;
var name1 = a.match(lastName);
var name2 = b.match(lastName);
if (name1 < name2)
{
return -1;
}
else if (name1 > name2)
{
return 1;
}
else
{
return 0;
}
}
trace(names); // output: John Q. Smith,Jane Doe,Mike Jones
names.sort(orderLastName);
trace(names); // output: Jane Doe,Mike Jones,John Q. Smith
La fonction de tri personnalisé orderLastName() utilise une expression régulière pour extraire le nom de famille de
chaque élément à utiliser pour l’opération de comparaison. L’identifiant de fonction orderLastName est l’unique
paramètre utilisé lors de l’appel à la méthode sort() sur le tableau names. La fonction de tri accepte deux paramètres,
a et b, car elle fonctionne sur deux éléments de tableau à la fois. La valeur renvoyée de la fonction de tri indique la
manière dont les éléments doivent être triés :
• Une valeur renvoyée de -1 indique que le premier paramètre, a, précède le second paramètre, b.
• Une valeur renvoyée de 1 indique que le second paramètre, b, précède le premier, a.
GUIDE DU DÉVELOPPEUR D’ACTIONSCRIPT 3.0 36
Utilisation de tableaux
Dernière mise à jour le 27/4/2013
• Une valeur renvoyée de 0 indique que les éléments ont une précédence de tri équivalente.
Méthode sortOn() (classe Array uniquement)
La méthode sortOn() est conçue pour des objets Array avec des éléments contenant des objets. Ces objets doivent
avoir au moins une propriété en commun pouvant être utilisée comme clé de tri. L’utilisation de la méthode sortOn()
pour des tableaux d’autres types provoque des résultats inattendus.
Remarque : la classe Vector ne contient pas de méthode sortOn(). Cette méthode n’est disponible que pour les objets
Array.
L’exemple suivant modifie le tableau poets de façon à ce que chaque élément soit un objet plutôt qu’une chaîne.
Chaque objet contient à la fois le nom de famille du poète et sa date de naissance.
var poets:Array = new Array();
poets.push({name:"Angelou", born:"1928"});
poets.push({name:"Blake", born:"1757"});
poets.push({name:"cummings", born:"1894"});
poets.push({name:"Dante", born:"1265"});
poets.push({name:"Wang", born:"701"});
Vous pouvez utiliser la méthode sortOn() pour trier le tableau par la propriété born. La méthode sortOn() définit
deux paramètres, fieldName et options. L’argument fieldName doit être spécifié en tant que chaîne. Dans l’exemple
suivant, la méthode sortOn() est appelée avec deux arguments, "born" et Array.NUMERIC. L’argument
Array.NUMERIC est utilisé pour vérifier que le tri est effectué par ordre numérique plutôt que par ordre alphabétique.
Ceci est utile même lorsque tous les nombres ont le même nombre de chiffres car vous êtes certain que le tri se fera
comme prévu si un nombre comportant un nombre inférieur ou supérieur de chiffres est ensuite ajouté au tableau.
poets.sortOn("born", Array.NUMERIC);
for (var i:int = 0; i < poets.length; ++i)
{
trace(poets[i].name, poets[i].born);
}
/* output:
Wang 701
Dante 1265
Blake 1757
cummings 1894
Angelou 1928
*/
Tri sans modification du tableau d’origine (classe Array uniquement)
Généralement, les méthodes sort() et sortOn() modifient un tableau. Si vous souhaitez trier un tableau sans
modifier le tableau existant, transmettez la constante Array.RETURNINDEXEDARRAY avec le paramètre options. Cette
option indique aux méthodes de renvoyer un nouveau tableau qui reflète le tri et laisse le tableau d’origine inchangé.
Le tableau renvoyé par les méthodes est un tableau simple de numéros d’index qui reflète le nouvel ordre de tri et ne
contient aucun élément du tableau d’origine. Par exemple, pour trier le tableau poets par année de naissance sans le
modifier, incluez la constante Array.RETURNINDEXEDARRAY dans l’argument transmis pour le paramètre options.
L’exemple suivant stocke les informations d’index renvoyées dans un tableau nommé indices et utilise le tableau
indices avec le tableau poets inchangé pour trier les poètes dans l’ordre de leur année de naissance :
GUIDE DU DÉVELOPPEUR D’ACTIONSCRIPT 3.0 37
Utilisation de tableaux
Dernière mise à jour le 27/4/2013
var indices:Array;
indices = poets.sortOn("born", Array.NUMERIC | Array.RETURNINDEXEDARRAY);
for (var i:int = 0; i < indices.length; ++i)
{
var index:int = indices[i];
trace(poets[index].name, poets[index].born);
}
/* output:
Wang 701
Dante 1265
Blake 1757
cummings 1894
Angelou 1928
*/
Interrogation d’un tableau
Flash Player 9 et les versions ultérieures, Adobe AIR 1.0 et les versions ultérieures
Les quatre méthodes restantes des classes Array et Vector, concat(), join(), slice(), toString(), interrogent
toutes le tableau sans le modifier. Les méthodes concat() et slice() renvoient toutes les deux de nouveaux tableaux,
alors que les méthodes join() et toString() renvoient des chaînes. La méthode concat() prend un nouveau tableau
ou une liste d’éléments comme arguments et le/la combine avec le tableau existant pour créer un tableau. La méthode
slice() possède deux paramètres nommés startIndex et endIndex, et renvoie un nouveau tableau contenant une
copie des éléments découpés du tableau existant. La découpe commence avec l’élément à startIndex et se termine
avec l’élément juste avant endIndex. Il convient d’insister : l’élément à endIndex n’est pas compris dans la valeur
renvoyée.
L’exemple suivant utilise concat() et slice() pour créer des tableaux à l’aide d’éléments d’autres tableaux :
var array1:Array = ["alpha", "beta"];
var array2:Array = array1.concat("gamma", "delta");
trace(array2); // output: alpha,beta,gamma,delta
var array3:Array = array1.concat(array2);
trace(array3); // output: alpha,beta,alpha,beta,gamma,delta
var array4:Array = array3.slice(2,5);
trace(array4); // output: alpha,beta,gamma
Vous pouvez utiliser les méthodes join() et toString() pour interroger le tableau et renvoyer son contenu sous la
forme d’une chaîne. Si aucun paramètre n’est utilisé pour la méthode join(), les deux méthodes se comportent de
façon identique : elles renvoient une chaîne contenant une liste de tous les éléments du tableau, séparés par une virgule.
La méthode join(), contrairement à la méthode toString(), accepte un paramètre nommé delimiter, qui permet
de choisir le symbole à utiliser comme séparateur entre chaque élément de la chaîne renvoyée.
L’exemple suivant crée un tableau nommé rivers et appelle à la fois join() et toString() pour renvoyer les valeurs
dans le tableau sous la forme d’une chaîne. La méthode toString() est utilisée pour renvoyer des valeurs séparées par
une virgule (riverCSV), alors que la méthode join() est utilisée pour renvoyer des valeurs séparées par le caractère +.
var rivers:Array = ["Nile", "Amazon", "Yangtze", "Mississippi"];
var riverCSV:String = rivers.toString();
trace(riverCSV); // output: Nile,Amazon,Yangtze,Mississippi
var riverPSV:String = rivers.join("+");
trace(riverPSV); // output: Nile+Amazon+Yangtze+Mississippi
GUIDE DU DÉVELOPPEUR D’ACTIONSCRIPT 3.0 38
Utilisation de tableaux
Dernière mise à jour le 27/4/2013
Il existe un problème avec la méthode join() ; toutes les occurrences de tableau et de vecteur imbriquées sont toujours
renvoyées avec des valeurs séparées par des virgules, quel que soit le séparateur que vous spécifiez pour les éléments
de tableau principaux, comme illustré dans l’exemple suivant :
var nested:Array = ["b","c","d"];
var letters:Array = ["a",nested,"e"];
var joined:String = letters.join("+");
trace(joined); // output: a+b,c,d+e
Tableaux associatifs
Flash Player 9 et les versions ultérieures, Adobe AIR 1.0 et les versions ultérieures
Un tableau associatif, parfois appelé hachage ou mappage, utilise des clés plutôt qu’un index numérique pour organiser
des valeurs stockées. Chaque clé dans un tableau associatif est une chaîne unique qui est utilisée pour accéder à une
valeur stockée. Un tableau associatif est une occurrence de la classe Object, ce qui signifie que chaque clé correspond
à un nom de propriété. Les tableaux associatifs sont des collections non triées de paires de clés et de valeurs. Votre code
ne doit pas s’attendre à ce que les clés d’un tel tableau se présentent dans un ordre précis.
ActionScript 3.0 contient aussi un type avancé de tableau associatif appelé dictionnaire. Les dictionnaires, qui sont des
occurrences de la classe Dictionary dans le package flash.utils, utilisent des clés de tout type de données. En d’autres
termes, les clés de dictionnaire ne sont pas limitées à des valeurs de type String.
Tableaux associatifs avec clés de chaîne
Flash Player 9 et les versions ultérieures, Adobe AIR 1.0 et les versions ultérieures
Deux méthodes permettent de créer des tableaux associatifs dans ActionScript 3.0. La première consiste à utiliser une
occurrence de Object. Celle-ci vous permet d’initialiser votre tableau avec un littéral d’objet. Une occurrence de la
classe Object, également appelée objet générique, fonctionne comme un tableau associatif. Chaque nom de propriété
de l’objet générique devient la clé qui permet d’accéder à une valeur stockée.
L’exemple suivant crée un tableau associatif appelé monitorInfo, à l’aide d’un littéral d’objet pour initialiser le tableau
avec deux paires de clés et de valeurs :
var monitorInfo:Object = {type:"Flat Panel", resolution:"1600 x 1200"};
trace(monitorInfo["type"], monitorInfo["resolution"]);
// output: Flat Panel 1600 x 1200
Si vous n’avez pas besoin d’initialiser le tableau lors de la déclaration, vous pouvez utiliser le constructeur Object pour
créer le tableau, comme suit :
var monitorInfo:Object = new Object();
Une fois que le tableau est créé à l’aide d’un littéral d’objet ou du constructeur de la classe Object, vous pouvez lui
ajouter de nouvelles valeurs à l’aide de l’opérateur ([]) d’accès au tableau ou de l’opérateur point (.). L’exemple
suivant ajoute deux nouvelles valeurs à monitorArray :
monitorInfo["aspect ratio"] = "16:10"; // bad form, do not use spaces
monitorInfo.colors = "16.7 million";
trace(monitorInfo["aspect ratio"], monitorInfo.colors);
// output: 16:10 16.7 million
GUIDE DU DÉVELOPPEUR D’ACTIONSCRIPT 3.0 39
Utilisation de tableaux
Dernière mise à jour le 27/4/2013
La clé appelée aspect ratio contient un caractère d’espace. Cela est possible dans le cas de l’opérateur ([]) d’accès
au tableau, mais avec l’opérateur point, une erreur se produit. L’utilisation d’espace dans le nom de vos clés n’est donc
pas conseillée.
La seconde méthode pour créer un tableau associatif consiste à utiliser le constructeur Array (ou le constructeur d’une
classe dynamique), puis à utiliser l’opérateur ([]) d’accès au tableau ou l’opérateur point (.) pour ajouter les paires de
clés et de valeurs au tableau. Si vous déclarez votre tableau associatif comme étant de type Array, vous ne pouvez pas
utiliser de littéral d’objet pour l’initialiser. Ce code crée un tableau associatif appelé monitorInfo à l’aide du
constructeur Array, et ajoute les clés appelées type et resolution, ainsi que leurs valeurs :
var monitorInfo:Array = new Array();
monitorInfo["type"] = "Flat Panel";
monitorInfo["resolution"] = "1600 x 1200";
trace(monitorInfo["type"], monitorInfo["resolution"]);
// output: Flat Panel 1600 x 1200
L’utilisation du constructeur Array pour créer un tableau associatif ne présente aucun avantage. Vous ne pouvez pas
utiliser la propriété Array.length ou une méthode de la classe Array avec des tableaux associatifs, même si vous
utilisez le constructeur Array ou le type de données Array. Il est préférable d’utiliser le constructeur Array pour créer
des tableaux indexés.
Tableaux associatifs avec clés d’objet (dictionnaires)
Flash Player 9 et les versions ultérieures, Adobe AIR 1.0 et les versions ultérieures
Vous pouvez utiliser la classe Dictionary pour créer un tableau associatif qui utilise des objets pour les clés au lieu de
chaînes. Ces tableaux sont parfois appelés dictionnaires, hachages ou mappages. Par exemple, supposez que vous avez
une application qui détermine l’emplacement d’un objet Sprite selon son association avec un conteneur spécifique.
Vous pouvez utiliser un objet Dictionary pour mapper chaque objet Sprite à un conteneur.
Le code suivant crée trois occurrences de la classe Sprite qui servent de clés pour l’objet Dictionary. La valeur GroupA
ou GroupB est affectée à chaque clé. Les valeurs peuvent être de n’importe quel type de données, mais dans cet exemple,
GroupA et GroupB sont des occurrences de la classe Object. Vous pouvez ensuite accéder à la valeur associée à chaque
clé avec l’opérateur d’accès au tableau ([]), comme illustré dans le code suivant :
GUIDE DU DÉVELOPPEUR D’ACTIONSCRIPT 3.0 40
Utilisation de tableaux
Dernière mise à jour le 27/4/2013
import flash.display.Sprite;
import flash.utils.Dictionary;
var groupMap:Dictionary = new Dictionary();
// objects to use as keys
var spr1:Sprite = new Sprite();
var spr2:Sprite = new Sprite();
var spr3:Sprite = new Sprite();
// objects to use as values
var groupA:Object = new Object();
var groupB:Object = new Object();
// Create new key-value pairs in dictionary.
groupMap[spr1] = groupA;
groupMap[spr2] = groupB;
groupMap[spr3] = groupB;
if (groupMap[spr1] == groupA)
{
trace("spr1 is in groupA");
}
if (groupMap[spr2] == groupB)
{
trace("spr2 is in groupB");
}
if (groupMap[spr3] == groupB)
{
trace("spr3 is in groupB");
}
Itération avec des clés d’objet
Vous pouvez parcourir en boucle le contenu d’un objet Dictionary à l’aide d’une boucle for..in ou d’une boucle for
each..in. Une boucle for..in vous permet d’effectuer une itération en fonction des clés, tandis qu’une boucle for
each..in vous permet d’effectuer une itération en fonction des valeurs associées à chaque clé.
Utilisez la boucle for..in pour accéder directement aux clés d’objet d’un objet Dictionary. Vous pouvez également
accéder aux valeurs de l’objet Dictionary avec l’opérateur d’accès au tableau ([]). Le code suivant utilise l’exemple
précédent du dictionnaire groupMap pour indiquer comment parcourir en boucle un objet Dictionary avec la boucle
for..in :
for (var key:Object in groupMap)
{
trace(key, groupMap[key]);
}
/* output:
[object Sprite] [object Object]
[object Sprite] [object Object]
[object Sprite] [object Object]
*/
Utilisez la boucle for each..in pour accéder directement aux valeurs d’un objet Dictionary. Le code suivant utilise
également le dictionnaire groupMap pour indiquer comment parcourir en boucle un objet Dictionary avec la boucle
for each..in :
GUIDE DU DÉVELOPPEUR D’ACTIONSCRIPT 3.0 41
Utilisation de tableaux
Dernière mise à jour le 27/4/2013
for each (var item:Object in groupMap)
{
trace(item);
}
/* output:
[object Object]
[object Object]
[object Object]
*/
Clés d’objet et gestion de la mémoire
Adobe® Flash® Player et Adobe® AIR™ utilisent un système de nettoyage permettant de récupérer la mémoire qui n’est
plus utilisée. Lorsque aucune référence ne pointe vers un objet, ce dernier peut être nettoyé et la mémoire récupérée
au prochain nettoyage. Par exemple, le code suivant crée un objet et lui affecte une référence à la variable myObject :
var myObject:Object = new Object();
Tant que des références à l’objet existent, le système de nettoyage ne récupère pas la mémoire que l’objet occupe. Si la
valeur de myObject est modifiée et qu’elle pointe vers un autre objet ou qu’elle est définie sur null, la mémoire
occupée par l’objet d’origine peut être nettoyée. Néanmoins, aucune autre référence à l’objet d’origine ne doit exister.
Si vous utilisez myObject comme clé dans un objet Dictionary, vous créez une autre référence à l’objet d’origine. Par
exemple, le code suivant crée deux références à un objet, la variable myObject et la clé dans l’objet myMap :
import flash.utils.Dictionary;
var myObject:Object = new Object();
var myMap:Dictionary = new Dictionary();
myMap[myObject] = "foo";
Pour que l’objet référencé par myObject puisse être nettoyé, vous devez supprimer toutes ses références. Dans ce cas,
vous devez modifier la valeur de myObject et supprimer la clé myObject de myMap, comme indiqué dans le code
suivant :
myObject = null;
delete myMap[myObject];
Vous pouvez également utiliser le paramètre useWeakReference du constructeur Dictionary pour que toutes les clés
de dictionnaire deviennent des références faibles. Le système de nettoyage ignore les références faibles. Par conséquent,
un objet n’ayant que des références faibles peut être nettoyé. Par exemple, dans le code suivant, vous n’avez pas besoin
de supprimer la clé myObject de myMap pour que l’objet puisse être nettoyé :
import flash.utils.Dictionary;
var myObject:Object = new Object();
var myMap:Dictionary = new Dictionary(true);
myMap[myObject] = "foo";
myObject = null; // Make object eligible for garbage collection.
Tableaux multidimensionnels
Flash Player 9 et les versions ultérieures, Adobe AIR 1.0 et les versions ultérieures
Les tableaux multidimensionnels contiennent d’autres tableaux comme éléments. Prenons par exemple une liste de
tâches stockée sous forme de tableau indexé de chaînes :
GUIDE DU DÉVELOPPEUR D’ACTIONSCRIPT 3.0 42
Utilisation de tableaux
Dernière mise à jour le 27/4/2013
var tasks:Array = ["wash dishes", "take out trash"];
Pour stocker une liste de tâches distincte pour chaque jour de la semaine, vous pouvez créer un tableau
multidimensionnel avec un élément pour chaque jour. Chaque élément contient à son tour un tableau indexé
(semblable au tableau tasks) qui stocke la liste des tâches. Vous pouvez utiliser n’importe quelle combinaison de
tableaux indexés ou associatifs dans des tableaux multidimensionnels. Les exemples des sections suivantes utilisent soit
deux tableaux indexés soit un tableau associatif de tableaux indexés. Vous pouvez essayer les autres combinaisons pour
vous exercer.
Deux tableaux indexés
Flash Player 9 et les versions ultérieures, Adobe AIR 1.0 et les versions ultérieures
Lorsque vous utilisez deux tableaux indexés, vous pouvez visualiser le résultat sous forme de tableau ou de feuille de
calcul. Les éléments du premier tableau représentent les lignes alors que les éléments du second tableau représentent
les colonnes.
Par exemple, le tableau multidimensionnel suivant utilise deux tableaux indexés pour suivre des listes de tâches pour
chaque jour de la semaine. Le premier tableau, masterTaskList, est créé à l’aide du constructeur de classe Array.
Chaque élément du tableau représente un jour de la semaine, avec l’index 0 représentant lundi et l’index 6 dimanche.
Ces éléments peuvent être considérés comme les lignes du tableau. Vous pouvez créer la liste de tâches de chaque jour
en affectant un littéral de tableau à chacun des sept éléments que vous créez dans le tableau masterTaskList. Les
littéraux de tableau représentent les colonnes du tableau.
var masterTaskList:Array = new Array();
masterTaskList[0] = ["wash dishes", "take out trash"];
masterTaskList[1] = ["wash dishes", "pay bills"];
masterTaskList[2] = ["wash dishes", "dentist", "wash dog"];
masterTaskList[3] = ["wash dishes"];
masterTaskList[4] = ["wash dishes", "clean house"];
masterTaskList[5] = ["wash dishes", "wash car", "pay rent"];
masterTaskList[6] = ["mow lawn", "fix chair"];
Vous pouvez accéder à des éléments particuliers sur toute liste des tâches à l’aide de l’opérateur d’accès au tableau ([]).
Le premier groupe de crochets représente le jour de la semaine et le second la liste de tâches pour ce jour. Par exemple,
pour récupérer la seconde tâche de la liste du mercredi, utilisez d’abord l’index 2 pour mercredi puis utilisez l’index 1
pour la seconde tâche dans la liste.
trace(masterTaskList[2][1]); // output: dentist
Pour récupérer la première tâche de la liste du dimanche, utilisez l’index 6 pour dimanche et l’index 0 pour la première
tâche sur la liste.
trace(masterTaskList[6][0]); // output: mow lawn
Tableau associatif avec un tableau indexé
Flash Player 9 et les versions ultérieures, Adobe AIR 1.0 et les versions ultérieures
Pour faciliter l’accès aux tableaux, vous pouvez utiliser un tableau associatif pour les jours de la semaine et un tableau
indexé pour les listes de tâche. Les tableaux associatifs vous permettent d’utiliser une syntaxe à point lorsque vous vous
référez à un jour particulier de la semaine, mais nécessitent un traitement d’exécution supplémentaire pour accéder à
chaque élément du tableau associatif. L’exemple suivant utilise un tableau associatif comme base d’une liste de tâches,
avec une paire de clés et de valeurs pour chaque jour de la semaine :
GUIDE DU DÉVELOPPEUR D’ACTIONSCRIPT 3.0 43
Utilisation de tableaux
Dernière mise à jour le 27/4/2013
var masterTaskList:Object = new Object();
masterTaskList["Monday"] = ["wash dishes", "take out trash"];
masterTaskList["Tuesday"] = ["wash dishes", "pay bills"];
masterTaskList["Wednesday"] = ["wash dishes", "dentist", "wash dog"];
masterTaskList["Thursday"] = ["wash dishes"];
masterTaskList["Friday"] = ["wash dishes", "clean house"];
masterTaskList["Saturday"] = ["wash dishes", "wash car", "pay rent"];
masterTaskList["Sunday"] = ["mow lawn", "fix chair"];
La syntaxe à point rend le code plus lisible car elle évite d’utiliser plusieurs groupes de crochets.
trace(masterTaskList.Wednesday[1]); // output: dentist
trace(masterTaskList.Sunday[0]);// output: mow lawn
Vous pouvez parcourir en boucle la liste des tâches en utilisant une boucle for..in, mais vous devez utiliser
l’opérateur d’accès au tableau ([]), en lieu et place de la syntaxe à point, pour accéder à la valeur associée à chaque clé.
Etant donné que masterTaskList est un tableau associatif, les éléments ne sont pas nécessairement récupérés dans
l’ordre que vous attendez, comme l’indique l’exemple suivant :
for (var day:String in masterTaskList)
{
trace(day + ": " + masterTaskList[day])
}
/* output:
Sunday: mow lawn,fix chair
Wednesday: wash dishes,dentist,wash dog
Friday: wash dishes,clean house
Thursday: wash dishes
Monday: wash dishes,take out trash
Saturday: wash dishes,wash car,pay rent
Tuesday: wash dishes,pay bills
*/
Clonage de tableaux
Flash Player 9 et les versions ultérieures, Adobe AIR 1.0 et les versions ultérieures
La classe Array ne possède aucune méthode intégrée pour effectuer des copies de tableaux. Vous pouvez créer une
copie simple d’un tableau en appelant la méthode concat() ou slice() sans arguments. Dans une copie simple, si le
tableau d’origine a des éléments qui sont des objets, seules les références aux objets sont copiées (et non les objets). La
copie pointe vers les mêmes objets que l’original. Tout changement effectué sur les objets apparaît dans les deux
tableaux.
Dans une copie en profondeur, les objets se trouvant dans le tableau d’origine sont copiés également de façon à ce que
le nouveau tableau ne pointe pas vers les mêmes objets que le tableau d’origine. La copie en profondeur exige plus
d’une ligne de code, ce qui nécessite généralement la création d’une fonction. Une telle fonction peut être créée comme
fonction d’utilitaire globale ou comme méthode d’une sous-classe Array.
L’exemple suivant définit une fonction appelée clone() qui effectue une copie en profondeur. L’algorithme est issu
d’une technique de programmation Java courante. La fonction crée une copie en profondeur en sérialisant le tableau
en une occurrence de la classe ByteArray puis en relisant le tableau dans un nouveau tableau. Cette fonction accepte
un objet de façon à ce qu’il puisse être utilisé à la fois avec des tableaux indexés et des tableaux associatifs, comme
indiqué dans le code suivant :
GUIDE DU DÉVELOPPEUR D’ACTIONSCRIPT 3.0 44
Utilisation de tableaux
Dernière mise à jour le 27/4/2013
import flash.utils.ByteArray;
function clone(source:Object):*
{
var myBA:ByteArray = new ByteArray();
myBA.writeObject(source);
myBA.position = 0;
return(myBA.readObject());
}
Extension de la classe Array
Flash Player 9 et les versions ultérieures, Adobe AIR 1.0 et les versions ultérieures
La classe Array est l’une des classes de base non finale, c’est-à-dire que vous pouvez créer votre sous-classe d’Array.
Cette section décrit comment créer une sous-classe d’Array et décrit les problèmes pouvant se poser pendant le
processus.
Comme mentionné précédemment, les tableaux dans ActionScript ne sont pas typés, mais vous pouvez créer une sousclasse
d’Array qui accepte des éléments d’un seul type de données. L’exemple fourni dans les sections suivantes définit
une sous-classe Array appelée TypedArray qui limite ses éléments à des valeurs du type de données indiqué dans le
premier paramètre. La classe TypedArray est présentée comme un exemple de la façon dont la classe Array est étendue
et risque de ne pas être adaptée à des fins de production pour différentes raisons. Premièrement, la vérification du type
a lieu lors de l’exécution plutôt que de la compilation. Deuxièmement, lorsqu’une méthode TypedArray rencontre une
incompatibilité, elle est ignorée et aucune exception n’est renvoyée, même si vous pouvez facilement modifier les
méthodes pour renvoyer des exceptions. Troisièmement, la classe ne peut pas empêcher l’utilisation de l’opérateur
d’accès au tableau pour insérer des valeurs de n’importe quel type dans le tableau. Quatrièmement, le style de codage
privilégie la simplicité par rapport à l’optimisation des performances.
Remarque : vous pouvez utiliser la technique décrite ici pour créer un tableau typé. Cependant, utiliser un objet Vector
constitue une meilleure démarche. Une occurrence de Vector est un véritable tableau typé. Elle dépasse la classe Array ou
toute sous-classe par ses performances et ses améliorations. Une illustration de la création d’une sous-classe Array
constitue l’objet de cette description.
Déclaration de la sous-classe
Utilisez le mot-clé extends pour indiquer qu’une classe est une sous-classe d’Array. Une sous-classe d’Array doit
utiliser l’attribut dynamic, comme la classe Array. Autrement, votre sous-classe ne fonctionne pas correctement.
Le code suivant représente la définition de la classe TypedArray, qui comporte une constante contenant le type de
données, une méthode de constructeur et les quatre méthodes permettant d’ajouter des éléments au tableau. Le code
pour chaque méthode est omis dans cet exemple, mais il est décrit de façon détaillée dans les sections qui suivent :
GUIDE DU DÉVELOPPEUR D’ACTIONSCRIPT 3.0 45
Utilisation de tableaux
Dernière mise à jour le 27/4/2013
public dynamic class TypedArray extends Array
{
private const dataType:Class;
public function TypedArray(...args) {}
AS3 override function concat(...args):Array {}
AS3 override function push(...args):uint {}
AS3 override function splice(...args) {}
AS3 override function unshift(...args):uint {}
}
Les quatre méthodes de remplacement utilisent l’espace de nom AS3 au lieu de l’attribut public car cet exemple
suppose que l’option -as3 du compilateur est définie sur true et l’option -es du compilateur sur false. Il s’agit des
paramètres par défaut pour Adobe Flash Builder et AdobeFlashProfessional.
Si vous êtes un développeur expérimenté et que vous préférez utiliser l’héritage de prototype, vous pouvez apporter
deux changements mineurs à la classe TypedArray afin qu’elle compile avec l’option -es du compilateur définie sur
true. Commencez par supprimer toutes les occurrences de l’attribut override et remplacez l’espace de nom AS3 par
l’attribut public. Remplacez ensuite Array.prototype pour les quatre occurrences de super.
Constructeur TypedArray
Le constructeur de sous-classe pose un défi intéressant car il doit accepter une liste d’arguments de longueur arbitraire.
Il s’agit de savoir comment transférer les arguments au superconstructeur pour créer le tableau. Si vous transmettez la
liste des arguments sous forme d’un tableau, le superconstructeur le considère comme un seul argument de type Array
et le tableau résultant a toujours une longueur d’1 élément. Le transfert de listes d’arguments se fait généralement au
moyen de la méthode Function.apply(), qui prend un tableau d’arguments comme second paramètre mais le
convertit en une liste d’arguments lors de l’exécution de la fonction. Malheureusement, vous ne pouvez pas utiliser la
méthode Function.apply() avec des constructeurs.
La seule solution est de recréer la logique du constructeur Array dans le constructeur TypedArray. Le code suivant
indique l’algorithme utilisé dans le constructeur de classe Array, que vous pouvez réutiliser dans votre constructeur de
sous-classe Array :
GUIDE DU DÉVELOPPEUR D’ACTIONSCRIPT 3.0 46
Utilisation de tableaux
Dernière mise à jour le 27/4/2013
public dynamic class Array
{
public function Array(...args)
{
var n:uint = args.length
if (n == 1 && (args[0] is Number))
{
var dlen:Number = args[0];
var ulen:uint = dlen;
if (ulen != dlen)
{
throw new RangeError("Array index is not a 32-bit unsigned integer ("+dlen+")");
}
length = ulen;
}
else
{
length = n;
for (var i:int=0; i < n; i++)
{
this[i] = args[i]
}
}
}
}
Le constructeur TypedArray partage une grande partie du code du constructeur Array, avec seulement quatre
changements apportés au code. Premièrement, la liste des paramètres comprend un nouveau paramètre obligatoire de
type Class qui permet d’indiquer le type de données du tableau. Deuxièmement, le type de données transmis au
constructeur est affecté à la variable dataType. Troisièmement, dans l’instruction else, la valeur de la propriété
length est affectée après la boucle for de façon à ce que length comprenne uniquement des arguments du type
correct. Quatrièmement, le corps de la boucle for utilise la version de remplacement de la méthode push() de façon
à ce que seuls des arguments du type de données correct soient ajoutés au tableau. L’exemple suivant présente la
fonction constructeur TypedArray :
GUIDE DU DÉVELOPPEUR D’ACTIONSCRIPT 3.0 47
Utilisation de tableaux
Dernière mise à jour le 27/4/2013
public dynamic class TypedArray extends Array
{
private var dataType:Class;
public function TypedArray(typeParam:Class, ...args)
{
dataType = typeParam;
var n:uint = args.length
if (n == 1 && (args[0] is Number))
{
var dlen:Number = args[0];
var ulen:uint = dlen
if (ulen != dlen)
{
throw new RangeError("Array index is not a 32-bit unsigned integer ("+dlen+")")
}
length = ulen;
}
else
{
for (var i:int=0; i < n; i++)
{
// type check done in push()
this.push(args[i])
}
length = this.length;
}
}
}
Méthodes de remplacement TypedArray
La classe TypedArray remplace les quatre méthodes de la classe Array qui permettent d’ajouter des éléments à un
tableau. Dans chaque cas, la méthode de remplacement ajoute une vérification du type qui empêche d’ajouter des
éléments qui ne sont pas du type de données correct. Chaque méthode appelle ensuite sa version de superclasse.
La méthode push() parcourt en boucle la liste des arguments avec une boucle for..in et effectue une vérification du
type sur chaque argument. Les arguments qui ne sont pas de type correct sont supprimés du tableau args avec la
méthode splice(). Une fois que la boucle for..in se termine, le tableau args contient des valeurs de type dataType
uniquement. La version de superclasse de push() est ensuite appelée avec le tableau args mis à jour, comme indiqué
dans le code suivant :
AS3 override function push(...args):uint
{
for (var i:* in args)
{
if (!(args[i] is dataType))
{
args.splice(i,1);
}
}
return (super.push.apply(this, args));
}
GUIDE DU DÉVELOPPEUR D’ACTIONSCRIPT 3.0 48
Utilisation de tableaux
Dernière mise à jour le 27/4/2013
La méthode concat() crée un TypedArray temporaire appelé passArgs pour stocker les arguments soumis à la
vérification de type. Ceci permet de réutiliser le code de vérification de type qui existe dans la méthode push(). Une
boucle for..in effectue une itération sur le tableau args et appelle push() sur chaque argument. Etant donné que
passArgs est typé sous la forme TypedArray, la version TypedArray de push() est exécutée. La méthode concat()
appelle ensuite sa version de superclasse, comme indiqué dans le code suivant :
AS3 override function concat(...args):Array
{
var passArgs:TypedArray = new TypedArray(dataType);
for (var i:* in args)
{
// type check done in push()
passArgs.push(args[i]);
}
return (super.concat.apply(this, passArgs));
}
La méthode splice() prend une liste d’arguments arbitraire, mais les deux premiers arguments se réfèrent toujours
à un numéro d’index et au nombre d’éléments à supprimer. C’est pourquoi la méthode de remplacement splice()
effectue la vérification de type uniquement pour les éléments du tableau args dans les positions d’index 2 ou
supérieures. Il est intéressant de noter que dans le code, il semble y avoir un appel récursif à splice() à l’intérieur de
la boucle for, mais en réalité, ce n’est pas le cas car args est de type Array et non de type TypedArray, ce qui signifie
que l’appel à args.splice() est un appel à la version de superclasse de la méthode. Une fois que la boucle for..in
se termine, le tableau args contient des valeurs du type correct uniquement dans les positions d’index 2 ou
supérieures, et splice() appelle sa version de superclasse, comme indiqué dans le code suivant :
AS3 override function splice(...args):*
{
if (args.length > 2)
{
for (var i:int=2; i< args.length; i++)
{
if (!(args[i] is dataType))
{
args.splice(i,1);
}
}
}
return (super.splice.apply(this, args));
}
La méthode unshift(), qui ajoute des éléments au début d’un tableau, accepte une liste d’arguments arbitraire
également. La méthode de remplacement unshift() utilise un algorithme très semblable à celui utilisé par la méthode
push(), comme indiqué dans le code suivant :
AS3 override function unshift(...args):uint
{
for (var i:* in args)
{
if (!(args[i] is dataType))
{
args.splice(i,1);
}
}
return (super.unshift.apply(this, args));
}
}
GUIDE DU DÉVELOPPEUR D’ACTIONSCRIPT 3.0 49
Utilisation de tableaux
Dernière mise à jour le 27/4/2013
Exemple de tableau : PlayList
Flash Player 9 et les versions ultérieures, Adobe AIR 1.0 et les versions ultérieures
L’exemple PlayList présente les techniques d’utilisation des tableaux, dans le contexte d’une application de lecture
musicale qui gère une liste de chansons. Ces techniques sont les suivantes :
• Création d’un tableau indexé
• Ajout d’éléments à un tableau indexé
• Tri d’un tableau d’objets en fonction de différentes propriétés, à l’aide d’options de tri différentes
• Conversion d’un tableau en une chaîne séparée par des caractères
Pour obtenir les fichiers d’application de cet exemple, voir
www.adobe.com/go/learn_programmingAS3samples_flash_fr. Les fichiers d’application PlayList se trouvent dans le
dossier Samples/PlayList. L’application se compose des fichiers suivants :
Présentation de la classe PlayList
Flash Player 9 et les versions ultérieures, Adobe AIR 1.0 et les versions ultérieures
La classe PlayList gère un ensemble d’objets Song. Elle a des méthodes publiques qui permettent d’ajouter une chanson
à la liste de lecture (la méthode addSong()) et de trier les chansons dans la liste (la méthode sortList()). En outre,
la classe comprend une propriété d’accesseur en lecture seule, songList, qui permet d’accéder au groupe de chansons
dans la liste de lecture. En interne, la classe PlayList conserve une trace de ses chansons à l’aide d’une variable Array
privée :
public class PlayList
{
private var _songs:Array;
private var _currentSort:SortProperty = null;
private var _needToSort:Boolean = false;
...
}
En plus de la variable Array _songs utilisée par la classe PlayList pour conserver une trace de sa liste de chansons, deux
autres variables privées vérifient si la liste doit être triée (_needToSort) et contrôlent la propriété sur laquelle est basé
le tri de la liste de chansons à un moment donné (_currentSort).
Fichier Description
PlayList.mxml
ou
PlayList.fla
Fichier d’application principal dans Flash (FLA) ou Flex (MXML).
com/example/programmingas3/playlist/PlayList.as Classe représentant une liste de morceaux. Elle utilise un tableau
pour enregistrer la liste et gère le tri des éléments de la liste.
com/example/programmingas3/playlist/Song.as Objet de valeur représentant des informations sur une seule
chanson. Les éléments gérés par la classe PlayList sont des
occurrences Song.
com/example/programmingas3/playlist/SortProperty.as Pseudo-énumération dont les valeurs disponibles représentent
les propriétés de la classe Song en fonction desquelles une liste
d’objets Song peut être triée.
GUIDE DU DÉVELOPPEUR D’ACTIONSCRIPT 3.0 50
Utilisation de tableaux
Dernière mise à jour le 27/4/2013
Comme avec tous les objets, lorsque vous avez déclaré une occurrence de Array, vous n’avez effectué que la moitié du
travail consistant à créer un tableau. Avant d’accéder à des méthodes ou à des propriétés d’une occurrence de Array,
cette dernière doit être instanciée dans le constructeur de la classe PlayList.
public function PlayList()
{
this._songs = new Array();
// Set the initial sorting.
this.sortList(SortProperty.TITLE);
}
La première ligne du constructeur instancie la variable _songs pour qu’elle puisse être utilisée. En outre, la méthode
sortList() est appelée pour définir la propriété de tri initiale.
Ajout d’une chanson à la liste
Flash Player 9 et les versions ultérieures, Adobe AIR 1.0 et les versions ultérieures
Lorsqu’un utilisateur ajoute une nouvelle chanson dans l’application, le code dans le formulaire de saisie des données
appelle la méthode addSong() de la classe PlayList.
/**
* Adds a song to the playlist.
*/
public function addSong(song:Song):void
{
this._songs.push(song);
this._needToSort = true;
}
A l’intérieur de addSong(), la méthode push() du tableau _songs est appelée. Ceci permet d’ajouter l’objet Song
transmis à addSong() en tant que nouvel élément dans ce tableau. Avec la méthode push() , le nouvel élément est
ajouté à la fin du tableau, indépendamment du tri appliqué précédemment. Ceci signifie qu’une fois que la méthode
push() a été appelée, la liste des chansons risque de ne plus être triée correctement. Par conséquent, la variable
_needToSort est définie sur true. Théoriquement, la méthode sortList() pourrait être appelée immédiatement
afin d’éviter de vérifier si la liste est triée ou non à un moment donné. En pratique, cependant, la liste des chansons n’a
pas besoin d’être triée jusqu’au moment précédant immédiatement sa récupération. En retardant l’opération de tri,
l’application n’effectue pas de tri inutile si, par exemple, plusieurs chansons sont ajoutées à la liste avant sa
récupération.
Tri de la liste de chansons
Flash Player 9 et les versions ultérieures, Adobe AIR 1.0 et les versions ultérieures
Etant donné que les occurrences Song gérées par la liste de lecture sont des objets complexes, les utilisateurs de
l’application peuvent trier la liste de lecture en fonction de différentes propriétés (titre de la chanson ou année de
publication, par exemple). Dans l’application PlayList, le tri de la liste des chansons s’effectue en trois étapes :
identification de la propriété sur laquelle est basé le tri de la liste, indication des options de tri à utiliser lors du tri en
fonction de cette propriété et exécution du tri.
GUIDE DU DÉVELOPPEUR D’ACTIONSCRIPT 3.0 51
Utilisation de tableaux
Dernière mise à jour le 27/4/2013
Propriétés de tri
Un objet Song conserve la trace de plusieurs propriétés, notamment le titre de la chanson, l’artiste, l’année de
publication, le nom du fichier et un ensemble de genres sélectionné par l’utilisateur auquel la chanson appartient.
Seules les trois premières propriétés sont pratiques pour le tri. Dans un souci de commodité pour les développeurs,
l’exemple inclut la classe SortProperty, qui agit comme une énumération avec des valeurs représentant les propriétés
disponibles pour le tri.
public static const TITLE:SortProperty = new SortProperty("title");
public static const ARTIST:SortProperty = new SortProperty("artist");
public static const YEAR:SortProperty = new SortProperty("year");
La classe SortProperty contient trois classes, TITLE, ARTIST et YEAR. Chacune d’elles stocke une chaîne comportant le
nom de la propriété de la classe Song pouvant être utilisée pour le tri. Chaque fois qu’une propriété de tri est indiquée
dans le reste du code, le membre de l’énumération est utilisé. Par exemple, dans le constructeur PlayList, la liste est
triée initialement en appelant la méthode sortList(), comme suit :
// Set the initial sorting.
this.sortList(SortProperty.TITLE);
Etant donné que la propriété de tri est spécifiée sous la forme SortProperty.TITLE, les chansons sont triées par titre.
Tri par propriété et définition d’options de tri
La classe PlayList trie la liste de chansons dans la méthode sortList(), comme suit :
/**
* Sorts the list of songs according to the specified property.
*/
public function sortList(sortProperty:SortProperty):void
{
...
var sortOptions:uint;
switch (sortProperty)
{
case SortProperty.TITLE:
sortOptions = Array.CASEINSENSITIVE;
break;
case SortProperty.ARTIST:
sortOptions = Array.CASEINSENSITIVE;
break;
case SortProperty.YEAR:
sortOptions = Array.NUMERIC;
break;
}
// Perform the actual sorting of the data.
this._songs.sortOn(sortProperty.propertyName, sortOptions);
// Save the current sort property.
this._currentSort = sortProperty;
// Record that the list is sorted.
this._needToSort = false;
}
GUIDE DU DÉVELOPPEUR D’ACTIONSCRIPT 3.0 52
Utilisation de tableaux
Dernière mise à jour le 27/4/2013
Lors du tri par titre ou par artiste, il est préférable d’effectuer un tri par ordre alphabétique. En revanche, lors du tri
par année, il est plus logique d’effectuer un tri numérique. L’instruction switch sert à définir l’option de tri appropriée,
stockée dans la variable sortOptions, en fonction de la valeur indiquée dans le paramètre sortProperty. Ici encore,
les membres de l’énumération nommés sont utilisés pour faire la différence entre les propriétés, plutôt que les valeurs
absolues.
Une fois que vous avez déterminé la propriété et les options de tri, le tableau _songs est trié en appelant sa méthode
sortOn(), en transmettant ces deux valeurs comme paramètres. La propriété de tri est enregistrée et la liste des
chansons est triée.
Combinaison d’éléments de tableau en une chaîne séparée par des caractères
Flash Player 9 et les versions ultérieures, Adobe AIR 1.0 et les versions ultérieures
Cet exemple utilise non seulement un tableau pour conserver la liste des chansons dans la classe PlayList mais
également des tableaux dans la classe Song pour gérer la liste des genres auxquels une chanson appartient. Considérons
ce fragment de code issu de la définition de la classe Song :
private var _genres:String;
public function Song(title:String, artist:String, year:uint, filename:String, genres:Array)
{
...
// Genres are passed in as an array
// but stored as a semicolon-separated string.
this._genres = genres.join(";");
}
Lors de la création d’une occurrence de Song, le paramètre genres utilisé pour spécifier le genre (ou les genres) auquel
la chanson appartient est défini comme occurrence d’Array. Ainsi, vous pouvez regrouper plusieurs genres en une
seule variable qui peut être transmise au constructeur. Néanmoins, la classe Song conserve, en interne, les genres dans
la variable privée _genres sous la forme d’une occurrence de String séparée par des points-virgules. Le paramètre
Array est converti en une chaîne séparée par des points-virgules en appelant sa méthode join() avec la valeur de
chaîne littérale ";" comme séparateur spécifié.
De la même façon, les accesseurs genres permettent de définir ou de récupérer des genres sous la forme d’un tableau :
public function get genres():Array
{
// Genres are stored as a semicolon-separated String,
// so they need to be transformed into an Array to pass them back out.
return this._genres.split(";");
}
public function set genres(value:Array):void
{
// Genres are passed in as an array,
// but stored as a semicolon-separated string.
this._genres = value.join(";");
}
L’accesseur genresset se comporte exactement comme le constructeur ; il accepte un tableau et appelle la méthode
join() pour la convertir en une chaîne séparée par des points-virgules. L’accesseur get effectue l’opération inverse :
la méthode split() de la variable _genres est appelée. Elle divise la chaîne en un tableau de valeurs utilisant le
séparateur spécifié (la valeur de chaîne littérale ";" comme précédemment).
53
Dernière mise à jour le 27/4/2013
Chapitre 4 : Gestion des erreurs
Flash Player 9 et les versions ultérieures, Adobe AIR 1.0 et les versions ultérieures
« Gérer » une erreur signifie que vous intégrez des fonctions logiques à l’application pour réagir à une erreur ou la
corriger. Les erreurs sont générées lors de la compilation d’une application ou lors de l’exécution d’une application
compilée. Lorsque l’application gère les erreurs, il se produit une réaction à l’erreur. Il arrive en revanche qu’une erreur
soit ignorée (auquel cas le processus à l’origine de l’erreur échoue silencieusement). La gestion des erreurs, lorsqu’elle
est utilisée correctement, protège votre application et ses utilisateurs contre un comportement inattendu.
Cependant, la gestion des erreurs est une catégorie large qui englobe la réponse à de nombreux types d’erreurs générées
lors de la phase de compilation ou lors de l’exécution d’une application. Nous allons passer en revue la gestion des
erreurs d’exécution (renvoyées lors de l’exécution d’une application), les différents types d’erreurs générés et les
avantages du système de gestion des erreurs d’ActionScript 3.0.
Principes de base de la gestion des erreurs
Flash Player 9 et les versions ultérieures, Adobe AIR 1.0 et les versions ultérieures
Une erreur d’exécution est une erreur qui se produit dans votre code ActionScript et qui empêche le contenu
ActionScript de s’exécuter comme prévu. Pour assurer l’exécution correcte du code ActionScript du point de vue de
l’utilisateur, écrivez le code dans l’application qui gère l’erreur (la corrige, la contourne ou informe au moins
l’utilisateur qu’elle a eu lieu). Ce processus est appelé gestion des erreurs.
La gestion des erreurs est une catégorie large qui englobe la réponse à de nombreux types d’erreurs générées lors de la
phase de compilation ou lors de l’exécution d’une application. Les erreurs qui se produisent lors de la compilation sont
souvent plus faciles à identifier. Corrigez-les pour terminer la création d’un fichier SWF.
Les erreurs d’exécution peuvent être difficiles à détecter car elles se produisent lorsque le code erroné est exécuté. Si
un segment de votre programme contient plusieurs branches de code, telle une instruction if..then..else, testez
toutes les conditions possibles, avec toutes les valeurs en entrée susceptibles d’être utilisées par un utilisateur réel, pour
confirmer que le code ne contient pas d’erreur.
Les erreurs d’exécution peuvent être divisées en deux catégories : les erreurs de programme sont des erreurs dans votre
code ActionScript (spécification du type de données incorrect pour un paramètre de méthode, par exemple) ; les
erreurs logiques sont des erreurs dans la logique (le contrôle des données et la manipulation des valeurs) de votre
programme (utilisation de la formule incorrecte pour calculer les taux d’intérêt dans une application bancaire, par
exemple). Encore une fois, ces deux types d’erreurs peuvent souvent être détectés et corrigés à l’avance en testant
attentivement votre application.
Il serait idéal d’identifier et de supprimer toutes les erreurs de votre application avant de la mettre à la disposition des
utilisateurs finaux. Cependant, toutes les erreurs ne peuvent pas être prévues ni évitées. Supposons, par exemple, que
l’application ActionScript charge des informations depuis un site Web particulier sur lequel vous n’avez aucun
contrôle. Si ce site Web n’est pas disponible, la partie de l’application qui dépend de ces données externes ne se
comporte pas correctement. L’aspect primordial de la gestion des erreurs consiste à anticiper ces cas de figure et à les
traiter judicieusement. Il est préférable que l’exécution de l’application ne soit pas interrompue ou, tout du moins,
qu’un message indique à l’utilisateur pourquoi elle ne fonctionne pas.
GUIDE DU DÉVELOPPEUR D’ACTIONSCRIPT 3.0 54
Gestion des erreurs
Dernière mise à jour le 27/4/2013
Les erreurs d’exécution sont représentées de deux façons dans ActionScript :
• Classes d’erreur : de nombreuses erreurs sont associées à une classe Error. Lorsqu’une erreur se produit, le moteur
d’exécution Flash (Flash Player ou Adobe AIR, par exemple) crée une occurrence de la classe Error spécifique
associée à cette erreur. Votre code peut utiliser les informations contenues dans cet objet erreur pour donner une
réponse appropriée à l’erreur.
• Evénements d’erreur : il arrive qu’une erreur se produise lorsque le moteur d’exécution Flash déclencherait
normalement un événement. Si tel est le cas, un événement d’erreur est alors déclenché. Chaque événement
d’erreur étant associé à une classe, le moteur d’exécution de Flash transmet une occurrence de cette classe aux
méthodes enregistrées auprès de l’événement d’erreur.
Pour déterminer si une méthode donnée peut déclencher une erreur ou un événement d’erreur, voir la rubrique
correspondante dans le manuel Guide de référence ActionScript 3.0 pour la plate-forme Adobe Flash.
Concepts importants et terminologie
La liste de référence suivante contient des termes importants relatifs à la programmation de routines de gestion des
erreurs :
Asynchrone Commande de programme telle qu’un appel de méthode qui ne fournit pas un résultat immédiat, mais
qui produit un résultat (ou une erreur) sous la forme d’un événement.
Capture Lorsqu’une exception (une erreur d’exécution) se produit et que votre code la découvre, ce dernier la capture.
Lorsqu’une exception est capturée, le moteur d’exécution Flash cesse d’indiquer à un autre code ActionScript que
l’exception s’est produite.
Version de débogage Version spéciale du moteur d’exécution Flash, telle que la version de débogage de Flash Player
ou l’application de débogage du lanceur AIR (ADL), qui contient le code requis pour avertir les utilisateurs de la
présence d’erreurs d’exécution. Dans la version standard de Flash Player ou Adobe AIR (celle que possèdent la plupart
des utilisateurs), les erreurs qui ne sont pas gérées par votre code ActionScript sont ignorées. Dans les versions de
débogage (intégrées à Adobe Flash CS4 Professional et Adobe Flash Builder), un message d’avertissement apparaît
lorsqu’une erreur non gérée se produit.
Exception Erreur qui se produit lorsqu’une application est en cours d’exécution et que le moteur d’exécution Flash ne
peut pas la résoudre seul.
Renvoi Lorsque votre code capture une exception, le moteur d’exécution Flash cesse de signaler l’exception à d’autres
objets. S’il est important pour d’autres objets que l’exception leur soit signalée, le code doit renvoyer l’exception pour
recommencer le processus de notification.
Synchrone Commande de programme (un appel de méthode, par exemple) qui fournit un résultat immédiat (ou qui
renvoie immédiatement une erreur), ce qui signifie que la réponse peut être utilisée dans le même bloc de code.
Envoi Le fait de signaler au moteur d’exécution Flash (et par conséquent, à d’autres objets et au code ActionScript)
qu’une erreur s’est produite s’appelle envoyer une erreur.
GUIDE DU DÉVELOPPEUR D’ACTIONSCRIPT 3.0 55
Gestion des erreurs
Dernière mise à jour le 27/4/2013
Types d’erreurs
Flash Player 9 et les versions ultérieures, Adobe AIR 1.0 et les versions ultérieures
Lorsque vous développez et exécutez des applications, vous rencontrez différents types d’erreurs et de termes. La liste
suivante présente les principaux termes et types d’erreurs :
• Erreurs de compilation : générées par le compilateur ActionScript lors de la compilation du code. Les erreurs de
compilation ont lieu lorsque des problèmes de syntaxe dans votre code empêchent de créer votre application.
• Erreurs d’exécution : générées lorsque vous exécutez votre application après l’avoir compilée. Les erreurs
d’exécution représentent des erreurs qui se produisent lors de la lecture d’un fichier SWF dans un moteur
d’exécution Flash tel qu’Adobe Flash Player ou Adobe AIR. Dans la plupart des cas, il est possible de gérer les
erreurs d’exécution au moment où elles se produisent, de les signaler à l’utilisateur et de prendre les mesures
requises pour poursuivre l’exécution de l’application. S’il s’agit d’une erreur grave (impossibilité de se connecter à
un site Web distant ou de charger des données), vous pouvez utiliser la gestion des erreurs pour mettre fin à
l’application en douceur.
• Erreurs synchrones : erreurs d’exécution générées lorsqu’une fonction est appelée. Par exemple, lorsque vous tentez
d’utiliser une méthode spécifique et que l’argument que vous lui transmettez n’est pas valide, le moteur d’exécution
de Flash renvoie une exception. La plupart des erreurs se produisent en mode synchrone (au moment de l’exécution
d’une instruction) et le flux de contrôle passe immédiatement à l’instruction catch la plus appropriée.
Par exemple, l’extrait de code suivant renvoie une erreur d’exécution, car la méthode browse() n’est pas appelée
avant que le programme ne tente de charger un fichier :
var fileRef:FileReference = new FileReference();
try
{
fileRef.upload(new URLRequest("http://www.yourdomain.com/fileupload.cfm"));
}
catch (error:IllegalOperationError)
{
trace(error);
// Error #2037: Functions called in incorrect sequence, or earlier
// call was unsuccessful.
}
Dans ce cas, une erreur d’exécution est renvoyée de façon synchrone car Flash Player a déterminé que la méthode
browse() n’a pas été appelée avant la tentative de chargement du fichier.
Pour obtenir des informations détaillées relatives à la gestion des erreurs synchrones, voir « Gestion des erreurs
synchrones dans une application » à la page 59.
• Les erreursasynchrones sont des erreurs du moteur d’exécution qui se produisent hors du flux normal du
programme. Elles génèrent des événements, interceptés par des écouteurs d’événement. Une opération asynchrone
est une opération dans laquelle une fonction lance une opération mais n’attend pas qu’elle se termine. Vous pouvez
créer un écouteur d’événements d’erreur pour attendre que l’application ou l’utilisateur tente une opération. Si cette
dernière échoue, vous interceptez l’erreur avec un écouteur d’événements et répondez à l’événement d’erreur.
Ensuite, l’écouteur d’événement appelle une fonction de gestionnaire d’événement pour répondre à l’événement
d’erreur avec pertinence. Par exemple, le gestionnaire d’événement peut lancer une boîte de dialogue qui invite
l’utilisateur à résoudre l’erreur.
GUIDE DU DÉVELOPPEUR D’ACTIONSCRIPT 3.0 56
Gestion des erreurs
Dernière mise à jour le 27/4/2013
Reprenez l’exemple d’erreur synchrone lors du chargement d’un fichier présenté précédemment. Si vous réussissez
à appeler la méthode browse() avant de lancer le chargement d’un fichier, Flash Player distribue plusieurs
événements. Par exemple, au démarrage d’un chargement, l’événement open est distribué. A la fin du chargement,
l’événement complete est distribué. Etant donné que la gestion d’événements est asynchrone (c’est-à-dire qu’elle
n’a pas lieu à des moments prédéfinis, connus et spécifiques), faites appel à la méthode addEventListener() pour
détecter ces événements spécifiques, comme l’indique le code suivant :
var fileRef:FileReference = new FileReference();
fileRef.addEventListener(Event.SELECT, selectHandler);
fileRef.addEventListener(Event.OPEN, openHandler);
fileRef.addEventListener(Event.COMPLETE, completeHandler);
fileRef.browse();
function selectHandler(event:Event):void
{
trace("...select...");
var request:URLRequest = new URLRequest("http://www.yourdomain.com/fileupload.cfm");
request.method = URLRequestMethod.POST;
event.target.upload(request);
}
function openHandler(event:Event):void
{
trace("...open...");
}
function completeHandler(event:Event):void
{
trace("...complete...");
}
Pour obtenir des informations détaillées sur la gestion des erreurs asynchrones, voir « Réponse à des événements
et à l’état d’erreur » à la page 65.
• Exceptions non interceptées : renvoyées sans logique correspondante (telle une instruction catch) pour y répondre.
Si votre application renvoie une erreur, et qu’aucune instruction catch ni gestionnaire d’événement approprié
n’est trouvé au niveau actuel ou supérieur pour gérer l’erreur, cette dernière est considérée comme une exception
non interceptée.
Lorsqu’il se produit une erreur non interceptée, le moteur d’exécution distribue un événement uncaughtError.
Cet événement porte également le nom de « gestionnaire d’erreur global ». Il est distribué par l’objet
UncaughtErrorEvents du fichier SWF et est proposé par la propriété LoaderInfo.uncaughtErrorEvents. Si
aucun écouteur n’est enregistré pour l’événement uncaughtError, le moteur d’exécution ignore les erreurs non
interceptées et tente de poursuivre son exécution, dès lors que l’erreur n’interrompt pas le fichier SWF.
Outre la distribution de l’événement uncaughtError, les versions de débogage du moteur d’exécution de Flash
répondent aux erreurs non interceptées en mettant fin au script actif. Elles affichent ensuite les erreurs non
interceptées dans le résultat de l’instruction trace ou écrivent le message d’erreur dans un fichier journal. Si l’objet
exception est une occurrence de la classe Error ou de l’une de ses sous-classes, les informations de trace de la pile
s’affichent également dans le résultat. Pour plus d’informations sur l’utilisation de la version de débogage des
moteurs d’exécution Flash, voir « Utilisation des versions de débogage des moteurs d’exécution Flash » à la page 58.
Remarque : lors du traitement d’un événement uncaughtError, si un événement d’erreur est renvoyé par un
gestionnaire uncaughtError, celui-ci est appelé plusieurs fois. Il se produit alors une boucle infinie d’exceptions. Il est
donc recommandé d’éviter ce type de scénario.
GUIDE DU DÉVELOPPEUR D’ACTIONSCRIPT 3.0 57
Gestion des erreurs
Dernière mise à jour le 27/4/2013
Gestion des erreurs dans ActionScript 3.0
Flash Player 9 et les versions ultérieures, Adobe AIR 1.0 et les versions ultérieures
Etant donné que de nombreuses applications peuvent être exécutées sans créer de logique pour gérer les erreurs, les
développeurs sont tentés de retarder la création de la gestion des erreurs dans leurs applications. Néanmoins, sans
gestion des erreurs, une application risque de s’interrompre ou de poser des problèmes à l’utilisateur si elle ne
fonctionne pas comme prévu. ActionScript 2.0 possède une classe Error qui vous permet de créer une logique dans des
fonctions personnalisées afin de renvoyer une exception avec un message spécifique. Etant donné que la gestion des
erreurs est cruciale pour rendre une application conviviale, ActionScript 3.0 inclut une architecture étendue pour
intercepter les erreurs.
Remarque : bien que le manuel Guide de référence ActionScript 3.0 pour la plate-forme Adobe Flash passe en revue les
exceptions renvoyées par de nombreuses méthodes, il ne contient pas nécessairement toutes les exceptions associées à
chaque méthode. une méthode risque de renvoyer une exception due à une erreur de syntaxe ou d’autres problèmes qui
ne sont pas signalés explicitement dans la description de la méthode, même si cette dernière répertorie certaines exceptions
renvoyées.
Eléments de gestion des erreurs ActionScript 3.0
Flash Player 9 et les versions ultérieures, Adobe AIR 1.0 et les versions ultérieures
ActionScript 3.0 comprend de nombreux outils permettant de gérer les erreurs, notamment :
• Classes Error : ActionScript 3.0 comprend un large éventail de classes Error destinées à multiplier le nombre de
situations susceptibles de produire des objets d’erreur. Chaque classe Error permet aux applications de gérer et de
répondre à des conditions d’erreur spécifiques, qu’elles soient liées à des erreurs système (comme une condition
MemoryError), à des erreurs de codage (comme une condition ArgumentError), à des erreurs de réseau et de
communication (comme une condition URIError), ou d’autres situations. Pour plus d’informations sur chaque
classe, voir « Comparaison des classes Error » à la page 68.
• Moins d’échecs silencieux : dans les versions précédentes de Flash Player, les erreurs étaient générées et signalées
uniquement si vous utilisiez explicitement l’instruction throw. Les méthodes et propriétés ActionScript natives
renvoient des erreurs d’exécution pour le moteur d’exécution de Flash Player 9 et des versions ultérieures de Flash.
Ces erreurs permettent de gérer les exceptions de manière plus efficace au moment où elles se produisent, puis de
réagir à chaque exception.
• Messages d’erreur clairs affichés lors du débogage : Lorsque vous utilisez la version de débogage d’un moteur
d’exécution de Flash, les situations ou le code à l’origine du problème génèrent des messages d’erreur détaillés qui
vous aident à identifier les raisons de l’échec d’un bloc de code particulier. Ces messages optimisent la résolution
des erreurs. Pour plus d’informations, voir « Utilisation des versions de débogage des moteurs d’exécution Flash »
à la page 58.
• Les erreurs précises permettent d’afficher des messages d’erreur clairs pour les utilisateurs. Dans les versions
précédentes de Flash Player, la méthode FileReference.upload() renvoyait la valeur booléenne false en cas
d’échec de l’appel upload(), indiquant l’une des cinq erreurs possibles. Si une erreur se produit lorsque vous
appelez la méthode upload() dans ActionScript 3.0, quatre erreurs spécifiques vous aident à afficher des messages
d’erreur plus précis à l’intention des utilisateurs finaux.
GUIDE DU DÉVELOPPEUR D’ACTIONSCRIPT 3.0 58
Gestion des erreurs
Dernière mise à jour le 27/4/2013
• Gestion des erreurs affinée : des erreurs distinctes sont renvoyées pour de nombreuses situations courantes. Par
exemple, dans ActionScript 2.0, avant qu’un objet FileReference ne soit renseigné, la propriété name possède la
valeur null (par conséquent, avant d’utiliser ou d’afficher la propriété name, vérifiez qu’elle est définie sur une
valeur autre que null). Dans ActionScript 3.0, si vous tentez d’accéder à la propriété name avant qu’elle ne soit
renseignée, Flash Player ou AIR renvoie une erreur IllegalOperationError qui vous indique que la valeur n’a pas été
définie. Vous pouvez utiliser des blocs try..catch..finally pour gérer l’erreur. Pour plus d’informations, voir
« Utilisation des instructions try..catch..finally » à la page 59.
• Aucun problème sérieux de performance : l’utilisation de blocs try..catch..finally pour gérer des erreurs ne
nécessite pas ou peu de ressources supplémentaires par rapport aux versions précédentes d’ActionScript.
• Une classe ErrorEvent qui vous permet de créer des écouteurs pour des événements d’erreurs asynchrones
spécifiques : pour plus d’informations, voir « Réponse à des événements et à l’état d’erreur » à la page 65.
Stratégies de gestion des erreurs
Flash Player 9 et les versions ultérieures, Adobe AIR 1.0 et les versions ultérieures
Tant que l’application ne rencontre pas de condition problématique, vous pouvez continuer à l’exécuter sans créer de
logique de gestion des erreurs dans le code. En revanche, si vous ne gérez pas d’erreurs de façon active et que votre
application rencontre un problème, vos utilisateurs ignoreront toujours la raison de son échec.
Vous pouvez aborder la gestion des erreurs de diverses façons dans votre application. La liste suivante résume les trois
principales options de gestion des erreurs :
• Utilisez les instructions try..catch..finally. Ces instructions interceptent les erreurs synchrones lorsqu’elles
se produisent. Vous pouvez imbriquer vos instructions dans une hiérarchie pour intercepter des exceptions à
différents niveaux d’exécution du code. Pour plus d’informations, voir « Utilisation des instructions
try..catch..finally » à la page 59.
• Créez des objets d’erreur personnalisés. Vous pouvez utiliser la classe Error pour créer des objets d’erreur
personnalisés afin de suivre des opérations spécifiques dans votre application qui ne sont pas couvertes par des
types d’erreur intégrés. Vous pouvez ensuite appliquer des instructions try..catch..finally aux objets d’erreur
personnalisés. Pour plus d’informations, voir « Création de classes d’erreur personnalisées » à la page 64.
• Ecrivez des gestionnaires et des écouteurs d’événement pour répondre à des événements d’erreur. Cette stratégie
permet de créer des gestionnaires d’erreurs globaux destinés à gérer des événements similaires sans dupliquer un
volume élevé de code dans les blocs try..catch..finally. Il est également plus probable que vous interceptiez
des erreurs asynchrones à l’aide de cette approche. Pour plus d’informations, voir « Réponse à des événements et à
l’état d’erreur » à la page 65.
Utilisation des versions de débogage des moteurs
d’exécution Flash
Flash Player 9 et les versions ultérieures, Adobe AIR 1.0 et les versions ultérieures
Adobe propose aux développeurs des éditions spéciales des moteurs d’exécution Flash, destinées à les aider à exécuter
des opérations de débogage. Vous obtenez une copie de la version de débogage de Flash Player lorsque vous installez
Adobe Flash Professional ou Adobe Flash Builder. Vous disposez également d’un utilitaire de débogage des
applications Adobe AIR, appelé ADL, lorsque vous installez l’un de ces outils ou dans le cadre de l’installation du SDK
d’Adobe AIR.
GUIDE DU DÉVELOPPEUR D’ACTIONSCRIPT 3.0 59
Gestion des erreurs
Dernière mise à jour le 27/4/2013
Il existe une grande différence dans la façon dont les versions de débogage et les versions de Flash Player et Adobe AIR
mises sur le marché signalent les erreurs. Les versions de débogage indiquent le type d’erreur (Error, IOError ou
EOFError générique), le numéro de l’erreur et un message d’erreur sous une forme lisible par une personne. Les
versions mises sur le marché indiquent uniquement le type d’erreur et son numéro. Considérons par exemple le code
qui suit :
try
{
tf.text = myByteArray.readBoolean();
}
catch (error:EOFError)
{
tf.text = error.toString();
}
Si la méthode readBoolean() renvoie une erreur EOFError dans la version de débogage de Flash Player, le message
suivant s’affiche dans le champ de texte tf : « EOFError: Erreur #2030: Fin de fichier détectée ».
Dans une version commerciale de Flash Player ou d’Adobe AIR, le même code afficherait le texte suivant : « EOFError:
Erreur #2030 ».
Remarque : étant donné que les lecteurs de débogage diffusent l’événement « allComplete », évitez de créer des
événements personnalisés portant le nom « allComplete ». Vous risquez sinon de rencontrer un comportement
imprévisible lors du débogage.
Ce type de version ne comprend pas de chaîne de message d’erreur, afin de réduire au minimum la taille et les
ressources requises. Vous pouvez consulter le numéro d’erreur dans la documentation (annexes du manuel Guide de
référence ActionScript 3.0 pour la plate-forme Adobe Flash) pour l’associer à un message d’erreur. Vous pouvez
également reproduire l’erreur dans les versions de débogage de Flash Player et AIR pour visualiser le message entier.
Gestion des erreurs synchrones dans une application
Flash Player 9 et les versions ultérieures, Adobe AIR 1.0 et les versions ultérieures
La gestion des erreurs la plus courante est la logique de gestion des erreurs synchrones, qui consiste à insérer des
instructions dans votre code pour intercepter les erreurs synchrones lors de l’exécution d’une application. Ce type de
gestion des erreurs permet à votre application de repérer des erreurs d’exécution et de les résoudre lorsque des
fonctions échouent. La logique d’interception d’une erreur synchrone fait appel aux instructions
try..catch..finally, qui tentent littéralement une opération, interceptent toute réponse à l’erreur émanant du
moteur d’exécution Flash, puis exécutent une autre opération pour gérer l’opération qui a échoué.
Utilisation des instructions try..catch..finally
Flash Player 9 et les versions ultérieures, Adobe AIR 1.0 et les versions ultérieures
Lorsque vous manipulez des erreurs d’exécution synchrones, utilisez les instructions try..catch..finally pour
intercepter les erreurs. Lorsqu’une erreur d’exécution se produit, le moteur d’exécution Flash renvoie une exception,
ce qui signifie qu’il suspend l’exécution normale et crée un objet spécial de type Error. L’objet Error est ensuite renvoyé
au premier bloc catch disponible.
GUIDE DU DÉVELOPPEUR D’ACTIONSCRIPT 3.0 60
Gestion des erreurs
Dernière mise à jour le 27/4/2013
L’instruction try regroupe les instructions pouvant créer des erreurs. Vous utilisez toujours l’instruction catch avec
une instruction try. Si une erreur est détectée dans l’une des instructions du bloc try, les instructions catch associées
à cette instruction try sont exécutées.
L’instruction finally regroupe les instructions exécutées, qu’une erreur se produise ou non dans le bloc try. S’il ne
se produit pas d’erreur, les instructions du bloc finally sont exécutées au terme de l’exécution des instructions du
bloc try. S’il se produit une erreur, l’instruction catch appropriée est exécutée en premier lieu, suivie des instructions
du bloc finally.
Le code suivant illustre la syntaxe d’utilisation des instructions try..catch..finally :
try
{
// some code that could throw an error
}
catch (err:Error)
{
// code to react to the error
}
finally
{
// Code that runs whether an error was thrown. This code can clean
// up after the error, or take steps to keep the application running.
}
Chaque instruction catch identifie un type d’exception spécifique qu’elle gère. L’instruction catch peut spécifier
uniquement des classes d’erreur qui sont des sous-classes de la classe Error. Chaque instruction catch est vérifiée dans
l’ordre. Seule la première instruction catch qui correspond au type d’erreur renvoyé est exécutée. En d’autres termes,
si vous vérifiez d’abord la classe Error de niveau supérieur, puis une sous-classe de la classe Error, seule la classe Error
de niveau supérieur est prise en compte. Le code suivant illustre ce point :
try
{
throw new ArgumentError("I am an ArgumentError");
}
catch (error:Error)
{
trace(" " + error.message);
}
catch (error:ArgumentError)
{
trace(" " + error.message);
}
Le code précédent affiche le résultat suivant :
I am an ArgumentError
Pour intercepter correctement l’erreur ArgumentError, assurez-vous que les types d’erreur les plus spécifiques sont
répertoriés en premier, suivis des types d’erreur plus génériques, comme l’indique le code suivant :
GUIDE DU DÉVELOPPEUR D’ACTIONSCRIPT 3.0 61
Gestion des erreurs
Dernière mise à jour le 27/4/2013
try
{
throw new ArgumentError("I am an ArgumentError");
}
catch (error:ArgumentError)
{
trace(" " + error.message);
}
catch (error:Error)
{
trace(" " + error.message);
}
Plusieurs méthodes et propriétés de l’API d’ActionScript renvoient des erreurs d’exécution si elles en rencontrent lors
de leur exécution. Par exemple, la méthode close() de la classe Sound renvoie une erreur IOError si la méthode ne
parvient pas à fermer le flux audio, comme indiqué dans le code suivant :
var mySound:Sound = new Sound();
try
{
mySound.close();
}
catch (error:IOError)
{
// Error #2029: This URLStream object does not have an open stream.
}
Au fur et à mesure que vous vous familiariserez avec le manuel Guide de référence ActionScript 3.0 pour la plate-forme
Adobe Flash, vous identifierez les méthodes qui renvoient des exceptions, comme indiqué dans la description de
chaque méthode.
Instruction throw
Flash Player 9 et les versions ultérieures, Adobe AIR 1.0 et les versions ultérieures
Les moteurs d’exécution Flash renvoient des exceptions s’ils rencontrent des erreurs lors de l’exécution de votre
application. En outre, vous pouvez renvoyer des exceptions de façon explicite à l’aide de l’instruction throw. Si tel est
le cas, Adobe vous conseille de renvoyer des occurrences de la classe Error ou de ses sous-classes. Le code suivant
illustre une instruction throw qui renvoie une occurrence de la classe Error, MyErr, et appelle une fonction,
myFunction() en réponse au renvoi de l’erreur :
GUIDE DU DÉVELOPPEUR D’ACTIONSCRIPT 3.0 62
Gestion des erreurs
Dernière mise à jour le 27/4/2013
var MyError:Error = new Error("Encountered an error with the numUsers value", 99);
var numUsers:uint = 0;
try
{
if (numUsers == 0)
{
trace("numUsers equals 0");
}
}
catch (error:uint)
{
throw MyError; // Catch unsigned integer errors.
}
catch (error:int)
{
throw MyError; // Catch integer errors.
}
catch (error:Number)
{
throw MyError; // Catch number errors.
}
catch (error:*)
{
throw MyError; // Catch any other error.
}
finally
{
myFunction(); // Perform any necessary cleanup here.
}
Les instructions catch sont classées de façon à ce que les types de données les plus spécifiques apparaissent en premier.
Si l’instruction catch associée au type de données Number est répertoriée en premier, ni l’instruction catch associée
au type de données uint, ni l’instruction catch associée au type de données int n’est exécutée.
Remarque : dans le langage de programmation Java, chaque fonction qui peut renvoyer une exception doit le déclarer en
répertoriant les classes d’exception qu’elle peut renvoyer dans une clause throws associée à la déclaration de la fonction.
ActionScript ne requiert pas que vous déclariez les exceptions renvoyées par une fonction.
Affichage d’un message d’erreur simple
Flash Player 9 et les versions ultérieures, Adobe AIR 1.0 et les versions ultérieures
L’un des avantages majeurs du nouveau modèle d’événement d’erreur et d’exception consiste à permettre d’informer
les utilisateurs du moment où une action échoue et de la raison de cet échec. Votre rôle consiste à écrire le code pour
afficher le message et à offrir des options en réponse.
Le code suivant illustre une instruction try..catch simple permettant d’afficher l’erreur dans un champ de texte :
GUIDE DU DÉVELOPPEUR D’ACTIONSCRIPT 3.0 63
Gestion des erreurs
Dernière mise à jour le 27/4/2013
package
{
import flash.display.Sprite;
import flash.text.TextField;
public class SimpleError extends Sprite
{
public var employee:XML =
12341-234;
public function SimpleError()
{
try
{
if (employee.costCenter.length() != 1)
{
throw new Error("Error, employee must have exactly one cost center assigned.");
}
}
catch (error:Error)
{
var errorMessage:TextField = new TextField();
errorMessage.autoSize = TextFieldAutoSize.LEFT;
errorMessage.textColor = 0xFF0000;
errorMessage.text = error.message;
addChild(errorMessage);
}
}
}
}
En utilisant un plus grand nombre de classes d’erreur et d’erreurs de compilateur intégrées, ActionScript 3.0 fournit
de plus amples informations sur les raisons de l’échec d’une action que les versions précédentes. Ces informations
permettent de créer des applications plus stables qui gèrent mieux les erreurs.
Renvoi des erreurs
Flash Player 9 et les versions ultérieures, Adobe AIR 1.0 et les versions ultérieures
Lorsque vous créez une application, vous êtes parfois amené à renvoyer une erreur si vous ne parvenez pas à la gérer
correctement. Par exemple, le code suivant illustre un bloc try..catch imbriqué, qui renvoie une erreur
ApplicationError personnalisée si le bloc catch imbriqué n’est pas capable de gérer l’erreur :
GUIDE DU DÉVELOPPEUR D’ACTIONSCRIPT 3.0 64
Gestion des erreurs
Dernière mise à jour le 27/4/2013
try
{
try
{
trace("<< try >>");
throw new ApplicationError("some error which will be rethrown");
}
catch (error:ApplicationError)
{
trace("<< catch >> " + error);
trace("<< throw >>");
throw error;
}
catch (error:Error)
{
trace("<< Error >> " + error);
}
}
catch (error:ApplicationError)
{
trace("<< catch >> " + error);
}
Le résultat issu du fragment de code précédent serait le suivant :
<< try >>
<< catch >> ApplicationError: some error which will be rethrown
<< throw >>
<< catch >> ApplicationError: some error which will be rethrown
Le bloc try imbriqué renvoie une erreur ApplicationError personnalisée qui est interceptée par le bloc catch suivant.
Ce bloc catch imbriqué peut tenter de gérer l’erreur et, si la tentative échoue, renvoyer l’objet ApplicationError au
bloc try..catch.
Création de classes d’erreur personnalisées
Flash Player 9 et les versions ultérieures, Adobe AIR 1.0 et les versions ultérieures
Vous pouvez étendre l’une des classes Error standard pour créer vos classes d’erreur spécialisées dans ActionScript.
Vous pouvez créer vos classes d’erreur pour les motifs suivants :
• Identifier des erreurs ou des groupes d’erreurs spécifiques uniques pour votre application.
Outre les erreurs interceptées par un moteur d’exécution de Flash, vous pouvez par exemple gérer différemment les
erreurs renvoyées par votre propre code. Vous pouvez créer une sous-classe de la classe Error pour suivre le
nouveau type de données d’erreur dans les blocs try..catch.
• Fournir des fonctionnalités d’affichage d’erreurs exceptionnelles pour les erreurs générées par votre application.
Par exemple, vous pouvez créer une méthode toString() qui formate vos messages d’erreur d’une certaine façon.
Vous pouvez également définir une méthode lookupErrorString() qui prend un code d’erreur et récupère le
message adéquat en fonction du langage que l’utilisateur préfère.
Une classe d’erreur spécialisée doit étendre la classe Error d’ActionScript de base. Voici un exemple de classe AppError
spécialisée qui étend la classe Error :
GUIDE DU DÉVELOPPEUR D’ACTIONSCRIPT 3.0 65
Gestion des erreurs
Dernière mise à jour le 27/4/2013
public class AppError extends Error
{
public function AppError(message:String, errorID:int)
{
super(message, errorID);
}
}
L’exemple suivant illustre l’utilisation d’une classe AppError dans votre projet :
try
{
throw new AppError("Encountered Custom AppError", 29);
}
catch (error:AppError)
{
trace(error.errorID + ": " + error.message)
}
Remarque : si vous souhaitez remplacer la méthode Error.toString() dans votre sous-classe, fournissez-lui un
paramètre ...(rest). La spécification du langage ECMAScript sur laquelle est basé ActionScript 3.0 définit ainsi la
méthode Error.toString() et ActionScript 3.0 respecte cette définition à des fins de rétrocompatibilité. Par
conséquent, lorsque vous remplacez la méthode Error.toString(), veillez à ce que les paramètres se correspondent
exactement. Vous ne pouvez pas transmettre de paramètres à la méthode toString() lors de l’exécution, car ils sont
ignorés.
Réponse à des événements et à l’état d’erreur
Flash Player 9 et les versions ultérieures, Adobe AIR 1.0 et les versions ultérieures
L’une des améliorations majeures apportées à la gestion des erreurs dans ActionScript 3.0 est la prise en charge de la
gestion des événements d’erreur pour répondre à des erreurs asynchrones lors de l’exécution d’une application. (Pour
obtenir une définition des erreurs asynchrones, voir « Types d’erreurs » à la page 55).
Vous pouvez créer des écouteurs d’événement et des gestionnaires d’événements pour répondre aux événements
d’erreurs. De nombreuses classes distribuent des événements d’erreurs de la même façon que d’autres événements. Par
exemple, une occurrence de la classe XMLSocket distribue normalement trois types d’événements :Event.CLOSE,
Event.CONNECT et DataEvent.DATA. Néanmoins, lorsqu’un problème se produit, la classe XMLSocket peut distribuer
IOErrorEvent.IOError ou SecurityErrorEvent.SECURITY_ERROR. Pour plus d’informations sur les écouteurs et
les gestionnaires d’événement, voir « Gestion des événements » à la page 129.
Les événements d’erreurs peuvent être classés en deux catégories :
• Evénements d’erreurs qui étendent la classe ErrorEvent
La classe flash.events.ErrorEvent contient les propriétés et les méthodes permettant de gérer les erreurs d’exécution
liées à des opérations de réseau et de communication dans une application en cours d’exécution. Les classes
AsyncErrorEvent, IOErrorEvent et SecurityErrorEvent étendent la classe ErrorEvent. Si vous utilisez la version de
débogage d’un moteur d’exécution de Flash, une boîte de dialogue vous informe, lors de l’exécution, de la présence
d’événements d’erreurs sans fonctions d’écouteur rencontrés par le lecteur.
• Evénements d’erreurs basés sur le statut
GUIDE DU DÉVELOPPEUR D’ACTIONSCRIPT 3.0 66
Gestion des erreurs
Dernière mise à jour le 27/4/2013
Les événements d’erreur basés sur le statut sont liés aux propriétés netStatus et status des classes de
communication et de réseau. Si un moteur d’exécution Flash rencontre un problème lors de la lecture ou de
l’écriture des données, la valeur des propriétés netStatus.info.level ou status.level (selon l’objet de classe
que vous utilisez) est définie sur la valeur "error". Vous répondez à cette erreur en vérifiant que la propriété level
contient la valeur "error" dans votre fonction de gestionnaire d’événement.
Utilisation d’événements d’erreurs
Flash Player 9 et les versions ultérieures, Adobe AIR 1.0 et les versions ultérieures
La classe ErrorEvent et ses sous-classes contiennent des types d’erreurs destinés à gérer les erreurs distribuées par les
moteurs d’exécution Flash lorsqu’ils tentent de lire ou d’écrire des données.
L’exemple suivant utilise à la fois une instruction try..catch et des gestionnaires d’événement d’erreur pour afficher
toute erreur détectée lors de la tentative de lecture d’un fichier local. Vous pouvez ajouter un code de gestion plus
élaboré pour proposer des options à l’utilisateur ou gérer l’erreur automatiquement aux endroits indiqués par le
commentaire « your error-handling code here » :
package
{
import flash.display.Sprite;
import flash.errors.IOError;
import flash.events.IOErrorEvent;
import flash.events.TextEvent;
import flash.media.Sound;
import flash.media.SoundChannel;
import flash.net.URLRequest;
import flash.text.TextField;
import flash.text.TextFieldAutoSize;
public class LinkEventExample extends Sprite
{
private var myMP3:Sound;
public function LinkEventExample()
{
myMP3 = new Sound();
var list:TextField = new TextField();
list.autoSize = TextFieldAutoSize.LEFT;
list.multiline = true;
list.htmlText = "Track 1 ";
list.htmlText += "Track 2 ";
addEventListener(TextEvent.LINK, linkHandler);
addChild(list);
}
private function playMP3(mp3:String):void
{
try
{
myMP3.load(new URLRequest(mp3));
myMP3.play();
}
catch (err:Error)
GUIDE DU DÉVELOPPEUR D’ACTIONSCRIPT 3.0 67
Gestion des erreurs
Dernière mise à jour le 27/4/2013
{
trace(err.message);
// your error-handling code here
}
myMP3.addEventListener(IOErrorEvent.IO_ERROR, errorHandler);
}
private function linkHandler(linkEvent:TextEvent):void
{
playMP3(linkEvent.text);
// your error-handling code here
}
private function errorHandler(errorEvent:IOErrorEvent):void
{
trace(errorEvent.text);
// your error-handling code here
}
}
}
Utilisation d’événements de changement de statut
Flash Player 9 et les versions ultérieures, Adobe AIR 1.0 et les versions ultérieures
Les moteurs d’exécution Flash changent dynamiquement la valeur des propriétés netStatus.info.level ou
status.level pour les classes qui prennent en charge la propriété level pendant qu’une application s’exécute. Les
classes qui ont la propriété netStatus.info.level sont NetConnection, NetStream et SharedObject. Les classes qui
ont la propriété status.level sont HTTPStatusEvent, Camera, Microphone et LocalConnection. Vous pouvez écrire
une fonction de gestionnaire pour répondre au changement de valeur level et suivre les erreurs de communication.
L’exemple suivant utilise une fonction netStatusHandler() pour tester la valeur de la propriété level. Si la
propriété level indique qu’une erreur a été rencontrée, le code suit le message « Video stream failed ».
package
{
import flash.display.Sprite;
import flash.events.NetStatusEvent;
import flash.events.SecurityErrorEvent;
import flash.media.Video;
import flash.net.NetConnection;
import flash.net.NetStream;
public class VideoExample extends Sprite
{
private var videoUrl:String = "Video.flv";
private var connection:NetConnection;
private var stream:NetStream;
public function VideoExample()
{
connection = new NetConnection();
connection.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler);
connection.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler);
connection.connect(null);
}
GUIDE DU DÉVELOPPEUR D’ACTIONSCRIPT 3.0 68
Gestion des erreurs
Dernière mise à jour le 27/4/2013
private function netStatusHandler(event:NetStatusEvent):void
{
if (event.info.level == "error")
{
trace("Video stream failed")
}
else
{
connectStream();
}
}
private function securityErrorHandler(event:SecurityErrorEvent):void
{
trace("securityErrorHandler: " + event);
}
private function connectStream():void
{
var stream:NetStream = new NetStream(connection);
var video:Video = new Video();
video.attachNetStream(stream);
stream.play(videoUrl);
addChild(video);
}
}
}
Comparaison des classes Error
Flash Player 9 et les versions ultérieures, Adobe AIR 1.0 et les versions ultérieures
ActionScript fournit de nombreuses classes Error prédéfinies. Vous pouvez toutefois faire appel aux mêmes classes
Error dans votre propre code. Il existe deux types principaux de classes Error dans ActionScript 3.0 : les classes Error
de base d’ActionScript et les classes Error du package flash.error. Le package flash.error contient des classes
supplémentaires permettant le débogage et le développement d’applications ActionScript 3.0.
Classes Error de base
Flash Player 9 et les versions ultérieures, Adobe AIR 1.0 et les versions ultérieures
Parmi les classes Error de base figurent les classes Error, ArgumentError, EvalError, RangeError, ReferenceError,
SecurityError, SyntaxError, TypeError, URIError et VerifyError. Chacune de ces classes se trouve dans l’espace de
noms de niveau supérieur.
GUIDE DU DÉVELOPPEUR D’ACTIONSCRIPT 3.0 69
Gestion des erreurs
Dernière mise à jour le 27/4/2013
Nom de classe Description Remarques
Error La classe Error permet de renvoyer des exceptions et
correspond à la classe de base des autres classes
d’exception définies dans ECMAScript : EvalError,
RangeError, ReferenceError, SyntaxError, TypeError et
URIError.
La classe Error sert de classe de base à toutes les erreurs
d’exécution et est recommandée pour toutes les classes
d’erreur personnalisées.
ArgumentError La classe ArgumentError représente une erreur qui se
produit lorsque les valeurs de paramètre fournies lors
d’un appel de fonction ne correspondent pas aux
paramètres définis pour celle-ci.
Voici des exemples d’erreurs d’argument :
• Trop ou trop peu d’arguments sont fournis à une méthode.
• Un argument devait être membre d’une énumération, et cela
n’a pas été le cas.
EvalError Une exception EvalError est renvoyée si des
paramètres sont transmis au constructeur de la classe
Function ou si le code utilisateur appelle la fonction
eval().
Dans ActionScript 3.0, la prise en charge de la fonction eval()
a été supprimée et toute tentative d’utilisation de la fonction
entraîne le renvoi d’une erreur.
Les versions précédentes de Flash Player utilisaient la fonction
eval() pour accéder à des variables, des propriétés, des objets
ou des clips par nom.
RangeError Une exception RangeError est renvoyée si une valeur
numérique excède la plage acceptable.
Par exemple, une exception RangeError est renvoyée par la
classe Timer si un retard est négatif ou infini. Elle peut
également être renvoyée si vous tentez d’ajouter un objet
d’affichage à une profondeur non valide.
ReferenceError Une exception ReferenceError est renvoyée lorsque
vous tentez d’utiliser une référence à une propriété
non définie pour un objet scellé (non dynamique).
Les versions du compilateur ActionScript antérieures
à ActionScript 3.0 ne renvoyaient pas d’erreur lorsque
vous tentiez d’accéder à une propriété non
définie. ActionScript 3.0 renvoie toutefois
l’exception ReferenceError dans ce cas de figure.
Les exceptions pour des variables non définies pointent vers
des bogues éventuels afin d’améliorer la qualité du logiciel.
Cependant, si vous n’avez pas l’habitude d’initialiser les
variables, ce nouveau comportement d’ActionScript requiert
de vous quelques changements lorsque vous écrivez du code.
SecurityError L’exception SecurityError est renvoyée lorsqu’une
violation de sécurité se produit et que l’accès est
refusé.
Voici des exemples d’erreurs de sécurité :
• Un accès à une propriété ou un appel de méthode non
autorisé est effectué en franchissant les limites du sandbox
de sécurité.
• Il s’est produit une tentative d’accès à une URL non autorisée
par le sandbox de sécurité.
• Il s’est produit une tentative de connexion socket sur un port,
mais le fichier de régulation socket approprié n’était pas
présent.
• Il s’est produit une tentative d’accès à la caméra ou au
microphone de l’utilisateur et celui-ci a refusé l’accès au
périphérique.
SyntaxError Une exception SyntaxError est renvoyée lorsqu’il se
produit une erreur d’analyse dans votre code
ActionScript.
Une exception SyntaxError peut être renvoyée dans les cas
suivants :
• ActionScript renvoie des exceptions SyntaxError lorsque la
classe RegExp analyse une expression régulière non valide.
• ActionScript renvoie des exceptions SyntaxError lorsque la
classe XMLDocument analyse un code XML non valide.
GUIDE DU DÉVELOPPEUR D’ACTIONSCRIPT 3.0 70
Gestion des erreurs
Dernière mise à jour le 27/4/2013
Classes Error du package flash.error
Flash Player 9 et les versions ultérieures, Adobe AIR 1.0 et les versions ultérieures
Le package flash.error contient des classes Error considérées comme parties intégrantes de l’API des moteurs
d’exécution de Flash. A l’encontre des classes Error décrites, le package flash.error communique les événements
d’erreurs propres aux moteurs d’exécution de Flash (tel Flash Player ou Adobe AIR).
TypeError L’exception TypeError est renvoyée lorsque le type
réel d’un opérande ne correspond pas au type prévu.
Une exception TypeError peut être renvoyée dans les cas
suivants :
• Un paramètre réel de fonction ou de méthode ne peut pas
être forcé à correspondre au type de paramètre formel.
• Une valeur est affectée à une variable et ne peut pas être
forcée à correspondre au type de la variable.
• Le côté droit de l’opérateur is ou instanceof n’est pas un
type valide.
• L’utilisation du mot clé super n’est pas valide.
• Une recherche de propriété donne lieu à plusieurs liaisons,
soit un résultat ambigu.
• Une méthode est appelée pour un objet incompatible. Par
exemple, une exception TypeError est renvoyée si une
méthode de la classe RegExp est « greffée » sur un objet
générique, puis appelée.
URIError L’exception URIError est renvoyée lorsque l’une des
fonctions de gestion URI globales est utilisée d’une
manière qui n’est pas compatible avec sa définition.
Une exception URIError peut être renvoyée dans les cas
suivants :
Un URI non valide est défini par une fonction API de Flash Player
qui s’attend à un URI valide, comme Socket.connect().
VerifyError Une erreur VerifyError est renvoyée lorsqu’un fichier
SWF incorrect ou altéré est détecté.
Lorsqu’un fichier SWF charge un autre fichier SWF, le fichier
SWF parent peut intercepter une exception VerifyError générée
par le fichier SWF chargé.
Nom de classe Description Remarques
GUIDE DU DÉVELOPPEUR D’ACTIONSCRIPT 3.0 71
Gestion des erreurs
Dernière mise à jour le 27/4/2013
Nom de classe Description Remarques
EOFError Une exception EOFError est émise lors d’une
tentative de lecture au-delà de la fin des données
disponibles.
Par exemple, une exception EOFError est émise
chaque fois qu’une méthode de lecture de l’interface
IDataInput est appelée et que les données sont
insuffisantes pour répondre à la requête de lecture.
IllegalOperationError Une exception IllegalOperationError est renvoyée
lorsqu’une méthode n’est pas implémentée ou si
l’implémentation ne couvre pas l’utilisation
actuelle.
Voici quelques exemples d’exceptions d’erreurs liées à
des opérations non valides :
• Une classe de base, telle que
DisplayObjectContainer, propose plus de
fonctionnalités qu’une scène ne peut prendre en
charge. Par exemple, si vous tentez d’obtenir ou de
définir un masque sur la scène (à l’aide de
stage.mask), le moteur d’exécution de Flash
renvoie une exception IllegalOperationError
accompagnée du message « La classe Stage
n’implémente ni cette propriété, ni cette méthode ».
• Une sous-classe hérite d’une méthode dont elle n’a
pas besoin et qu’elle ne souhaite pas prendre en
charge.
• Certaines méthodes d’accessibilité sont appelées
lorsque Flash Player est compilé sans les fonctions
d’accessibilité.
• Les fonctions réservées à la création sont appelées à
partir d’une version d’exécution de Flash Player.
• Vous tentez de définir le nom d’un objet placé sur le
scénario.
IOError Une exception IOError est renvoyée lorsqu’un type
d’exception E/S se produit.
Vous obtenez cette erreur, par exemple, lorsque vous
tentez une opération de lecture-écriture sur un socket
qui n’est pas connecté ou qui est déconnecté.
MemoryError Une exception MemoryError est renvoyée lors de
l’échec d’une requête d’allocation de mémoire.
Par défaut, ActionScript Virtual Machine 2 n’impose
pas de limite à la quantité de mémoire allouée par un
programme ActionScript. Sur un système de bureau,
les échecs d’allocation de mémoire sont rares. Une
erreur est renvoyée lorsque le système ne parvient pas
à allouer la mémoire requise pour une opération. Par
conséquent, sur un système de bureau, cette
exception est peu fréquente, à moins qu’une requête
d’allocation ne soit extrêmement importante (par
exemple, une requête de 3 milliards d’octets est
impossible, car un programme Microsoft® Windows®
de 32 bits peut accéder à 2 Go d’espace d’adressage
uniquement).
ScriptTimeoutError Une exception ScriptTimeoutError est renvoyée
lorsqu’un intervalle de délai d’expiration du script
de 15 secondes est atteint. En interceptant une
exception ScriptTimeoutError, vous pouvez gérer
le délai d’expiration du script plus en douceur. Si
aucun gestionnaire d’exception n’est défini, le
gestionnaire de l’exception non interceptée
affiche une boîte de dialogue contenant un
message d’erreur.
Pour éviter qu’un développeur n’intercepte
l’exception et reste dans une boucle sans fin, seule la
première exception ScriptTimeoutError renvoyée au
cours d’un script donné peut être interceptée. Le code
ne peut pas intercepter une exception
ScriptTimeoutError ultérieure. Elle passe donc
immédiatement au gestionnaire de l’exception non
interceptée.
StackOverflowError L’exception StackOverflowError est renvoyée
lorsque la pile disponible pour le script a été
épuisée.
Une exception StackOverflowError peut indiquer
qu’un problème de récursivité à l’infini s’est produit.
GUIDE DU DÉVELOPPEUR D’ACTIONSCRIPT 3.0 72
Gestion des erreurs
Dernière mise à jour le 27/4/2013
Exemple de gestion des erreurs : application
CustomErrors
Flash Player 9 et les versions ultérieures, Adobe AIR 1.0 et les versions ultérieures
L’application CustomErrors décrit les techniques d’utilisation des erreurs personnalisées lors de la création d’une
application. Ces techniques sont les suivantes :
• Validation d’un paquet XML
• Ecriture d’une erreur personnalisée
• Renvoi d’erreurs personnalisées
• Notification des utilisateurs lors du renvoi d’une erreur
Pour obtenir les fichiers d’application de cet exemple, voir
www.adobe.com/go/learn_programmingAS3samples_flash_fr. Les fichiers d’application CustomErrors se trouvent
dans le dossier Samples/CustomError. L’application se compose des fichiers suivants :
Présentation de l’application CustomErrors
Flash Player 9 et les versions ultérieures, Adobe AIR 1.0 et les versions ultérieures
Au chargement de l’application, la méthode initApp() est appelée dans les applications Flex ou le code du scénario
(autre qu’une fonction) est exécuté dans les applications Flash Professional. Ce code définit un exemple de paquet
XML que la classe Validator vérifiera. Le code suivant est exécuté :
employeeXML =
JohnDoe1234567890;
}
Le paquet XML est ensuite affiché dans une occurrence du composant TextArea sur la scène. Cette étape permet de
modifier le paquet XML avant de tenter de le revalider.
Fichier Description
CustomErrors.mxml
ou
CustomErrors.fla
Fichier d’application principal en FLA pour Flash ou en MXML pour Flex
com/example/programmingas3/errors/ApplicationError.as Une classe servant de classe Error de base pour les classes FatalError et
WarningError.
com/example/programmingas3/errors/FatalError.as Une classe qui définit une erreur FatalError renvoyée par l’application.
Cette classe étend la classe ApplicationError personnalisée.
com/example/programmingas3/errors/Validator.as Une classe qui définit une seule méthode qui valide un paquet XML
employee fourni par l’utilisateur.
com/example/programmingas3/errors/WarningError.as Une classe qui définit une erreur WarningError renvoyée par
l’application. Cette classe étend la classe ApplicationError personnalisée.
GUIDE DU DÉVELOPPEUR D’ACTIONSCRIPT 3.0 73
Gestion des erreurs
Dernière mise à jour le 27/4/2013
Lorsque l’utilisateur clique sur le bouton de validation, la méthode validateData() est appelée. Cette méthode valide
le paquet XML employee à l’aide de la méthode validateEmployeeXML() de la classe Validator. Le code suivant
présente la méthode validateData() :
function validateData():void
{
try
{
var tempXML:XML = XML(xmlText.text);
Validator.validateEmployeeXML(tempXML);
status.text = "The XML was successfully validated.";
}
catch (error:FatalError)
{
showFatalError(error);
}
catch (error:WarningError)
{
showWarningError(error);
}
catch (error:Error)
{
showGenericError(error);
}
}
Un objet XML temporaire est d’abord créé à l’aide du contenu de l’occurrence du composant TextArea xmlText. La
méthode validateEmployeeXML() de la classe Validator personnalisée
(com.example.programmingas3/errors/Validator.as) est ensuite appelée et transmet l’objet XML temporaire comme
paramètre. Si le paquet XML est valide, l’occurrence du composant Label status affiche un message de réussite et
l’application se ferme. Si la méthode validateEmployeeXML() renvoie une erreur personnalisée (c’est-à-dire qu’une
erreur FatalError, WarningError ou une erreur générique se produit), l’instruction catch appropriée s’exécute et
appelle les méthodes showFatalError(), showWarningError() ou showGenericError(). Chacune de ces
méthodes affiche un message approprié dans une zone de texte appelée statusText pour avertir l’utilisateur de l’erreur
spécifique qui s’est produite. Chaque méthode met également à jour l’occurrence du composant Label status avec un
message spécifique.
Si une erreur grave se produit pendant une tentative de validation du paquet XML employee, le message d’erreur
s’affiche dans la zone de texte statusText et l’occurrence du composant TextArea xmlText et l’occurrence du
composant Button validateBtn sont désactivées, comme l’indique le code suivant :
function showFatalError(error:FatalError):void
{
var message:String = error.message + "\n\n";
var title:String = error.getTitle();
statusText.text = message + " " + title + "\n\nThis application has ended.";
this.xmlText.enabled = false;
this.validateBtn.enabled = false;
hideButtons();
}
S’il se produit une erreur d’avertissement au lieu d’une erreur grave, le message d’erreur est affiché dans l’occurrence
de TextArea statusText, mais les occurrences de composant TextField xmlText et Button ne sont pas désactivées. La
méthode showWarningError() affiche le message d’erreur personnalisé dans la zone de texte statusText. Le
message invite également l’utilisateur à indiquer s’il souhaite poursuivre la validation de l’objet XML ou annuler le
script. Le fragment de code suivant présente la méthode showWarningError() :
GUIDE DU DÉVELOPPEUR D’ACTIONSCRIPT 3.0 74
Gestion des erreurs
Dernière mise à jour le 27/4/2013
function showWarningError(error:WarningError):void
{
var message:String = error.message + "\n\n" + "Do you want to exit this application?";
showButtons();
var title:String = error.getTitle();
statusText.text = message;
}
Lorsque l’utilisateur clique sur le bouton Oui ou Non, la méthode closeHandler() est appelée. Le fragment de code
suivant présente la méthode closeHandler() :
function closeHandler(event:CloseEvent):void
{
switch (event.detail)
{
case yesButton:
showFatalError(new FatalError(9999));
break;
case noButton:
statusText.text = "";
hideButtons();
break;
}
}
Si l’utilisateur souhaite annuler le script en cliquant sur Oui, une exception FatalError est renvoyée, provoquant l’arrêt
de l’application.
Création d’une validation personnalisée
Flash Player 9 et les versions ultérieures, Adobe AIR 1.0 et les versions ultérieures
La classe Validator personnalisée contient une seule méthode, validateEmployeeXML(). La méthode
validateEmployeeXML() gère un seul argument, employee, qui correspond au paquet XML à valider. La méthode
validateEmployeeXML() est la suivante :
public static function validateEmployeeXML(employee:XML):void
{
// checks for the integrity of items in the XML
if (employee.costCenter.length() < 1)
{
throw new FatalError(9000);
}
if (employee.costCenter.length() > 1)
{
throw new WarningError(9001);
}
if (employee.ssn.length() != 1)
{
throw new FatalError(9002);
}
}
GUIDE DU DÉVELOPPEUR D’ACTIONSCRIPT 3.0 75
Gestion des erreurs
Dernière mise à jour le 27/4/2013
Un employé doit appartenir à un (et un seul) centre de coût pour être validé. S’il n’appartient à aucun centre de coût,
la méthode renvoie une erreur FatalError, qui se propage jusqu’à la méthode validateData() dans le fichier
d’application principale. Si l’employé appartient à plusieurs centres de coût, une erreur WarningError est renvoyée. La
dernière vérification de la validation XML contrôle que l’utilisateur possède un seul numéro de sécurité sociale défini
(le noeud ssn dans le paquet XML). S’il n’y a pas exactement un noeud ssn, une erreur FatalError est renvoyée.
Vous pouvez ajouter des vérifications supplémentaires à la méthode validateEmployeeXML() afin de vérifier, par
exemple, que le noeud ssn contient un numéro valide, ou que l’employé possède au moins un numéro de téléphone et
une adresse électronique, et que ces deux valeurs sont valides. Vous pouvez également modifier le XML de façon à ce
que chaque employé ait un ID unique et spécifie l’ID de son responsable.
Définition de la classe ApplicationError
Flash Player 9 et les versions ultérieures, Adobe AIR 1.0 et les versions ultérieures
La classe ApplicationError sert de classe de base aux classes FatalError et WarningError. Elle étend la classe Error et
définit ses propres propriétés et méthodes personnalisées, y compris un ID d’erreur, la gravité et un objet XML
contenant les codes d’erreur personnalisés et les messages. Cette classe définit également deux constantes statiques
utilisées pour définir la gravité de chaque type d’erreur.
La méthode du constructeur de la classe ApplicationError est la suivante :
public function ApplicationError()
{
messages =
;
}
Chaque noeud d’erreur dans l’objet XML contient un code numérique unique et un message d’erreur. Vous pouvez
consulter facilement les messages d’erreur par code d’erreur à l’aide d’E4X, comme indiqué dans la méthode
getMessageText() suivante :
public function getMessageText(id:int):String
{
var message:XMLList = messages.error.(@code == id);
return message[0].text();
}
La méthode getMessageText() prend un seul argument entier, id, et renvoie une chaîne. L’argument id correspond
au code de l’erreur à rechercher. Par exemple, lorsque vous transmettez un id de 9001, l’erreur indiquant que les
employés doivent être affectés à un seul centre de coût est renvoyée. Si plusieurs erreurs ont le même code,
ActionScript renvoie le message d’erreur uniquement pour le premier résultat trouvé (message[0] dans l’objet
XMLList renvoyé).
GUIDE DU DÉVELOPPEUR D’ACTIONSCRIPT 3.0 76
Gestion des erreurs
Dernière mise à jour le 27/4/2013
La méthode suivante de cette classe, getTitle(), ne prend aucun paramètre et renvoie une valeur de chaîne qui
contient l’ID de cette erreur spécifique. Cette valeur permet d’identifier aisément l’erreur exacte qui s’est produite lors
de la validation du paquet XML. Le fragment de code suivant présente la méthode getTitle() :
public function getTitle():String
{
return "Error #" + id;
}
La dernière méthode finale de la classe ApplicationError est toString(). Cette méthode remplace la fonction définie
dans la classe Error pour que vous puissiez personnaliser la présentation du message d’erreur. La méthode renvoie une
chaîne qui identifie le numéro d’erreur spécifique et le message qui s’est affiché.
public override function toString():String
{
return "[APPLICATION ERROR #" + id + "] " + message;
}
Définition de la classe FatalError
Flash Player 9 et les versions ultérieures, Adobe AIR 1.0 et les versions ultérieures
La classe FatalError étend la classe ApplicationError personnalisée et définit trois méthodes : le constructeur
FatalError, getTitle() et toString(). La première méthode, le constructeur FatalError, prend un seul argument
entier, errorID, et définit la gravité de l’erreur à l’aide des valeurs de constante statiques définies dans la classe
ApplicationError. Elle obtient le message de l’erreur spécifique en appelant la méthode getMessageText() dans la
classe ApplicationError. Le constructeur FatalError se présente comme suit :
public function FatalError(errorID:int)
{
id = errorID;
severity = ApplicationError.FATAL;
message = getMessageText(errorID);
}
La méthode suivante de la classe FatalError, getTitle(), remplace la méthode getTitle() définie précédemment
dans la classe ApplicationError et ajoute le texte “-- FATAL” dans le titre pour informer l’utilisateur qu’une erreur
grave s’est produite. La méthode getTitle() se présente comme suit :
public override function getTitle():String
{
return "Error #" + id + " -- FATAL";
}
La méthode finale dans cette classe, toString(), remplace la méthode toString() définie dans la classe
ApplicationError. La méthode toString() est la suivante :
public override function toString():String
{
return "[FATAL ERROR #" + id + "] " + message;
}
GUIDE DU DÉVELOPPEUR D’ACTIONSCRIPT 3.0 77
Gestion des erreurs
Dernière mise à jour le 27/4/2013
Définition de la classe WarningError
Flash Player 9 et les versions ultérieures, Adobe AIR 1.0 et les versions ultérieures
La classe WarningError étend la classe ApplicationError et est presque identique à la classe FatalError, à l’exception
de quelques changements de chaîne mineurs. Elle définit la gravité de l’erreur sur ApplicationError.WARNING au lieu
de ApplicationError.FATAL, comme indiqué dans le code suivant :
public function WarningError(errorID:int)
{
id = errorID;
severity = ApplicationError.WARNING;
message = super.getMessageText(errorID);
}
78
Dernière mise à jour le 27/4/2013
Chapitre 5 : Utilisation d’expressions
régulières
Flash Player 9 et les versions ultérieures, Adobe AIR 1.0 et les versions ultérieures
Une expression régulière décrit un modèle servant à rechercher et à manipuler du texte de correspondance dans des
chaînes. Les expressions régulières ressemblent à des chaînes, mais elles comprennent des codes spéciaux pour décrire
des modèles et des répétitions. Par exemple, l’expression régulière suivante correspond à une chaîne qui commence
par le caractère A suivi d’un ou de plusieurs chiffres séquentiels :
/A\d+/
Les rubriques suivantes sont consacrées à la syntaxe de base de construction d’expressions régulières. Néanmoins, les
expressions régulières peuvent être très complexes et comporter de nombreuses nuances. Vous pouvez vous
documenter sur les expressions régulières sur le Web et dans les librairies. Différents environnements de
programmation implémentent des expressions régulières de différentes façons. ActionScript 3.0 implémente des
expressions régulières comme défini dans la version 3 de la spécification du langage ECMAScript (ECMA-262).
Voir aussi
RegExp
Principes de base des expressions régulières
Flash Player 9 et les versions ultérieures, Adobe AIR 1.0 et les versions ultérieures
Une expression régulière décrit un modèle de caractères. Les expressions régulières servent généralement à vérifier
qu’une valeur de texte est conforme à un modèle particulier (par exemple, vérifier qu’un numéro de téléphone saisi par
l’utilisateur comporte le nombre de chiffres correct) ou à remplacer des portions d’une valeur de texte qui
correspondent à un modèle donné.
Les expressions régulières peuvent être simples. Par exemple, supposons que vous souhaitiez confirmer qu’une chaîne
particulière correspond à ABC ou que vous souhaitiez remplacer chaque occurrence d’ABC dans une chaîne par un
autre texte. Dans ce cas, vous pouvez utiliser l’expression régulière suivante qui définit le modèle comportant les lettres
A, B et C, dans l’ordre :
/ABC/
Le littéral de l’expression régulière est délimité avec la barre oblique (/).
Les modèles d’expression régulière peuvent également être complexes et parfois sembler obscures, comme l’expression
suivante pour établir une correspondance avec une adresse électronique valide :
/([0-9a-zA-Z]+[-._+&])*[0-9a-zA-Z]+@([-0-9a-zA-Z]+[.])+[a-zA-Z]{2,6}/
GUIDE DU DÉVELOPPEUR D’ACTIONSCRIPT 3.0 79
Utilisation d’expressions régulières
Dernière mise à jour le 27/4/2013
Vous utiliserez le plus souvent des expressions régulières pour rechercher des modèles dans des chaînes et pour
remplacer des caractères. Dans ces cas, vous créerez un objet d’expression régulière et l’utiliserez comme paramètre
pour une ou plusieurs méthodes de classe String. Les méthodes suivantes de la classe String prennent des expressions
régulières comme paramètres : match(), replace(), search() et split(). Pour plus d’informations sur ces
méthodes, voir « Recherche de modèles dans des chaînes et remplacement de sous-chaînes » à la page 17.
La classe RegExp comprend les méthodes suivantes : test() et exec(). Pour plus d’informations, voir « Méthodes
d’utilisation d’expressions régulières avec des chaînes » à la page 93.
Concepts importants et terminologie
La liste de référence suivante contient des termes importants relatifs à la fonctionnalité étudiée.
Caractère d’échappement Caractère indiquant que le caractère qui suit doit être considéré comme un caractère de
remplacement plutôt que comme un caractère littéral. Dans une syntaxe d’expression régulière, la barre oblique
inverse (\) est le caractère d’échappement. Par conséquent, une barre oblique inverse suivie d’un autre caractère est un
code spécial plutôt que le caractère à proprement parler.
Indicateur Caractère qui spécifie une option associée au mode d’utilisation du modèle d’expression régulière (respect
de la casse, par exemple).
Caractère de remplacement Caractère qui a une signification spéciale dans un modèle d’expression régulière et qui ne
représente pas littéralement ce caractère dans le modèle.
Quantificateur Caractères indiquant le nombre de répétitions d’une partie du modèle. Par exemple, un quantificateur
peut être utilisé pour indiquer qu’un code postal américain doit contenir cinq ou neuf chiffres.
Expression régulière Instruction de programme définissant un modèle de caractères qui permet de confirmer si
d’autres chaînes correspondent à ce modèle ou de remplacer des sections d’une chaîne.
Syntaxe d’expression régulière
Flash Player 9 et les versions ultérieures, Adobe AIR 1.0 et les versions ultérieures
Cette section décrit tous les éléments de la syntaxe d’expression régulière d’ActionScript. Comme vous pourrez le
constater, les expressions régulières peuvent être très complexes et comporter de nombreuses nuances. Vous pouvez
vous documenter sur les expressions régulières sur le Web et dans les librairies. Différents environnements de
programmation implémentent des expressions régulières de différentes façons. ActionScript 3.0 implémente des
expressions régulières comme défini dans la version 3 de la spécification du langage ECMAScript (ECMA-262).
Généralement, vous utilisez des expressions régulières qui correspondent à des modèles plus compliqués qu’une
simple chaîne de caractères. Par exemple, l’expression régulière suivante définit le modèle comportant les lettres A, B
et C, dans l’ordre, suivies par un chiffre :
/ABC\d/
Le code \d représente un chiffre. La barre oblique inverse (\) est appelée caractère d’échappement. Lorsqu’elle est
combinée au caractère qui la suit (dans ce cas, la lettre d), elle a une signification spéciale dans l’expression régulière.
L’expression régulière suivante définit le modèle des lettres ABC suivies par des chiffres (remarquez l’astérisque) :
/ABC\d*/
GUIDE DU DÉVELOPPEUR D’ACTIONSCRIPT 3.0 80
Utilisation d’expressions régulières
Dernière mise à jour le 27/4/2013
L’astérisque (*) est un caractère de remplacement. Un caractère de remplacement est un caractère ayant une
signification spéciale dans les expressions régulières. L’astérisque est un type de caractère de remplacement spécifique
appelé quantificateur, utilisé pour quantifier le nombre de répétitions d’un caractère ou groupe de caractères. Pour
plus de détails, voir « Quantificateurs » à la page 85.
Outre son modèle, une expression régulière peut contenir des indicateurs qui spécifient comment l’expression
régulière doit être mise en correspondance. Par exemple, l’expression régulière suivante utilise l’indicateur i qui
indique qu’elle ignore le respect de la casse dans les chaînes de correspondance :
/ABC\d*/i
Pour plus d’informations, voir « Indicateurs et propriétés » à la page 89.
Vous pouvez utiliser des expressions régulières à l’aide des méthodes suivantes de la classe String : match(),
replace() et search(). Pour plus d’informations sur ces méthodes, voir « Recherche de modèles dans des chaînes et
remplacement de sous-chaînes » à la page 17.
Création d’une occurrence d’expression régulière
Flash Player 9 et les versions ultérieures, Adobe AIR 1.0 et les versions ultérieures
Il existe deux façons de créer une occurrence d’expression régulière. L’une des méthodes consiste à utiliser des barres
obliques (/) pour délimiter l’expression régulière, et l’autre consiste à utiliser le constructeur new. Par exemple, les
expressions régulières suivantes sont équivalentes :
var pattern1:RegExp = /bob/i;
var pattern2:RegExp = new RegExp("bob", "i");
Des barres obliques délimitent un littéral d’expression régulière de la même façon que des guillemets délimitent un
littéral de chaîne. La partie de l’expression régulière contenue entre les barres obliques définit le modèle. L’expression
régulière peut également inclure des indicateurs après la barre de délimitation finale. Ces indicateurs sont considérés
comme faisant partie de l’expression régulière, mais ils sont séparés de son modèle.
Lorsque vous utilisez le constructeur new, vous utilisez deux chaînes pour définir l’expression régulière. La première
chaîne définit le modèle, et la seconde les indicateurs, comme dans l’exemple suivant :
var pattern2:RegExp = new RegExp("bob", "i");
Lorsque vous incluez une barre oblique dans une expression régulière qui est définie à l’aide de délimiteurs de barre
oblique, vous devez faire précéder la barre oblique du caractère d’échappement (\). Par exemple, l’expression régulière
suivante correspond au modèle 1/2 :
var pattern:RegExp = /1\/2/;
Pour inclure des guillemets dans une expression régulière définie avec le constructeur new, vous devez ajouter un
caractère d’échappement (\) avant les guillemets (comme lorsque vous définissez un littéral String). Par exemple, les
expressions régulières suivantes correspondent au modèle eat at "joe's" :
var pattern1:RegExp = new RegExp("eat at \"joe's\"", "");
var pattern2:RegExp = new RegExp('eat at "joe\'s"', "");
N’utilisez pas le caractère d’échappement avec des guillemets dans des expressions régulières définies à l’aide des
délimiteurs de barre oblique. De même, n’utilisez pas le caractère d’échappement avec des barres obliques dans des
expressions régulières définies avec le constructeur new. Les expressions régulières suivantes sont équivalentes. Elles
définissent le modèle 1/2 "joe's" :
GUIDE DU DÉVELOPPEUR D’ACTIONSCRIPT 3.0 81
Utilisation d’expressions régulières
Dernière mise à jour le 27/4/2013
var pattern1:RegExp = /1\/2 "joe's"/;
var pattern2:RegExp = new RegExp("1/2 \"joe's\"", "");
var pattern3:RegExp = new RegExp('1/2 "joe\'s"', '');
De même, dans une expression régulière définie à l’aide du constructeur new, tapez deux fois le caractère barre oblique
inverse pour utiliser une métaséquence débutant par le caractère barre oblique inverse(\), telle que \d (qui correspond
à n’importe quel chiffre).
var pattern:RegExp = new RegExp("\\d+", ""); // matches one or more digits
Vous devez taper deux fois le caractère barre oblique inverse, car le premier paramètre de la méthode constructeur
RegExp() est une chaîne. Dans un littéral de chaîne, ce caractère doit être entré deux fois pour être interprété comme
une barre oblique inverse unique.
La section qui suit décrit la syntaxe servant à définir des modèles d’expression régulière.
Pour plus d’informations, voir « Indicateurs et propriétés » à la page 89.
Caractères, caractères de remplacement et métaséquences
Flash Player 9 et les versions ultérieures, Adobe AIR 1.0 et les versions ultérieures
L’expression régulière la plus simple est celle qui correspond à une séquence de caractères, comme dans l’exemple
suivant :
var pattern:RegExp = /hello/;
Néanmoins, les caractères suivants, appelés caractères de remplacement, ont des significations spéciales dans des
expressions régulières :
^ $ \ . * + ? ( ) [ ] { } |
Par exemple, l’expression régulière suivante correspond à la lettre A suivie par zéro ou plusieurs occurrences de la lettre
B (le caractère de remplacement astérisque indique cette répétition), suivie par la lettre C :
/AB*C/
Pour inclure un caractère de remplacement sans sa signification spéciale dans un modèle d’expression régulière, vous
devez utiliser le caractère d’échappement (\). Par exemple, l’expression régulière suivante correspond à la lettre A
suivie par la lettre B, suivie par un astérisque, suivie par la lettre C :
var pattern:RegExp = /AB\*C/;
Une métaséquence, comme un caractère de remplacement, a une signification spéciale dans une expression régulière.
Une métaséquence est constituée de plusieurs caractères. Les sections suivantes fournissent des détails sur l’utilisation
des caractères de remplacement et des métaséquences.
A propos des caractères de remplacement
Le tableau suivant répertorie les caractères de remplacement que vous pouvez utiliser dans des expressions régulières :
GUIDE DU DÉVELOPPEUR D’ACTIONSCRIPT 3.0 82
Utilisation d’expressions régulières
Dernière mise à jour le 27/4/2013
Caractère de remplacement Description
^ (caret) Etablit une correspondance au début d’une chaîne. Lorsque l’indicateur m (multiline) est défini, le caret
correspond au début d’une ligne également (voir « Indicateurs et propriétés » à la page 89). Lorsqu’il est
utilisé au début d’une classe de caractère, le caret indique la négation et non le début d’une chaîne. Pour
plus d’informations, voir « Classes de caractère » à la page 83.
$(signe dollar) Etablit une correspondance à la fin d’une chaîne. Lorsque l’indicateur m (multiline) est défini, $
correspond à la position avant une nouvelle ligne (\n) également. Pour plus d’informations, voir
« Indicateurs et propriétés » à la page 89.
\ (caractère d’échappement) Echappe la signification spéciale du caractère de remplacement des caractères spéciaux.
Vous pouvez également utiliser le caractère d’échappement si vous souhaitez utiliser une barre oblique
dans un littéral d’expression régulière, comme dans /1\/2/ (pour correspondre au caractère 1, suivi par la
barre oblique, suivi par le caractère 2).
. (point) Correspond à un seul caractère.
Un point correspond à un caractère de nouvelle ligne (\n) uniquement si l’indicateur s (dotall) est défini.
Pour plus d’informations, voir « Indicateurs et propriétés » à la page 89.
* (étoile) Correspond à l’élément précédent répété zéro ou plusieurs fois.
Pour plus de détails, voir « Quantificateurs » à la page 85.
+ (plus) Correspond à l’élément précédent répété une ou plusieurs fois.
Pour plus de détails, voir « Quantificateurs » à la page 85.
? (point d’interrogation) Correspond à l’élément précédent répété zéro ou une fois.
Pour plus de détails, voir « Quantificateurs » à la page 85.
( et ) Définit des groupes dans l’expression régulière. Utilisez des groupes pour :
• confiner le domaine du permutateur | : /(a|b|c)d/
• définir le domaine d’un quantificateur :/(walla.){1,2}/
• dans des backreferences. Par exemple, le \1 dans l’expression régulière suivante correspond à toute
correspondance au premier groupe entre parenthèses du modèle :
• /(\w*) est répété : \1/
Pour plus d’informations, voir « Groupes » à la page 87.
[ et ] Spécifie une classe de caractère qui définit des correspondances possibles pour un seul caractère :
/[aeiou]/ correspond à l’un des caractères spécifiés.
Dans les classes de caractère, utilisez le trait d’union (-) pour désigner une plage de caractères :
/[A-Z0-9]/ correspond aux lettres majuscules A à Z ou aux chiffres 0 à 9.
Dans les classes de caractère, insérez un caractère d’échappement pour échapper les caractères ] et
les caractères -:
/[+\-]\d+/ correspond à + ou à - avant un ou plusieurs chiffres.
Dans les classes de caractère, d’autres caractères (qui sont normalement des caractères de remplacement)
sont considérés comme des caractères normaux (et non comme des caractères de remplacement), sans
qu’une barre oblique inverse soit nécessaire :
/[$]/£ correspond à $ou à £.
Pour plus d’informations, voir « Classes de caractère » à la page 83.
| (opérateur de transfert de
données)
Utilisé pour la permutation, pour correspondre à la partie de gauche ou à celle de droite :
/abc|xyz/ correspond à abc ou à xyz.
GUIDE DU DÉVELOPPEUR D’ACTIONSCRIPT 3.0 83
Utilisation d’expressions régulières
Dernière mise à jour le 27/4/2013
A propos des métaséquences
Les métaséquences sont des séquences de caractères ayant une signification spéciale dans un modèle d’expression
régulière. Le tableau suivant décrit ces métaséquences :
Classes de caractère
Flash Player 9 et les versions ultérieures, Adobe AIR 1.0 et les versions ultérieures
Vous utilisez des classes de caractère pour spécifier une liste de caractères devant correspondre à une position dans
l’expression régulière. Vous définissez des classes de caractère avec des crochets ( [ et ] ). Par exemple, l’expression
régulière suivante définit une classe de caractère qui remplace bag, beg, big, bog ou bug :
/b[aeiou]g/
Métaséquence Description
{n}
{n,}
et
{n,n}
Indique un quantificateur numérique ou une plage de quantificateurs pour l’élément précédent :
/A{27}/ correspond au caractère A répété 27 fois.
/A{3}/ correspond au caractère A répété 3 fois ou plus.
/A{3,5}/ correspond au caractère A répété 3 à 5 fois.
Pour plus de détails, voir « Quantificateurs » à la page 85.
\b Etablit une correspondance à la position entre un caractère mot et un caractère non-mot. Si le premier ou le
dernier caractère dans la chaîne est un caractère mot, correspond également au début ou à la fin de la
chaîne.
\B Etablit une correspondance à la position entre deux caractères mot. Correspond également à la position
entre deux caractères non-mot.
\d Correspond à une décimale.
\D Correspond à tout caractère autre qu’un chiffre.
\f Correspond à un caractère de changement de page.
\n Correspond au caractère de nouvelle ligne.
\r Correspond au caractère de retour de chariot.
\s Correspond à tout caractère d’espace blanc (un espace, une tabulation, une nouvelle ligne ou un caractère
de retour de chariot).
\S Correspond à tout caractère autre qu’un caractère d’espace blanc.
\t Correspond au caractère de tabulation.
\unnnn Correspond au caractère Unicode avec le code de caractère spécifié par le nombre hexadécimal nnnn. Par
exemple, \u263a est le caractère smiley.
\v Correspond à un caractère d’avancement vertical.
\w Correspond à un caractère mot (AZ–, az–, 0-9 ou _). \w ne correspond pas aux caractères qui ne sont pas
anglais tels que é, ñ, ou ç.
\W Correspond à tout caractère autre qu’un caractère mot.
\\xnn Correspond au caractère avec la valeur ASCII spécifiée, comme défini par le nombre hexadécimal nn.
GUIDE DU DÉVELOPPEUR D’ACTIONSCRIPT 3.0 84
Utilisation d’expressions régulières
Dernière mise à jour le 27/4/2013
Séquences d’échappement dans des classes de caractère
La plupart des caractères de remplacement et des métaséquences ayant normalement des significations spéciales dans
une expression régulière n’ont pas ces mêmes significations dans une classe de caractère. Par exemple, dans une
expression régulière, l’astérisque est utilisé pour la répétition, mais ce n’est pas le cas lorsqu’il apparaît dans une classe
de caractère. La classe de caractère suivante correspond à l’astérisque de façon littérale, avec tout autre caractère
répertorié :
/[abc*123]/
Cependant, les trois caractères répertoriés dans le tableau suivant fonctionnent comme des caractères de
remplacement, avec une signification spéciale, dans des classes de caractère :
Pour que ces caractères soient reconnus comme caractères littéraux (dans la signification du caractère de
remplacement spéciale), vous devez faire précéder le caractère du caractère d’échappement. Par exemple, l’expression
régulière suivante inclut une classe de caractère qui correspond à l’un des quatre symboles ($, \, ] ou -) :
/[$\\\]\-]/
Outre les caractères de remplacement qui conservent leurs significations spéciales, les métaséquences suivantes
fonctionnent comme des métaséquences dans des classes de caractère :
D’autres caractères de remplacement et métaséquences d’expression régulière sont considérés comme des caractères
normaux dans une classe de caractère.
Plages de caractères dans des classes de caractère
Utilisez le trait d’union pour spécifier une plage de caractères telle que A-Z, a-z, ou 0-9. Ces caractères doivent
constituer une plage valide dans le jeu de caractères. Par exemple, la classe de caractère suivante correspond à un
caractère compris dans la plage a-z ou un chiffre :
/[a-z0-9]/
Vous pouvez également utiliser le code de caractère ASCII \\xnn pour spécifier une plage par valeur ASCII. Par
exemple, la classe de caractère suivante correspond à un caractère d’un jeu de caractères ASCII étendus (é et ê, par
exemple) :
\\x
Caractère de remplacement Signification dans des classes de caractère
] Définit la fin de la classe de caractère.
- Définit une plage de caractères (voir la section suivante, " Plages de caractères dans des classes de caractère
”).
\ Définit des métaséquences et annule la signification spéciale des caractères de remplacement.
Métaséquence Signification dans des classes de caractère
\n Correspond à un caractère de nouvelle ligne.
\r Correspond à un caractère de retour de chariot.
\t Correspond à un caractère de tabulation.
\unnnn Correspond au caractère avec la valeur de point de code Unicode spécifiée (comme défini par le nombre
hexadécimal nnnn).
\\xnn Correspond au caractère avec la valeur ASCII spécifiée (comme défini par le nombre hexadécimal nn).
GUIDE DU DÉVELOPPEUR D’ACTIONSCRIPT 3.0 85
Utilisation d’expressions régulières
Dernière mise à jour le 27/4/2013
Classes de caractère niées
Lorsque vous utilisez un caret (^) au début d’une classe de caractère, il la nie (tout caractère non répertorié est
considéré comme une correspondance). La classe de caractère suivante correspond à tout caractère sauf une lettre
minuscule (az–) ou un chiffre :
/[^a-z0-9]/
Vous devez taper le caret (^) au début d’une classe de caractère pour indiquer la négation. Autrement, vous ajoutez
simplement le caret aux caractères dans la classe de caractère. Par exemple, la classe de caractère suivante correspond
à un symbole (le caret, notamment) :
/[!.,#+*%$&^]/
Quantificateurs
Flash Player 9 et les versions ultérieures, Adobe AIR 1.0 et les versions ultérieures
Vous utilisez des quantificateurs pour spécifier des répétitions de caractères ou de séquences dans des modèles, comme
suit :
Vous pouvez appliquer un quantificateur à un seul caractère, à une classe de caractère ou à un groupe :
• /a+/ correspond au caractère a répété une ou plusieurs fois.
• /\d+/ correspond à un ou plusieurs chiffres.
• /[abc]+/ correspond à une répétition d’un ou de plusieurs caractères, a, b, ou c.
• /(very, )*/ correspond au mot very suivi par une virgule et un espace répété zéro ou plusieurs fois.
Vous pouvez utiliser des quantificateurs dans des groupes de parenthèses auxquels sont appliqués des quantificateurs.
Par exemple, le quantificateur suivant correspond à des chaînes du type word et word-word-word :
/\w+(-\w+)*/
Par défaut, les expressions régulières effectuent un greedy matching. Tout sous-modèle dans l’expression régulière (.*,
par exemple) tente de mettre en correspondance autant de caractères que possible dans la chaîne avant de passer à la
partie suivante de l’expression régulière. Par exemple, considérez l’expression régulière et la chaîne suivantes :
var pattern:RegExp = /
.*<\/p>/;
str:String = "
Paragraph 1
Paragraph 2
";
L’expression régulière correspond à la chaîne entière :
Paragraph 1
Paragraph 2
Caractère de remplacement
de quantificateur
Description
* (étoile) Correspond à l’élément précédent répété zéro ou plusieurs fois.
+ (plus) Correspond à l’élément précédent répété une ou plusieurs fois.
? (point d’interrogation) Correspond à l’élément précédent répété zéro ou une fois.
{n}
{n,}
et
{n,n}
Indique un quantificateur numérique ou une plage de quantificateurs pour l’élément précédent :
/A{27}/ correspond au caractère A répété 27 fois.
/A{3}/ correspond au caractère A répété 3 fois ou plus.
/A{3,5}/ correspond au caractère A répété 3 à 5 fois.
GUIDE DU DÉVELOPPEUR D’ACTIONSCRIPT 3.0 86
Utilisation d’expressions régulières
Dernière mise à jour le 27/4/2013
Supposez, néanmoins, que vous souhaitez établir une correspondance avec un seul groupe
...
. Vous pouvez
procéder comme suit :
Paragraph 1
Ajoutez un point d’interrogation (?) après les quantificateurs pour qu’ils deviennent des quantificateurs paresseux. Par
exemple, l’expression régulière suivante, qui utilise le quantificateur paresseux *? , correspond à
suivi du nombre
minimum de caractères possible (paresseux), suivi de
:
/
.*?<\/p>/
Lisez attentivement les points suivants concernant les quantificateurs :
• Les quantificateurs {0} et {0,0} n’excluent pas un élément d’une correspondance.
• Ne combinez pas plusieurs quantificateurs, comme dans /abc+*/.
• Le caractère point (.) ne divise pas les lignes en deux à moins de définir l’indicateur s (dotall), même s’il est suivi
d’un quantificateur *. Considérons par exemple le code qui suit :
var str:String = "
Test\n";
str += "Multiline
";
var re:RegExp = /
.*<\/p>/;
trace(str.match(re)); // null;
re = /
.*<\/p>/s;
trace(str.match(re));
// output:
Test
// Multiline
Pour plus d’informations, voir « Indicateurs et propriétés » à la page 89.
Permutation
Flash Player 9 et les versions ultérieures, Adobe AIR 1.0 et les versions ultérieures
Utilisez le caractère | (barre) dans une expression régulière pour que son moteur tienne compte des autres possibilités
pour une correspondance. Par exemple, l’expression régulière suivante correspond à l’un des mots cat, dog, pig, rat :
var pattern:RegExp = /cat|dog|pig|rat/;
Vous pouvez utiliser des parenthèses pour définir des groupes et limiter le domaine du permutateur |. L’expression
régulière suivante correspond à cat suivi de nap ou nip :
var pattern:RegExp = /cat(nap|nip)/;
Pour plus d’informations, voir « Groupes » à la page 87.
Les deux expressions régulières suivantes (l’une utilisant le permutateur |, l’autre une classe de caractère (définie avec
[ et ] )) sont équivalentes :
/1|3|5|7|9/
/[13579]/
Pour plus d’informations, voir « Classes de caractère » à la page 83.
GUIDE DU DÉVELOPPEUR D’ACTIONSCRIPT 3.0 87
Utilisation d’expressions régulières
Dernière mise à jour le 27/4/2013
Groupes
Flash Player 9 et les versions ultérieures, Adobe AIR 1.0 et les versions ultérieures
Vous pouvez spécifier un groupe dans une expression régulière en utilisant des parenthèses, comme suit :
/class-(\d*)/
Un groupe est une sous-section d’un modèle. Vous pouvez utiliser des groupes pour effectuer les opérations suivantes :
• Appliquer un quantificateur à plusieurs caractères
• Délimiter des sous-modèles à appliquer avec la permutation (à l’aide du caractère |)
• Capturer des correspondances de sous-chaîne (par exemple, en utilisant \1 dans une expression régulière pour
établir une correspondance avec un groupe mis en correspondance précédemment, ou en utilisant $1 de la même
façon dans la méthode replace() de la classe String)
Les sections suivantes fournissent des détails sur ces utilisations de groupes.
Utilisation de groupes avec des quantificateurs
Si vous n’utilisez pas de groupe, un quantificateur s’applique au caractère ou à la classe de caractère qui le précède,
comme indiqué ci-dessous :
var pattern:RegExp = /ab*/ ;
// matches the character a followed by
// zero or more occurrences of the character b
pattern = /a\d+/;
// matches the character a followed by
// one or more digits
pattern = /a[123]{1,3}/;
// matches the character a followed by
// one to three occurrences of either 1, 2, or 3
Néanmoins, vous pouvez utiliser un groupe pour appliquer un quantificateur à plusieurs caractères ou classes de
caractère :
var pattern:RegExp = /(ab)*/;
// matches zero or more occurrences of the character a
// followed by the character b, such as ababab
pattern = /(a\d)+/;
// matches one or more occurrences of the character a followed by
// a digit, such as a1a5a8a3
pattern = /(spam ){1,3}/;
// matches 1 to 3 occurrences of the word spam followed by a space
Pour plus d’informations sur les quantificateurs, voir « Quantificateurs » à la page 85.
Utilisation de groupes avec le permutateur (|)
Vous pouvez utiliser des groupes pour définir le groupe de caractères auquel vous souhaitez appliquer un permutateur
(|), comme suit :
GUIDE DU DÉVELOPPEUR D’ACTIONSCRIPT 3.0 88
Utilisation d’expressions régulières
Dernière mise à jour le 27/4/2013
var pattern:RegExp = /cat|dog/;
// matches cat or dog
pattern = /ca(t|d)og/;
// matches catog or cadog
Utilisation de groupes pour capturer des correspondances de sous-chaîne
Lorsque vous définissez un groupe entre parenthèses standard dans un modèle, vous pouvez ensuite vous y référer
dans l’expression régulière. Il s’agit d’une backreference. Ces types de groupes sont appelés groupes capturés. Par
exemple, dans l’expression régulière suivante, la séquence \1 correspond à toute sous-chaîne mise en correspondance
avec le groupe entre parenthèses capturé :
var pattern:RegExp = /(\d+)-by-\1/;
// matches the following: 48-by-48
Vous pouvez spécifier jusqu’à 99 backreferences dans une expression régulière en tapant \1,\2,...,\99.
De même, dans la méthode replace() de la classe String, vous pouvez utiliser $1–$99 pour insérer des
correspondances de chaîne de groupe capturé dans la chaîne de remplacement :
var pattern:RegExp = /Hi, (\w+)\./;
var str:String = "Hi, Bob.";
trace(str.replace(pattern, "$1, hello."));
// output: Bob, hello.
Si vous utilisez des groupes capturés, la méthode exec() de la classe RegExp et la méthode match() de la classe String
renvoient des sous-chaînes qui correspondent aux groupes capturés :
var pattern:RegExp = /(\w+)@(\w+).(\w+)/;
var str:String = "bob@example.com";
trace(pattern.exec(str));
// bob@example.com,bob,example,com
Utilisation de groupes non capturés et de groupes d’anticipation
Un groupe non capturé est utilisé pour le regroupement uniquement ; il n’est pas collecté et il ne correspond pas à des
backreferences numérotées. Utilisez (?: et ) pour définir des groupes non capturés, comme suit :
var pattern = /(?:com|org|net);
Par exemple, notez la différence entre mettre (com|org) dans un groupe capturé et dans un groupe non capturé (la
méthode exec() répertorie les groupes capturés après la correspondance complète) :
var pattern:RegExp = /(\w+)@(\w+).(com|org)/;
var str:String = "bob@example.com";
trace(pattern.exec(str));
// bob@example.com,bob,example,com
//noncapturing:
var pattern:RegExp = /(\w+)@(\w+).(?:com|org)/;
var str:String = "bob@example.com";
trace(pattern.exec(str));
// bob@example.com,bob,example
Un type spécial de groupe non capturé est le groupe d’animation dont il existe deux types : le groupe d’animation positif
et le groupe d’animation négatif.
GUIDE DU DÉVELOPPEUR D’ACTIONSCRIPT 3.0 89
Utilisation d’expressions régulières
Dernière mise à jour le 27/4/2013
Utilisez (?= et ) pour définir un groupe d’anticipation positif, qui spécifie que le sous-modèle dans le groupe doit
établir une correspondance à la position. Néanmoins, la portion de la chaîne qui correspond au groupe d’anticipation
positif peut correspondre aux modèles restants dans l’expression régulière. Par exemple, étant donné que (?=e) est
un groupe d’anticipation positif dans le code suivant, le caractère e auquel il correspond peut être mis en
correspondance par une partie suivante de l’expression régulière (dans ce cas, le groupe capturé, \w*) :
var pattern:RegExp = /sh(?=e)(\w*)/i;
var str:String = "Shelly sells seashells by the seashore";
trace(pattern.exec(str));
// Shelly,elly
Utilisez (?= et ) pour définir un groupe d’anticipation négatif, qui indique que le sous-modèle dans le groupe ne doit
pas établir une correspondance à la position. Exemple :
var pattern:RegExp = /sh(?!e)(\w*)/i;
var str:String = "She sells seashells by the seashore";
trace(pattern.exec(str));
// shore,ore
Utilisation de groupes nommés
Un groupe nommé est un type de groupe dans une expression régulière ayant un identificateur nommé. Utilisez
(?P et ) pour définir le groupe nommé. Par exemple, l’expression régulière suivante inclut un groupe nommé
avec l’identificateur nommé digits :
var pattern = /[a-z]+(?P\d+)[a-z]+/;
Lorsque vous utilisez la méthode exec(), un groupe nommé de correspondance est ajouté comme propriété du
tableau result :
var myPattern:RegExp = /([a-z]+)(?P\d+)[a-z]+/;
var str:String = "a123bcd";
var result:Array = myPattern.exec(str);
trace(result.digits); // 123
Voici un autre exemple, qui utilise deux groupes nommés, avec les identificateurs name et dom :
var emailPattern:RegExp =
/(?P(\w|[_.\-])+)@(?P((\w|-)+))+\.\w{2,4}+/;
var address:String = "bob@example.com";
var result:Array = emailPattern.exec(address);
trace(result.name); // bob
trace(result.dom); // example
Remarque : les groupes nommés ne font pas partie de la spécification du langage ECMAScript. Ils représentent une
fonction ajoutée dans ActionScript 3.0.
Indicateurs et propriétés
Flash Player 9 et les versions ultérieures, Adobe AIR 1.0 et les versions ultérieures
Le tableau suivant répertorie les cinq indicateurs que vous pouvez définir pour des expressions régulières. Vous pouvez
accéder à chaque indicateur en tant que propriété de l’objet d’expression régulière.
GUIDE DU DÉVELOPPEUR D’ACTIONSCRIPT 3.0 90
Utilisation d’expressions régulières
Dernière mise à jour le 27/4/2013
Ces propriétés sont en lecture seule. Vous pouvez définir les indicateurs (g, i, m, s, x) lorsque vous définissez une
variable d’expression régulière, comme suit :
var re:RegExp = /abc/gimsx;
Cependant, vous ne pouvez pas définir directement les propriétés nommées. Par exemple, le code suivant génère une
erreur :
var re:RegExp = /abc/;
re.global = true; // This generates an error.
Par défaut, à moins de les spécifier dans la déclaration d’expression régulière, les indicateurs ne sont pas définis, et les
propriétés correspondantes sont également définies sur false.
De plus, il existe deux autres propriétés d’une expression régulière :
• La propriété lastIndex spécifie la position d’index dans la chaîne à utiliser pour l’appel suivant à la méthode
exec() ou test() d’une expression régulière.
• La propriété source spécifie la chaîne qui définit la portion de modèle de l’expression régulière.
L’indicateur g (global)
Lorsque l’indicateur g (global) n’est pas inclus, une expression régulière n’a pas plus d’une correspondance. Par
exemple, avec l’indicateur g exclu de l’expression régulière, la méthode String.match() renvoie une sous-chaîne de
correspondance uniquement :
var str:String = "she sells seashells by the seashore.";
var pattern:RegExp = /sh\w*/;
trace(str.match(pattern)) // output: she
Lorsque l’indicateur g est défini, la méthode Sting.match() renvoie plusieurs correspondances, comme suit :
var str:String = "she sells seashells by the seashore.";
var pattern:RegExp = /sh\w*/g;
// The same pattern, but this time the g flag IS set.
trace(str.match(pattern)); // output: she,shells,shore
L’indicateur i (ignoreCase)
Par défaut, les correspondances d’expression régulière sont sensibles à la casse. Lorsque vous définissez l’indicateur i
(ignoreCase), le respect de la casse est ignoré. Par exemple, la lettre minuscule s dans l’expression régulière ne
correspond pas à la lettre majuscule S, le premier caractère de la chaîne :
var str:String = "She sells seashells by the seashore.";
trace(str.search(/sh/)); // output: 13 -- Not the first character
Indicateur Propriété Description
g global A plusieurs correspondances.
i ignoreCase Correspondance sensible à la casse. S’applique aux caractères A—Z et a—z mais pas à des caractères
étendus tels que É et é.
m multiline Lorsque cet indicateur est défini, $ et ^ peuvent correspondre au début d’une ligne et à la fin d’une ligne,
respectivement.
s dotall Lorsque cet indicateur est défini, . (point) peut correspondre au caractère de nouvelle ligne (\n).
x extended Autorise les expressions régulières étendues. Vous pouvez tapez des espaces dans l’expression
régulière. Ils sont ignorés dans le cadre du modèle. Ceci vous permet de taper un code d’expression
régulière de façon plus lisible.
GUIDE DU DÉVELOPPEUR D’ACTIONSCRIPT 3.0 91
Utilisation d’expressions régulières
Dernière mise à jour le 27/4/2013
Lorsque l’indicateur i est défini, cependant, l’expression régulière correspond à la lettre majuscule S :
var str:String = "She sells seashells by the seashore.";
trace(str.search(/sh/i)); // output: 0
L’indicateur i ignore le respect de la casse uniquement pour les caractères A–Z et a–z, mais par pour les caractères
étendus tels que É et é .
L’indicateur m (multiline)
Si l’indicateur m (multiline) n’est pas défini, le ^ correspond au début de la chaîne et le $ à sa fin. Si l’indicateur m est
défini, ces caractères correspondent au début d’une ligne et à la fin d’une ligne, respectivement. Considérez la chaîne
suivante, qui inclut un caractère de nouvelle ligne :
var str:String = "Test\n";
str += "Multiline";
trace(str.match(/^\w*/g)); // Match a word at the beginning of the string.
Même si l’indicateur g (global) est défini dans l’expression régulière, la méthode match() correspond à une seule
sous-chaîne, car il n’existe qu’une seule correspondance pour le ^ (le début de la chaîne). Le résultat est le suivant :
Test
Voici le même code avec l’indicateur m défini :
var str:String = "Test\n";
str += "Multiline";
trace(str.match(/^\w*/gm)); // Match a word at the beginning of lines.
Cette fois, le résultat inclut les mots au début des deux lignes :
Test,Multiline
Seul le caractère \n signale la fin d’une ligne. Ce n’est pas le cas des caractères suivants :
• Retour de chariot (\r)
• Séparateur de ligne Unicode (\u2028)
• Séparateur de paragraphe Unicode (\u2028)
L’indicateur s (dotall)
Si l’indicateur s (dotall ou “dot all”) n’est pas défini, un point (.) dans un modèle d’expression régulière ne
correspond pas à un caractère de nouvelle ligne (\n). Par conséquent, il n’existe aucune correspondance pour
l’exemple suivant :
var str:String = "
Test\n";
str += "Multiline
";
var re:RegExp = /
.*?<\/p>/;
trace(str.match(re));
Néanmoins, si l’indicateur s est défini, le point correspond au caractère de nouvelle ligne :
var str:String = "
Test\n";
str += "Multiline
";
var re:RegExp = /
.*?<\/p>/s;
trace(str.match(re));
Dans ce cas, la correspondance est la sous-chaîne entière dans les balises
, y compris le caractère de nouvelle ligne :
Test
Multiline
GUIDE DU DÉVELOPPEUR D’ACTIONSCRIPT 3.0 92
Utilisation d’expressions régulières
Dernière mise à jour le 27/4/2013
L’indicateur x (extended)
Les expressions régulières peuvent être difficiles à lire, notamment lorsqu’elles comprennent de nombreux
métasymboles et métaséquences. Exemple :
/
|(\s*[^>]*>)).*?<\/p>/gi
Lorsque vous utilisez l’indicateur x (extended) dans une expression régulière, les espaces vides que vous tapez dans le
modèle sont ignorés. Par exemple, l’expression régulière suivante est identique à l’exemple précédent :
/
)
Comme indiqué dans l’exemple suivant, vous pouvez également utiliser des accolades ( { et } ) pour transmettre des
données par référence (à partir d’autres variables) lorsque vous construisez des objets XML :
var ids:Array = [121, 122, 123];
var names:Array = [["Murphy","Pat"], ["Thibaut","Jean"], ["Smith","Vijay"]]
var x:XML = new XML("");
for (var i:int = 0; i < 3; i++)
{
var newnode:XML = new XML();
newnode =
{names[i][0]}{names[i][1]};
x = x.appendChild(newnode)
}
Vous pouvez affecter des propriétés et des attributs à un objet XML à l’aide de l’opérateur =, comme dans l’exemple
suivant :
var x:XML =
Smith
x.firstname = "Jean";
x.@id = "239";
Ceci définit l’objet XML x de la façon suivante :
SmithJean
Vous pouvez utiliser les opérateurs + et += pour concaténer des objets XMLList :
var x1:XML = test1
var x2:XML = test2
var xList:XMLList = x1 + x2;
xList += test3
Ceci définit l’objet XMLList xList de la façon suivante :
test1test2test3
GUIDE DU DÉVELOPPEUR D’ACTIONSCRIPT 3.0 110
Utilisation de XML
Dernière mise à jour le 27/4/2013
Parcours de structures XML
Flash Player 9 et les versions ultérieures, Adobe AIR 1.0 et les versions ultérieures
L’une des fonctions puissantes d’XML est sa capacité à fournir des données imbriquées, complexes, via une chaîne
linéaire de caractères de texte. Lorsque vous chargez des données dans un objet XML, ActionScript les analyse et charge
sa structure hiérarchique en mémoire (ou envoie une erreur d’exécution si les données XML ne sont pas formées
correctement).
Les opérateurs et les méthodes des objets XML et XMLList permettent de parcourir aisément la structure des données XML.
Utilisez l’opérateur point (.) et l’opérateur d’accesseur descendant (..) pour accéder aux propriétés enfant d’un objet
XML. Considérez l’objet XML suivant :
var myXML:XML =
Baking Extravagant Pastries with KumquatsContinoChuck238Emu Care and BreedingCaseJustin115
L’objet myXML.book est un objet XMLList contenant des propriétés enfant de l’objet myXML appelées book. Ces deux
objets XML correspondent aux deux propriétés book de l’objet myXML.
L’objet myXML..lastName est un objet XMLList contenant des propriétés descendantes appelées lastName. Ces deux
objets XML correspondent aux deux propriétés lastName de l’objet myXML.
L’objet myXML.book.editor.lastName est un objet XMLList contenant tout enfant appelé lastName des enfants
appelés editor des enfants appelés book de l’objet myXML : en l’occurrence, un objet XMLList contenant un seul objet
XML (la propriété lastName dont la valeur correspond à « Case »).
Accès aux noeuds enfant et parent
Flash Player 9 et les versions ultérieures, Adobe AIR 1.0 et les versions ultérieures
La méthode parent() renvoie le parent d’un objet XML.
Vous pouvez utiliser les valeurs d’index ordinales d’une liste enfant pour accéder à des objets enfant spécifiques. Par
exemple, considérez un objet XML myXML ayant deux propriétés enfant appelées book. Chaque propriété enfant
appelée book possède un numéro d’index qui lui est associé :
myXML.book[0]
myXML.book[1]
GUIDE DU DÉVELOPPEUR D’ACTIONSCRIPT 3.0 111
Utilisation de XML
Dernière mise à jour le 27/4/2013
Pour accéder à un petit-enfant spécifique, vous pouvez indiquer des numéros d’index pour les noms de l’enfant et du
petit-enfant :
myXML.book[0].title[0]
Cependant, s’il n’existe qu’un seul enfant de x.book[0] nommé title, vous pouvez omettre la référence d’index,
comme suit :
myXML.book[0].title
De même, s’il n’existe qu’un seul enfant book de l’objet x et que cet objet enfant possède un seul objet title, vous pouvez
omettre les deux références d’index, de la façon suivante :
myXML.book.title
Vous pouvez utiliser la méthode child() pour accéder à des enfants dont le nom est basé sur une variable ou une
expression, comme indiqué dans l’exemple suivant :
var myXML:XML =
Dictionary;
var childName:String = "book";
trace(myXML.child(childName).title) // output: Dictionary
Accès à des attributs
Flash Player 9 et les versions ultérieures, Adobe AIR 1.0 et les versions ultérieures
Utilisez le symbole @ (l’opérateur identifiant d’attribut) pour accéder aux attributs dans un objet XML ou XMLList,
comme indiqué dans le code suivant :
var employee:XML =
WuErin;
trace(employee.@id); // 6401
Vous pouvez utiliser le symbole de caractère générique * avec le symbole @ pour accéder à tous les attributs d’un objet
XML ou XMLList, comme dans le code suivant :
var employee:XML =
WuErin;
trace(employee.@*.toXMLString());
// 6401
// 233
Vous pouvez utiliser la méthode attribute() ou attributes() pour accéder à un attribut spécifique ou à tous les
attributs d’un objet XML ou XMLList, comme dans le code suivant :
GUIDE DU DÉVELOPPEUR D’ACTIONSCRIPT 3.0 112
Utilisation de XML
Dernière mise à jour le 27/4/2013
var employee:XML =
WuErin;
trace(employee.attribute("id")); // 6401
trace(employee.attribute("*").toXMLString());
// 6401
// 233
trace(employee.attributes().toXMLString());
// 6401
// 233
Vous pouvez également utiliser la syntaxe suivante pour accéder à des attributs, comme indiqué dans l’exemple
suivant :
employee.attribute("id")
employee["@id"]
employee.@["id"]
Ils sont tous équivalents à employee.@id. Cependant, la syntaxe employee.@id est préférable.
Filtrage par attribut ou valeur d’élément
Flash Player 9 et les versions ultérieures, Adobe AIR 1.0 et les versions ultérieures
Vous pouvez utiliser les opérateurs parenthèses— ( et ) —pour filtrer des éléments avec un nom d’élément spécifique
ou une valeur d’attribut. Considérez l’objet XML suivant :
var x:XML =
ZmedSueData analystMcGeeChuckJr. data analyst
Les expressions suivantes sont toutes valides :
• x.employee.(lastName == "McGee")—Il s’agit du deuxième noeud employee.
• x.employee.(lastName == "McGee").firstName—Il s’agit de la propriété firstName du deuxième noeud
employee.
• x.employee.(lastName == "McGee").@id—Il s’agit de la valeur de l’attribut id du deuxième noeud employee.
• x.employee.(@id == 347)—Le premier noeud employee.
• x.employee.(@id == 347).lastName—Il s’agit de la propriété lastName du premier noeud employee.
• x.employee.(@id > 300)—Il s’agit d’un XMLList avec deux propriétés employee.
• x.employee.(position.toString().search("analyst") > -1)—Il s’agit d’un XMLList avec deux propriétés
position.
GUIDE DU DÉVELOPPEUR D’ACTIONSCRIPT 3.0 113
Utilisation de XML
Dernière mise à jour le 27/4/2013
Si vous tentez d’appliquer un filtre à des attributs ou des éléments qui n’existent pas, une exception est renvoyée. Par
exemple, la dernière ligne du code suivant génère une erreur car il n’existe aucun attribut id dans le deuxième élément p :
var doc:XML =
Hello, Bob.
Hello.
;
trace(doc.p.(@id == '123'));
De même, la dernière ligne du code suivant génère une erreur car il n’existe aucune propriété b du deuxième élément p :
var doc:XML =
Hello, Bob.
Hello.
;
trace(doc.p.(b == 'Bob'));
Pour éviter ces erreurs, vous pouvez identifier les propriétés ayant les éléments ou les attributs correspondants, à l’aide
des méthodes attribute() et elements(), comme dans le code suivant :
var doc:XML =
Hello, Bob.
Hello.
;
trace(doc.p.(attribute('id') == '123'));
trace(doc.p.(elements('b') == 'Bob'));
Vous pouvez également utiliser la méthode hasOwnProperty(), comme dans le code suivant :
var doc:XML =
Les premières lignes de la méthode effacent l’espace de noms xml par défaut :
default xml namespace = new Namespace();
La directive default xml namespace a un domaine de niveau bloc de fonction. Cela signifie que le domaine de cette
déclaration est la méthode buildItemHTML().
Les lignes qui suivent assemblent l’objet XMLList en fonction des arguments de chaîne transmis à la fonction :
var body:XMLList = new XMLList();
body += new XML("" + itemTitle + "");
var p:XML = new XML("
" + itemDescription + "
");
var link:XML = ;
link.@href = itemLink; //
link.font.@color = "#008000";
//
// 0x008000 = green
link.font = "More...";
p.appendChild( );
p.appendChild(link);
body += p;
Cet objet XMLList représente des données de chaîne adaptées à un champ de texte HTML d’ActionScript.
La méthode xmlLoaded() utilise la valeur de renvoi de la méthode buildItemHTML() et la convertit en une chaîne :
XML.prettyPrinting = false;
rssOutput = outXML.toXMLString();
Extraction du titre du flux RSS et envoi d’un événement personnalisé
Flash Player 9 et les versions ultérieures, Adobe AIR 1.0 et les versions ultérieures
La méthode xmlLoaded() définit une variable de chaîne rssTitle en fonction des informations contenues dans les
données XML RSS source :
rssTitle = rssXML.channel.title.toString();
Pour finir, la méthode xmlLoaded() génère un événement qui notifie l’application que les données sont analysées et
disponibles :
dataWritten = new Event("dataWritten", true);
121
Dernière mise à jour le 27/4/2013
Chapitre 7 : Utilisation de la fonctionnalité
JSON native
ActionScript 3.0 fournit une API native permettant de coder et de décoder des objets ActionScript à l’aide du format
JavaScript Object Notation (JSON). La classe JSON et les fonctions membres associées suivent la spécification ECMA-
262 5e édition avec de légères variations.
Le membre de la communauté Todd Anderson fournit une comparaison entre l’API JSON native et la classe
JSON as3corelib tierce. Voir Working with Native JSON in Flash Player 11 (disponible en anglais uniquement).
Voir aussi
JSON
Présentation de l’API JSON
L’API JSON ActionScript est constituée de la classe JSON et des fonctions membres toJSON() sur quelques classes
natives. Pour les applications nécessitant un codage JSON personnalisé pour une classe, la structure ActionScript
propose diverses méthodes permettant de remplacer le codage par défaut.
La classe JSON gère en interne l’importation et l’exportation des classes ActionScript qui ne fournissent pas de
membre toJSON(). Dans ces cas, la classe JSON traverse les propriétés publiques de chaque objet qu’elle détecte. Si un
objet contient d’autres objets, JSON parcourt les objets imbriqués et effectue la même traversée. Si un objet fournit une
méthode toJSON(), JSON utilise cette méthode personnalisée plutôt que son algorithme interne.
L’interface JSON est composée d’une méthode d’encodage, stringify(), et d’une méthode de décodage, parse().
Chacune de ces méthodes fournit un paramètre permettant d’insérer votre propre logique dans la procédure de codage
et de décodage JSON. Pour stringify(), ce paramètre est appelé replacer ; pour parse(), il est appelé reviver.
Ces paramètres prennent une définition de fonction avec deux arguments à l’aide de la signature suivante :
function(k, v):*
Méthodes toJSON()
La signature des méthodes toJSON() est
public function toJSON(k:String):*
JSON.stringify() appelle la méthode toJSON(), si elle existe, pour chaque propriété publique qu’elle rencontre
lorsqu’elle traverse un objet. Une propriété consiste en une paire clé-valeur. Lorsque stringify() appelle la méthode
toJSON(), il transmet la clé, k, de la propriété qu’il examine actuellement. Une implémentation toJSON() standard
évalue chaque nom de propriété et renvoie l’encodage souhaité de sa valeur.
GUIDE DU DÉVELOPPEUR D’ACTIONSCRIPT 3.0 122
Utilisation de la fonctionnalité JSON native
Dernière mise à jour le 27/4/2013
La méthode toJSON() peut renvoyer tout type de valeur (identifiée à l’aide du signe *) et pas uniquement une chaîne.
Ce type de renvoi de variable permet à la méthode toJSON() de renvoyer un objet, le cas échéant. Par exemple, si une
propriété de votre classe personnalisée contient un objet issu d’une autre bibliothèque tierce, vous pouvez renvoyer cet
objet dès que la méthode toJSON() détecte votre propriété. JSON parcourt alors l’objet tiers. Le processus de codage
est le suivant :
• Si la méthode toJSON() renvoie un objet qui n’est pas évalué par rapport à une chaîne, stringify() parcourt cet
objet.
• Si la méthode toJSON() renvoie une chaîne, stringify() enveloppe la valeur dans une autre chaîne, renvoie la
chaîne enveloppée et passe à la valeur suivante.
Dans de nombreux cas, il est préférable de renvoyer un objet plutôt que de renvoyer une chaîne JSON créée par votre
application. Le renvoi d’un objet implique l’utilisation de l’algorithme de codage JSON et permet à JSON de se répéter
dans les objets imbriqués.
La méthode toJSON() n’est pas définie dans la classe Object ou dans la plupart des autres classes natives. Son absence
indique à JSON d’effectuer sa traversée standard sur les propriétés publiques de l’objet. Si vous préférez, vus pouvez
également utiliser la méthode toJSON() pour exposer les propriétés privées de votre objet.
Certaines classes natives posent néanmoins des problèmes que les bibliothèques ActionScript sont incapables de
résoudre efficacement dans tous les cas d’utilisation. Pour ces classes, ActionScript fournit une implémentation triviale
que le client peut à nouveau implémenter selon ses besoins. Les classes qui fournissent des membres toJSON() triviaux
sont les suivantes :
• ByteArray
• Date
• Dictionary
• XML
Vous pouvez intégrer la classe ByteArray dans une sous-classe pour remplacer sa méthode toJSON(), mais vous
pouvez aussi redéfinir son prototype. Les classes Date et XML, qui sont déclarées comme étant finales, vous obligent à
utiliser le prototype de classe pour redéfinir toJSON(). La classe Dictionary est déclarée comme étant dynamique, ce
qui vous donne la liberté de remplacer la méthode toJSON().
Définition du comportement JSON personnalisé
Vous disposez de plusieurs options pour implémenter vos propres codage et décodage JSON pour les classes natives :
• Définir ou remplacer toJSON() sur la sous-classe personnalisée d’une classe native non finale
• Définir et redéfinir toJSON() sur le prototype de la classe
• Définir une propriété toJSON sur une classe dynamique
• Utiliser les paramètres JSON.stringify() replacer et JSON.parser() reviver
Voir aussi
ECMA-262, 5e édition
GUIDE DU DÉVELOPPEUR D’ACTIONSCRIPT 3.0 123
Utilisation de la fonctionnalité JSON native
Dernière mise à jour le 27/4/2013
Définition de la méthode toJSON() sur le prototype d’une classe intégrée
L’implémentation JSON native dans ActionScript imite le mécanisme JSON ECMAScript défini dans ECMA-262, 5e
édition. Etant donné qu’ECMAScript ne prend pas en charge les classes, ActionScript définit le comportement de
JSON en termes de distribution basée sur les prototypes. Ancêtres des classes ActionScript 3.0, les prototypes
permettent un héritage simulé, ainsi que les ajouts et redéfinitions de membres.
ActionScript permet de définir ou de redéfinir toJSON() sur le prototype d’une classe. Ce privilège s’étend aux classes
déclarées comme étant finales. Lorsque vous définissez toJSON() sur le prototype d’une classe, votre définition
s’applique à toutes les occurrences de cette classe dans le cadre de votre application. Par exemple, voici comment vous
pouvez définir une méthode toJSON() sur le prototype de la classe MovieClip :
MovieClip.prototype.toJSON = function(k):* {
trace("prototype.toJSON() called.");
return "toJSON";
}
Lorsque votre application appelle la méthode stringify() sur une occurrence de MovieClip, stringify()renvoie
le résultat de votre méthode toJSON() :
var mc:MovieClip = new MovieClip();
var js:String = JSON.stringify(mc); //"prototype toJSON() called."
trace("js: " + js); //"js: toJSON"
Vous pouvez en outre remplacer toJSON() dans les classes natives qui définissent cette méthode. Par exemple, le code
suivant remplace Date.toJSON() :
Date.prototype.toJSON = function (k):* {
return "any date format you like via toJSON: "+
"this.time:"+this.time + " this.hours:"+this.hours;
}
var dt:Date = new Date();
trace(JSON.stringify(dt));
// "any date format you like via toJSON: this.time:1317244361947 this.hours:14"
Définition ou remplacement de toJSON() au niveau de la classe
Les applications n’ont pas toujours besoin d’utiliser des prototypes pour redéfinir toJSON(). Il est également possible
de définir toJSON() en tant que membre d’une sous-classe si la classe parente n’est pas marquée comme finale. Vous
pouvez par exemple étendre la classe ByteArray et définir une fonction toJSON() publique :
GUIDE DU DÉVELOPPEUR D’ACTIONSCRIPT 3.0 124
Utilisation de la fonctionnalité JSON native
Dernière mise à jour le 27/4/2013
package {
import flash.utils.ByteArray;
public class MyByteArray extends ByteArray
{
public function MyByteArray() {
}
public function toJSON(s:String):*
{
return "MyByteArray";
}
}
}
var ba:ByteArray = new ByteArray();
trace(JSON.stringify(ba)); //"ByteArray"
var mba:MyByteArray = new MyByteArray(); //"MyByteArray"
trace(JSON.stringify(mba)); //"MyByteArray"
Si un classe est dynamique, il est possible d’ajouter une propriété toJSON à un objet de cette classe et de lui attribuer
une fonction de la façon suivante :
var d:Dictionary = new Dictionary();
trace(JSON.stringify((d))); // "Dictionary"
d.toJSON = function(){return {c : "toJSON override."};} // overrides existing function
trace(JSON.stringify((d))); // {"c":"toJSON override."}
Vous pouvez remplacer, définir ou redéfinir toJSON() sur n’importe quelle classe ActionScript. Néanmoins, la plupart
des classes ActionScript intégrées ne définissent pas toJSON(). La classe Object ne définit pas la méthode toJSON dans
son prototype par défaut ni ne la déclare en tant que membre de classe. Seule une poignée de classes natives définit la
méthode comme fonction prototype. C’est pourquoi, dans la plupart des cas, vous ne pouvez pas remplacer toJSON()
de façon traditionnelle.
Les classes natives qui ne définissent pas toJSON() sont sérialisées sur JSON par l’implémentation JSON interne. Dans
la mesure du possible, évitez de remplacer cette fonctionnalité intégrée. Si vous définissez un membre toJSON(), la
classe JSON utilise votre logique plutôt que sa propre fonctionnalité.
Utilisation du paramètre replacer de la méthode JSON.stringify()
Il peut être utile de remplacer toJSON() sur le prototype en vue de modifier le comportement d’exportation JSON
d’une classe dans une application. Néanmoins, votre logique d’exportation doit s’appliquer uniquement à des cas
spéciaux sous des conditions provisoires. Pour prendre en compte ces modifications à petite échelle, vous pouvez
utiliser le paramètre replacer de la méthode JSON.stringify().
La méthode stringify() applique la fonction transmise via le paramètre replacer à l’objet en cours de codage. La
signature pour cette fonction est similaire à celle de toJSON() :
function (k,v):*
GUIDE DU DÉVELOPPEUR D’ACTIONSCRIPT 3.0 125
Utilisation de la fonctionnalité JSON native
Dernière mise à jour le 27/4/2013
Contrairement à la méthode toJSON(), la fonction replacer requiert la valeur v, ainsi que la clé k. Cette différence
est nécessaire, car la méthode stringify() est définie sur l’objet JSON statique et non sur l’objet en cours de codage.
Lorsque la méthode JSON.stringify() appelle replacer(k,v), elle traverse l’objet d’entrée d’origine. Le paramètre
implicite this transmis à la fonction replacer fait référence à l’objet qui détient la clé et la valeur. Etant donné que
la méthode JSON.stringify() ne modifie pas l’objet d’entrée d’origine, cet objet reste inchangé dans le conteneur
actuellement traversé. Vous pouvez par conséquent utiliser le code this[k] pour interroger la clé sur l’objet d’origine.
Le paramètre v renferme la valeur que toJSON() convertit.
Tout comme toJSON(), la fonction replacer peut renvoyer tout type de valeur. Si replacer renvoie une chaîne, le
moteur JSON convertit le contenu en séquence d’échappement entre guillemets et place ce contenu également entre
guillemets. Cette structure garantit que stringify() reçoive un objet de chaîne JSON valide qui reste une chaîne dans
un prochain appel de JSON.parse().
Le code suivant utilise le paramètre replacer et le paramètre this implicite pour renvoyer les valeurs time et hours
d’un objet Date :
JSON.stringify(d, function (k,v):* {
return "any date format you like via replacer: "+
"holder[k].time:"+this[k].time + " holder[k].hours:"+this[k].hours;
});
Utilisation du paramètre reviver de la méthode JSON.parse()
Le paramètre reviver de la méthode JSON.parse() est l’opposé de la fonction replacer : il convertit une chaîne
JSON en objet ActionScript utilisable. L’argument reviver est une fonction qui prend deux paramètres et renvoie tout
type :
function (k,v):*
Dans cette fonction, k est une clé et v est la valeur de k. Tout comme stringify(), parse() traverse les paires clévaleur
JSON et applique la fonctionreviver, si elle existe, à chaque paire. L’un des problèmes potentiels est que la
classe JSON ne renvoie pas le nom de classe ActionScript d’un objet. Il peut par conséquent être difficile de savoir quel
type d’objet ranimer. Ce problème peut en outre s’avérer particulièrement délicat lorsque les objets sont imbriqués. En
désignant les fonctions toJSON(), replacer et reviver, vous pouvez trouver des moyens d’identifier les objets
ActionScript exportés tout en gardant intacts les objets d’origine.
Exemple d’analyse
L’exemple suivant illustre une stratégie de ranimation d’objets analysés à partir de chaînes JSON. Cet exemple définit
deux classes : JSONGenericDictExample et JSONDictionaryExtnExample. La classe JSONGenericDictExample est
une classe Dictionary personnalisée. Chaque enregistrement contient le nom et la date de naissance d’une personne,
ainsi qu’un ID unique. Chaque fois que le constructeur JSONGenericDictExample est appelé, il ajoute l’objet
nouvellement créé à un tableau statique interne avec un entier augmentant statiquement comme son ID. La classe
JSONGenericDictExample définit également une méthode revive() qui extrait uniquement l’entier du membre id
le plus long. La méthode revive() utilise cet entier pour rechercher et renvoyer l’objet ranimable adéquat.
La classe JSONDictionaryExtnExample étend la classe Dictionary ActionScript. Ses enregistrements n’ont pas de
structure définie et peuvent contenir toutes sortes de données. Les données sont attribuées après la construction de
l’objet JSONDictionaryExtnExample et non par les propriétés définies dans la classe. Les enregistrements de
JSONDictionaryExtnExample utilisent les objets JSONGenericDictExample comme clés. Lorsqu’un objet
JSONDictionaryExtnExample est ranimé, la fonction JSONGenericDictExample.revive() utilise l’ID associé à
JSONDictionaryExtnExample pour récupérer l’objet de clé correct.
GUIDE DU DÉVELOPPEUR D’ACTIONSCRIPT 3.0 126
Utilisation de la fonctionnalité JSON native
Dernière mise à jour le 27/4/2013
Plus important encore, la méthode JSONDictionaryExtnExample.toJSON() renvoie une chaîne de marqueurs en
plus de l’objet JSONDictionaryExtnExample. Cette chaîne identifie la sortie JSON comme appartenant à la classe
JSONDictionaryExtnExample. Ce marqueur indique clairement le type d’objet en cours de traitement lors de
l’exécution de JSON.parse().
package {
// Generic dictionary example:
public class JSONGenericDictExample {
static var revivableObjects = [];
static var nextId = 10000;
public var id;
public var dname:String;
public var birthday;
public function JSONGenericDictExample(name, birthday) {
revivableObjects[nextId] = this;
this.id = "id_class_JSONGenericDictExample_" + nextId;
this.dname = name;
this.birthday = birthday;
nextId++;
}
public function toString():String { return this.dname; }
public static function revive(id:String):JSONGenericDictExample {
var r:RegExp = /^id_class_JSONGenericDictExample_([0-9]*)$/;
var res = r.exec(id);
return JSONGenericDictExample.revivableObjects[res[1]];
}
}
}
package {
import flash.utils.Dictionary;
import flash.utils.ByteArray;
// For this extension of dictionary, we serialize the contents of the
// dictionary by using toJSON
public final class JSONDictionaryExtnExample extends Dictionary {
public function toJSON(k):* {
var contents = {};
for (var a in this) {
contents[a.id] = this[a];
}
// We also wrap the contents in an object so that we can
// identify it by looking for the marking property "class E"
// while in the midst of JSON.parse.
GUIDE DU DÉVELOPPEUR D’ACTIONSCRIPT 3.0 127
Utilisation de la fonctionnalité JSON native
Dernière mise à jour le 27/4/2013
return {"class JSONDictionaryExtnExample": contents};
}
// This is just here for debugging and for illustration
public function toString():String {
var retval = "[JSONDictionaryExtnExample <";
var printed_any = false;
for (var k in this) {
retval += k.toString() + "=" +
"[e="+this[k].earnings +
",v="+this[k].violations + "], "
printed_any = true;
}
if (printed_any)
retval = retval.substring(0, retval.length-2);
retval += ">]"
return retval;
}
}
}
Lorsque le script d’exécution suivant appelle JSON.parse() sur un objet JSONDictionaryExtnExample, la fonction
reviver appelle JSONGenericDictExample.revive() sur chaque objet dans JSONDictionaryExtnExample. Cet
appel extrait l’ID qui représente la clé de l’objet. La fonction JSONGenericDictExample.revive() utilise cet ID pour
récupérer et renvoyer l’objet JSONDictionaryExtnExample stocké à partir d’un tableau statique privé.
import flash.display.MovieClip;
import flash.text.TextField;
var a_bob1:JSONGenericDictExample = new JSONGenericDictExample("Bob", new
Date(Date.parse("01/02/1934")));
var a_bob2:JSONGenericDictExample = new JSONGenericDictExample("Bob", new
Date(Date.parse("05/06/1978")));
var a_jen:JSONGenericDictExample = new JSONGenericDictExample("Jen", new
Date(Date.parse("09/09/1999")));
var e = new JSONDictionaryExtnExample();
e[a_bob1] = {earnings: 40, violations: 2};
e[a_bob2] = {earnings: 10, violations: 1};
e[a_jen] = {earnings: 25, violations: 3};
trace("JSON.stringify(e): " + JSON.stringify(e)); // {"class JSONDictionaryExtnExample":
//{"id_class_JSONGenericDictExample_10001":
//{"earnings":10,"violations":1},
//"id_class_JSONGenericDictExample_10002":
//{"earnings":25,"violations":3},
//"id_class_JSONGenericDictExample_10000":
// {"earnings":40,"violations":2}}}
var e_result = JSON.stringify(e);
var e1 = new JSONDictionaryExtnExample();
var e2 = new JSONDictionaryExtnExample();
// It's somewhat easy to convert the string from JSON.stringify(e) back
// into a dictionary (turn it into an object via JSON.parse, then loop
// over that object's properties to construct a fresh dictionary).
GUIDE DU DÉVELOPPEUR D’ACTIONSCRIPT 3.0 128
Utilisation de la fonctionnalité JSON native
Dernière mise à jour le 27/4/2013
//
// The harder exercise is to handle situations where the dictionaries
// themselves are nested in the object passed to JSON.stringify and
// thus does not occur at the topmost level of the resulting string.
//
// (For example: consider roundtripping something like
// var tricky_array = [e1, [[4, e2, 6]], {table:e3}]
// where e1, e2, e3 are all dictionaries. Furthermore, consider
// dictionaries that contain references to dictionaries.)
//
// This parsing (or at least some instances of it) can be done via
// JSON.parse, but it's not necessarily trivial. Careful consideration
// of how toJSON, replacer, and reviver can work together is
// necessary.
var e_roundtrip =
JSON.parse(e_result,
/ / This is a reviver that is focused on rebuilding JSONDictionaryExtnExample objects.
function (k, v) {
if ("class JSONDictionaryExtnExample" in v) { // special marker tag;
//see JSONDictionaryExtnExample.toJSON().
var e = new JSONDictionaryExtnExample();
var contents = v["class JSONDictionaryExtnExample"];
for (var i in contents) {
// Reviving JSONGenericDictExample objects from string
// identifiers is also special;
// see JSONGenericDictExample constructor and
// JSONGenericDictExample's revive() method.
e[JSONGenericDictExample.revive(i)] = contents[i];
}
return e;
} else {
return v;
}
});
trace("// == Here is an extended Dictionary that has been round-tripped ==");
trace("// == Note that we have revived Jen/Jan during the roundtrip. ==");
trace("e: " + e); //[JSONDictionaryExtnExample ]
trace("e_roundtrip: " + e_roundtrip); //[JSONDictionaryExtnExample ]
trace("Is e_roundtrip a JSONDictionaryExtnExample? " + (e_roundtrip is
JSONDictionaryExtnExample)); //true
trace("Name change: Jen is now Jan");
a_jen.dname = "Jan"
trace("e: " + e); //[JSONDictionaryExtnExample ]
trace("e_roundtrip: " + e_roundtrip); //[JSONDictionaryExtnExample ]
129
Dernière mise à jour le 27/4/2013
Chapitre 8 : Gestion des événements
Flash Player 9 et les versions ultérieures, Adobe AIR 1.0 et les versions ultérieures
Un système de gestion des événements permet au programmeur de répondre aux actions de l’utilisateur et aux
événements système de manière pratique. Le modèle d’événement ActionScript 3.0 n’est pas seulement pratique, il est
conforme aux normes en vigueur et bien intégré à la liste d’affichage. Ce modèle repose sur la spécification
d’événements Document Object Model (DOM) de niveau 3, une architecture de gestion d’événements normalisée. Il
constitue donc pour les programmeurs ActionScript un outil puissant et parfaitement intuitif.
Le système de gestion d’événements ActionScript 3.0 assure une interaction étroite avec la liste d’affichage. Pour
comprendre les principes de base de la liste d’affichage, voir « Programmation de l’affichage » à la page 156.
Voir aussi
Package flash.events
Spécification d’événements Document Object Model (DOM) niveau 3
Principes de base de la gestion des événements
Flash Player 9 et les versions ultérieures, Adobe AIR 1.0 et les versions ultérieures
Vous pouvez concevoir un événement comme tout type d’action qui se produit dans votre fichier SWF et qui présente
un intérêt pour vous en tant que programmeur. Par exemple, la plupart des fichiers SWF prennent en charge une
certaine forme d’interaction, qu’il s’agisse d’une action aussi simple qu’un clic avec la souris ou d’une opération plus
complexe, telle que l’acceptation et le traitement des données saisies dans un formulaire. Toute interaction de ce type
dans le fichier SWF est considérée comme un événement. Des événements peuvent également se produire sans aucun
interaction directe de l’utilisateur, par exemple lorsque le chargement des données depuis un serveur se termine ou
qu’une caméra reliée devient active.
Dans ActionScript 3.0, tout événement est représenté par un objet événement, qui correspond à une occurrence de la
classe Event ou de l’une de ses sous-classes. Le rôle d’un objet événement est non seulement de stocker des
informations relatives à un événement spécifique, mais aussi de contenir des méthodes qui favorisent la manipulation
de cet objet. Par exemple, lorsque Flash Player ou AIR détecte un clic de la souris, il crée un objet événement (une
occurrence de la classe MouseEvent) qui représente cet événement particulier.
Après la création d’un objet événement, Flash Player ou AIR le distribue, ce qui signifie que l’objet événement est
transmis à l’objet représentant la cible de l’événement. L’objet qui doit recevoir l’objet événement ainsi distribué est
appelé cible d’événement. Par exemple, lorsqu’une caméra reliée devient active, Flash Player distribue un objet
événement directement à la cible de l’événement, dans ce cas l’objet représentant la caméra. Toutefois, si la cible
d’événement se trouve dans la liste d’affichage, l’objet événement est transmis tout au long de la hiérarchie de la liste
d’affichage jusqu’à ce qu’il atteigne la cible en question. Dans certains cas, l’objet événement se « propage » ensuite vers
le haut de la hiérarchie de la liste d’affichage, selon le même cheminement. Cette traversée de la hiérarchie de la liste
d’affichage correspond au flux d’événements.
GUIDE DU DÉVELOPPEUR D’ACTIONSCRIPT 3.0 130
Gestion des événements
Dernière mise à jour le 27/4/2013
Vous pouvez « écouter » les objets événement de votre code grâce aux écouteurs d’événement. Les écouteurs
d’événement sont des fonctions ou des méthodes que vous écrivez pour répondre aux différents événements. Pour
garantir que le programme réagisse aux événements, vous devez ajouter des écouteurs d’événement soit à la cible
d’événement, soit à l’un des objets de la liste d’affichage qui font partie du flux d’événements de l’objet événement.
Chaque fois que vous écrivez un code d’écouteur d’événement, il suit cette structure de base (les éléments en gras sont
des espaces réservés que vous rempliriez pour votre cas particulier) :
function eventResponse(eventObject:EventType):void
{
// Actions performed in response to the event go here.
}
eventTarget.addEventListener(EventType.EVENT_NAME, eventResponse);
Ce code a un double rôle. Tout d’abord, il définit une fonction, qui est une manière de spécifier les actions à exécuter
en réponse à l’événement. Ensuite, il appelle la méthode addEventListener() de l’objet source, « inscrivant » ainsi
la fonction auprès de l’événement spécifié de sorte que lorsque l’événement survient, les actions de la fonction ont lieu.
Lorsque l’événement se produit, la cible de l’événement vérifie sa liste de toutes les fonctions et méthodes enregistrées
en tant qu’écouteurs d’événement. Elle appelle ensuite chacune d’elles, transmettant l’objet événement à titre de
paramètre.
Vous devez apporter quatre modifications à ce code pour créer votre propre écouteur d’événement. Premièrement,
vous devez remplacer le nom de la fonction par celui que vous souhaitez utiliser (ceci doit être modifié à deux endroits,
là où le code indique eventResponse). Deuxièmement, vous devez spécifier le nom de la classe de l’objet événement
qui est envoyé par l’événement que vous souhaitez écouter (EventType dans le code), et vous devez indiquer la
constante pour l’événement en question (EVENT_NAME dans la liste). Troisièmement, vous devez appeler la
méthode addEventListener() sur l’objet qui enverra l’événement (eventTarget dans ce code). Vous pouvez
également modifier le nom de la variable utilisée comme paramètre de la fonction (eventObject dans ce code).
Concepts importants et terminologie
La liste de référence suivante contient des termes importants utilisés dans le cadre de la rédaction de routines de
gestion des événements :
Propagation Certains événements donnent lieu à une propagation afin de permettre à un objet d’affichage parent de
réagir aux événements distribués par ses enfants.
Phase de propagation Partie du flux d’événements dans laquelle un événement est propagé jusqu’aux objets
d’affichage parent. La phase de propagation suit la phase de capture et la phase cible.
Phase de capture Partie du flux d’événements dans laquelle un événement se propage de la cible la plus générale vers
l’objet cible le plus spécifique. La phase de capture précède la phase cible et la phase de propagation.
Comportement par défaut Certains événements sont liés à un comportement appelé comportement par défaut. Par
exemple, lorsqu’un utilisateur tape du texte dans un champ, un événement de saisie de texte est déclenché. Le
comportement par défaut de cet événement consiste à afficher le caractère tapé dans le champ de texte—mais vous
pouvez annuler ce comportement par défaut (si vous ne souhaitez pas afficher le caractère tapé, par exemple).
Distribuer Indiquer à des écouteurs d’événements qu’un événement a eu lieu.
Evénement Opération subie par un objet et que ce dernier peut signaler à d’autres objets.
Flux d’événements Lorsque des événements concernent un objet de la liste d’affichage (un objet affiché à l’écran), tous
les objets qui contiennent cet objet sont informés de l’événement et avertissent à leur tour les écouteurs d’événements
correspondants. Ce processus commence avec la scène et se poursuit à travers la liste d’affichage jusqu’à l’objet réel où
s’est produit l’événement. Il recommence ensuite avec la scène. Ce processus est appelé flux d’événements.
GUIDE DU DÉVELOPPEUR D’ACTIONSCRIPT 3.0 131
Gestion des événements
Dernière mise à jour le 27/4/2013
Objet événement Objet contenant des informations sur l’occurrence d’un événement particulier, qui est envoyé à tous
les écouteurs lorsqu’un événement est distribué.
Cible d’événement Objet qui envoie un événement. Par exemple, si l’utilisateur clique sur un bouton situé dans un
Sprite se trouvant dans la scène, tous ces objets envoient des événements mais c’est au niveau de la cible d’événement
que se produit l’événement (le bouton cliqué, dans ce cas).
Ecouteur Objet ou fonction qui s’est enregistré auprès d’un objet pour indiquer qu’il doit être averti lorsqu’un
événement spécifique se produit.
Phase cible Stade du flux d’événements où un événement atteint la cible la plus spécifique possible. La phase cible se
produit entre la phase de capture et la phase de propagation.
Variation de la gestion d’événements dans
ActionScript 3.0 par rapport aux versions antérieures
Flash Player 9 et les versions ultérieures, Adobe AIR 1.0 et les versions ultérieures
En ce qui concerne la gestion des événements, la différence la plus évidente entre ActionScript 3.0 et les versions
antérieures est qu’ActionScript 3.0 comprend un seul système de gestion des événements alors que les anciennes
versions d’ActionScript en comptent plusieurs. Cette section commence par une présentation générale du
fonctionnement de la gestion des événements dans les versions précédentes, puis étudie les nouveautés qu’apporte
ActionScript 3.0 dans ce domaine.
Gestion des événements dans les versions précédentes d’ActionScript
Flash Player 9 et les versions ultérieures, Adobe AIR 1.0 et les versions ultérieures
Antérieurement à ActionScript 3.0, le langage ActionScript fournissait plusieurs méthodes de gestion des événements :
• Les gestionnaires d’événement on(), qui peuvent se placer directement sur des occurrences Button et MovieClip
• Les gestionnaires d’événement onClipEvent(), qui peuvent se placer directement sur des occurrences MovieClip
• Des propriétés de fonction de rappel, telles que XML.onload et Camera.onActivity
• Des écouteurs d’événement, que vous pouvez enregistrer à l’aide de la méthode addListener()
• La classe UIEventDispatcher, qui implémentait partiellement le modèle d’événements DOM
Chacun de ces mécanismes présente des avantages et des inconvénients. Les gestionnaires on() et onClipEvent()
sont simples d’utilisation, mais compliquent la maintenance des projets car il peut s’avérer difficile de localiser le code
placé directement sur les boutons ou les clips. Les fonctions de rappel sont également faciles à implémenter, mais
imposent une limite d’une seule fonction de rappel par événement. L’implémentation des écouteurs d’événement est
plus complexe : ils nécessitent non seulement la création d’un objet et d’une fonction d’écouteur, mais aussi
l’enregistrement de l’écouteur auprès de l’objet qui génère l’événement. Bien qu’elle accroisse le temps système
nécessaire, cette solution vous permet de créer plusieurs objets écouteur et de tous les enregistrer pour le même
événement.
Dans ActionScript 2.0, le développement des composants engendrait un modèle d’événements encore différent. Ce
nouveau modèle, caractérisé par la classe UIEventDispatcher, reposait sur un sous-ensemble de la spécification
d’événements DOM. Ainsi, pour les développeurs accoutumés à la gestion des événements de composant, le passage
au nouveau modèle d’événements d’ActionScript 3.0 se fera sans trop de difficultés.
GUIDE DU DÉVELOPPEUR D’ACTIONSCRIPT 3.0 132
Gestion des événements
Dernière mise à jour le 27/4/2013
Malheureusement, si l’on constate des recoupements entre les divers modèles d’événements, il existe aussi des
différences. Par exemple, dans ActionScript 2.0, certaines propriétés, telles que TextField.onChanged, peuvent
s’utiliser soit comme fonction de rappel, soit comme écouteur d’événement. Toutefois, la syntaxe qui permet
d’enregistrer les objets écouteurs varie selon que vous utilisez l’une des six classes qui prennent en charge les écouteurs
ou la classe UIEventDispatcher. Pour les classes Key, Mouse, MovieClipLoader, Selection, Stage et TextField, vous
utilisez la méthode addListener(), mais pour la gestion des événements de composant, vous utilisez une méthode
appelée addEventListener().
La multiplicité des modèles de gestion d’événements a fait naître une autre complexité : l’étendue de la fonction de
gestionnaire d’événement variait largement en fonction du mécanisme utilisé. En d’autres termes, la signification du
mot-clé this n’était pas cohérente sur l’ensemble des systèmes de gestion d’événements.
Gestion d’événements dans ActionScript 3.0
Flash Player 9 et les versions ultérieures, Adobe AIR 1.0 et les versions ultérieures
ActionScript 3.0 utilise pour la première fois un modèle de gestion d’événements qui vient remplacer les nombreux
mécanismes qui existaient dans les précédentes versions du langage. Le nouveau modèle d’événements repose sur la
spécification d’événements de niveau 3 DOM (Document Object Model). Bien que le format de fichier SWF ne suive
pas spécifiquement la norme DOM, il existe suffisamment de similitudes entre la liste d’affichage et la structure du
DOM pour permettre l’implémentation de ce modèle d’événements. Un objet de la liste d’affichage est semblable à un
noeud de la structure hiérarchique du DOM ; dans ce chapitre, les termes objet de liste d’affichage et noeud sont
d’ailleurs utilisés de façon interchangeable.
L’implémentation du modèle d’événements DOM dans Flash Player et AIR comprend un concept appelé
« comportements par défaut ». Un comportement par défaut est une action que Flash Player ou AIR effectue comme
conséquence normale de certains événements.
Comportements par défaut
Les développeurs se chargent normalement d’écrire le code qui permet de répondre aux événements. Dans certains
cas, cependant, un comportement est si couramment associé à un événement que Flash Player ou AIR l’exécute
automatiquement, sauf si le développeur ajoute du code pour annuler son exécution. Comme Flash Player ou AIR se
livre automatiquement à cette opération, on parle de comportements par défaut.
Par exemple, lorsqu’un utilisateur entre du texte dans un objet TextField, il est si courant de voir s’afficher la saisie dans
l’objet TextField en question que ce comportement est prédéfini dans Flash Player ou AIR. Si vous ne souhaitez pas
conserver ce comportement par défaut, vous pouvez l’annuler à l’aide du système de gestion des événements.
Lorsqu’un utilisateur entre du texte dans un objet TextField, Flash Player ou AIR crée une occurrence de la classe
TextEvent afin de représenter cette saisie. Pour éviter que Flash Player ou AIR n’affiche le texte dans l’objet TextField,
vous devez accéder à cette occurrence de TextEvent spécifique et appeler sa méthode preventDefault().
Certains comportements par défaut ne peuvent pas être évités. Par exemple, Flash Player et AIR génèrent un objet
MouseEvent lorsque l’utilisateur double-clique sur un mot dans un objet TextField. Le comportement par défaut, qui
ne peut être évité, consiste à mettre en évidence le mot situé sous le curseur.
De nombreux types d’objets événement ne sont associés à aucun comportement par défaut. Par exemple, l’objet
événement Connect, que Flash Player distribue lorsqu’une connexion réseau est établie, n’est associé à aucun
comportement par défaut. La documentation de l’API relative à la classe Event et ses sous-classes fait l’inventaire de
chaque type d’événement, décrit le comportement par défaut qui lui est éventuellement associé et indique si ce dernier
peut être évité.
GUIDE DU DÉVELOPPEUR D’ACTIONSCRIPT 3.0 133
Gestion des événements
Dernière mise à jour le 27/4/2013
Il est important de comprendre que les comportements par défaut sont uniquement associés à des objets événements
distribués par Flash Player ou AIR ; il n’en existe aucun pour les objets événements distribués via ActionScript par
programmation. Par exemple, vous pouvez utiliser les méthodes de la classe EventDispatcher pour distribuer un objet
événement du type textInput, mais cet objet ne sera associé à aucun comportement par défaut. En d’autres termes,
Flash Player et AIR n’affichent aucun caractère dans un objet TextField en réponse à un événement textInput que
vous avez distribué par programmation.
Nouveautés des écouteurs d’événement dans ActionScript 3.0
Pour les développeurs qui connaissent bien la méthode ActionScript 2.0 addListener(), il peut être utile de souligner
les différences entre le modèle d’écouteur d’événement d’ActionScript 2.0 et le modèle d’événements
d’ActionScript 3.0. La liste ci-après décrit les principales différences entre ces deux modèles d’événements :
• Pour ajouter des écouteurs d’événement dans ActionScript 2.0, vous utilisez, selon le cas, addListener() ou
addEventListener(). Dans ActionScript 3.0, il faut utiliser addEventListener() dans tous les cas.
• ActionScript 2.0 ne propose aucun flux d’événements dans ActionScript 2.0, ce qui signifie que la méthode
addListener() peut uniquement être appelée sur l’objet qui émet l’événement. Dans ActionScript 3.0, la méthode
addEventListener() peut être appelée sur tout objet faisant partie du flux d’événements.
• Dans ActionScript 2.0, les écouteurs d’événement peuvent être des fonctions, des méthodes ou des objets, alors que
dans ActionScript 3.0, seules les fonctions et les méthodes peuvent agir comme écouteurs d’événement.
Flux d’événements
Flash Player 9 et les versions ultérieures, Adobe AIR 1.0 et les versions ultérieures
Flash Player ou AIR distribue des objets événements dès que survient un événement. Si la cible d’événement ne se
trouve pas dans la liste d’affichage, Flash Player ou AIR distribue l’objet événement directement à la cible. Par exemple,
Flash Player distribue l’objet événement Progress directement à un objet URLStream. Cependant, si la cible
d’événement se trouve dans la liste d’affichage, Flash Player distribue l’objet événement à la liste d’affichage, dans
laquelle l’objet chemine jusqu’à atteindre la cible d’événement.
Le flux d’événements représente le parcours que suivra un objet événement dans la liste d’affichage. Cette liste
s’organise de manière hiérarchique, pour constituer une arborescence. Au sommet de la liste d’affichage se trouve la
scène, un conteneur d’objet d’affichage spécial qui lui sert de racine. La Scène, représentée par la classe
flash.display.Stage, est uniquement accessible via un objet d’affichage. Chaque objet d’affichage présente une propriété
appelée stage, qui renvoie à la scène de cette application.
Lorsque Flash Player ou AIR distribue un objet d’événement pour un événement associé à une liste d’affichage, celuici
effectue un aller-retour entre la Scène et le noeud cible. Selon la définition de la spécification d’événements DOM, le
noeud cible est le noeud qui représente la cible d’événement. En d’autres termes, le noeud cible est l’objet de la liste
d’affichage au niveau duquel est survenu l’événement. Par exemple, si l’utilisateur clique sur un objet de la liste
d’affichage appelé child1, Flash Player ou AIR distribue un objet événement dont le noeud cible est child1.
Le flux d’événements se décompose en trois phases. La première correspond à la phase de capture, qui comprend tous
les noeuds de la Scène jusqu’au parent du noeud cible. La deuxième partie est appelée la phase cible, qui comprend
uniquement le noeud cible. La troisième partie s’appelle la phase de propagation. Elle comprend les noeuds rencontrés
lors du cheminement du parent du noeud cible jusqu’à la scène.
GUIDE DU DÉVELOPPEUR D’ACTIONSCRIPT 3.0 134
Gestion des événements
Dernière mise à jour le 27/4/2013
Le nom de ces phases prend tout son sens si vous envisagez la liste d’affichage comme une hiérarchie verticale dont le
sommet est la Scène, comme illustré par le schéma suivant :
Si un utilisateur clique sur Child1 Node, Flash Player ou AIR distribue un objet événement dans ce flux d’événements.
Comme le montre l’illustration suivante, le parcours de l’objet commence à Scène. L’objet descend ensuite jusqu’à
Noeud parent, puis vers Noeud enfant1. Il se propage alors vers le haut jusqu’à Scène, en repassant par Noeud parent
pour rejoindre Scène.
Dans cet exemple, la phase de capture comprend Scène et Noeud parent pendant le trajet descendant initial. La phase
cible comprend le temps passé au noeud Noeud enfant1. La phase de propagation comprend les noeuds Noeud parent
et Scène, qui se trouvent sur le chemin du retour vers le noeud racine.
Le flux d’événements contribue au renforcement du système de gestion des événements par rapport aux versions
précédentes d’ActionScript. Dans ces dernières, le flux d’événements est inexistant, ce qui signifie que les écouteurs
d’événement s’ajoutent uniquement à l’objet qui génère l’événement. Dans ActionScript 3.0, vous pouvez ajouter des
écouteurs d’événement aussi bien à un noeud cible qu’à tout autre noeud du flux d’événements.
Cette possibilité d’ajouter des écouteurs d’événement tout au long du flux d’événements s’avère particulièrement utile
lorsqu’un composant d’interface comprend plusieurs objets. Par exemple, un objet bouton contient souvent un objet
texte qui sert de libellé au bouton. Sans la possibilité d’ajouter un écouteur au flux d’événements, il faudrait en ajouter
un à l’objet bouton et un à l’objet texte pour être sûr d’être averti des événements de clic survenant à tout endroit du
bouton. Le flux d’événements vous permet, au contraire, de placer un seul écouteur d’événement sur l’objet bouton
afin de gérer les événements de clic, qu’ils se produisent sur l’objet texte ou sur des zones de l’objet bouton non
couvertes par l’objet texte.
Cependant, certains objets événements ne participent pas aux trois phases du flux d’événements. Certains types
d’événements, tels que enterFrame et init, sont distribués directement au noeud cible et ne participent ni à la phase
de capture, ni à la phase de propagation. D’autres événements peuvent cibler des objets qui ne font pas partie de la liste
d’affichage, par exemple les événements distribués à une occurrence de la classe Socket. Ces objets événements
aboutissent directement à l’objet cible, sans participer à la phase de capture et de propagation.
Scène
Noeud parent
Noeud enfant1 Noeud enfant2
GUIDE DU DÉVELOPPEUR D’ACTIONSCRIPT 3.0 135
Gestion des événements
Dernière mise à jour le 27/4/2013
Pour savoir comment se comporte un type d’événement particulier, vous pouvez consulter la documentation de l’API
ou examiner les propriétés de l’objet événement. Cette dernière méthode est décrite à la section suivante.
Objets événement
Flash Player 9 et les versions ultérieures, Adobe AIR 1.0 et les versions ultérieures
Les objets événements jouent deux rôles essentiels dans le nouveau système de gestion des événements. Tout d’abord,
ces objets représentent de véritables événements, puisqu’ils stockent dans un ensemble de propriétés des informations
relatives à des événements précis. Ils contiennent en outre un jeu de méthodes qui vous permet de manipuler les objets
événement et d’agir sur le comportement du système de gestion des événements.
Pour faciliter l’accès à ces propriétés et ces méthodes, l’API Flash Player définit une classe Event qui constitue la classe
de base de tous les objets événements. La classe Event définit un jeu fondamental de propriétés et de méthodes
commun à tous les objets événement.
Cette section commence par étudier les propriétés de la classe Event avant de décrire les méthodes de cette même
classe, puis explique l’existence de sous-classes dans la classe Event.
Présentation des propriétés de la classe Event
Flash Player 9 et les versions ultérieures, Adobe AIR 1.0 et les versions ultérieures
La classe Event définit plusieurs propriétés et constantes en lecture seule qui fournissent des informations essentielles
sur l’objet événement. Les points suivants revêtent une importance particulière :
• Les types d’objet événement sont représentés par des constantes et stockés dans la propriété Event.type.
• La possibilité d’éviter le comportement par défaut d’un événement est représentée par une valeur booléenne,
stockée dans la propriété Event.cancelable.
• Les informations relatives au flux d’événements se trouvent dans les propriétés restantes.
Types d’objets événement
Chaque objet événement est associé à un type d’événement. Les types d’événements sont stockés dans la propriété
Event.type sous forme de chaîne. Il est utile de connaître le type d’un objet événement car votre code peut alors
distinguer les objets de types différents. Par exemple, le code suivant spécifie que la fonction clickHandler() doit
répondre à tous les objets événements clic de souris transmis à myDisplayObject :
myDisplayObject.addEventListener(MouseEvent.CLICK, clickHandler);
La classe Event est elle-même associée à deux douzaines de types d’événement, représentés par des constantes de la
classe Event. Dans cet extrait de la définition de la classe Event, certaines de ces constantes sont illustrées :
package flash.events
{
public class Event
{
// class constants
public static const ACTIVATE:String = "activate";
public static const ADDED:String= "added";
// remaining constants omitted for brevity
}
}
GUIDE DU DÉVELOPPEUR D’ACTIONSCRIPT 3.0 136
Gestion des événements
Dernière mise à jour le 27/4/2013
Ces constantes permettent de faire facilement référence à des types d’événement précis. Vous devez utiliser ces
constantes au lieu des chaînes qu’elles représentent. Si vous orthographiez de manière incorrecte un nom de constante
dans votre code, le compilateur peut détecter l’erreur. Si vous utilisez les chaînes qu’elles représentent, une erreur de
frappe ne sera pas forcément détectée lors de la compilation et pourrait provoquer un comportement inattendu,
difficile à déboguer. Par exemple, utilisez le code suivant pour ajouter un écouteur d’événement :
myDisplayObject.addEventListener(MouseEvent.CLICK, clickHandler);
plutôt que :
myDisplayObject.addEventListener("click", clickHandler);
Informations relatives aux comportements par défaut
Le code que vous écrivez est en mesure de vérifier si le comportement par défaut d’un objet événement donné peut être
évité. Pour ce faire, il doit accéder à la propriété cancelable. La propriété cancelable contient une valeur booléenne
qui indique si le comportement par défaut peut être évité ou non. Vous pouvez éviter, ou annuler, le comportement
par défaut de quelques événements à l’aide de la méthode preventDefault(). Pour plus d’informations, voir
Annulation d’un comportement associé par défaut à un événement sous « Présentation des méthodes de la classe
Event » à la page 137.
Informations de flux d’événements
Les propriétés restantes de la classe Event contiennent des informations importantes sur l’objet événement et ses
relations au flux d’événements, comme l’explique la liste suivante :
• La propriété bubbles contient des informations sur les parties du flux d’événements auquel participe l’objet
événement.
• La propriété eventPhase indique la phase actuelle du flux d’événements.
• La propriété target stocke une référence à la cible d’événement.
• La propriété currentTarget stocke une référence de l’objet de liste d’affichage qui traite actuellement l’objet
événement.
La propriété bubbles
On dit d’un événement qu’il se propage lorsqu’il participe à la phase de propagation du flux d’événements, c’est-à-dire
quand l’objet événement est transmis du noeud cible via ses ascendants jusqu’à la Scène. La propriété Event.bubbles
stocke une valeur booléenne qui indique si l’objet événement participe à la phase de propagation. Tous les événements
qui se propagent vers le haut participent également aux phases de capture et cible ; de tels événements participent donc
aux trois phases du flux d’événements. Si la valeur est true, l’objet événement participe aux trois phrases. Si la valeur
est false, l’objet événement ne participe pas à la phase de propagation.
La propriété eventPhase
Vous pouvez déterminer la phase d’événement de tout objet événement grâce à sa propriété eventPhase. La propriété
eventPhase a pour valeur un entier non signé qui représente l’une des trois phases du flux d’événements. L’API de
Flash Player définit une classe EventPhase distincte qui contient trois constantes correspondant aux trois valeurs
entières non signées, comme illustré par l’extrait de code suivant :
GUIDE DU DÉVELOPPEUR D’ACTIONSCRIPT 3.0 137
Gestion des événements
Dernière mise à jour le 27/4/2013
package flash.events
{
public final class EventPhase
{
public static const CAPTURING_PHASE:uint = 1;
public static const AT_TARGET:uint = 2;
public static const BUBBLING_PHASE:uint= 3;
}
}
Ces constantes correspondent aux trois valeurs valables pour la propriété eventPhase. Vous pouvez utiliser ces
constantes pour améliorer la lisibilité de votre code. Supposons par exemple que vous souhaitiez être sûr qu’une
fonction appelée myFunc() soit uniquement appelée lorsque la cible d’événement se trouve dans la scène cible. Le code
suivant vous permet de tester cette condition :
if (event.eventPhase == EventPhase.AT_TARGET)
{
myFunc();
}
La propriété target
La propriété target contient une référence à l’objet cible de l’événement. Dans certains cas, ce système est simple, par
exemple, lorsqu’un micro devient actif, la cible de l’objet événement est l’objet Microphone. Toutefois, si la cible se
trouve sur la liste d’affichage, il faut tenir compte de la hiérarchie de cette dernière. Par exemple, si un utilisateur clique
avec la souris sur un point correspondant à plusieurs objets de la liste d’affichage qui se chevauchent, Flash Player
et AIR choisissent toujours comme cible d’événement l’objet qui se trouve le plus loin de la Scène.
Dans des fichiers SWF complexes, et particulièrement ceux dont les boutons sont régulièrement ornés d’objets enfant
plus petits, la propriété target ne doit pas être utilisée fréquemment car elle pointera souvent vers l’objet enfant du
bouton plutôt que vers le bouton lui-même. Dans de telles situations, il est courant d’ajouter des écouteurs
d’événement au bouton et d’utiliser la propriété currentTarget. En effet, cette dernière pointe vers le bouton alors
que la propriété target peut pointer vers l’un des enfants du bouton.
La propriété currentTarget
La propriété currentTarget contient une référence de l’objet de liste d’affichage qui traite actuellement l’objet
événement. Même s’il peut paraître étrange de ne pas savoir quel noeud traite actuellement l’objet événement que vous
étudiez, gardez à l’esprit que vous pouvez ajouter une fonction écouteur à n’importe quel objet d’affichage du flux
d’événements de l’objet événement en question. En outre, cette fonction écouteur peut être placée à tout endroit. Par
ailleurs, la même fonction écouteur peut être ajoutée à différents objets d’affichage. L’utilité de la propriété
currentTarget augmente donc avec la taille et la complexité du projet.
Présentation des méthodes de la classe Event
Flash Player 9 et les versions ultérieures, Adobe AIR 1.0 et les versions ultérieures
La classe Event contient trois catégories de méthodes :
• Les méthodes d’utilitaire, qui peuvent créer des copies d’un objet événement ou le convertir en chaîne
• Les méthodes de flux d’événements, qui suppriment les objets événements du flux d’événements
• Les méthodes de comportement par défaut, qui annulent le comportement par défaut ou vérifient s’il a été annulé
GUIDE DU DÉVELOPPEUR D’ACTIONSCRIPT 3.0 138
Gestion des événements
Dernière mise à jour le 27/4/2013
Méthodes d’utilitaire de la classe Event
La classe Event compte deux méthodes d’utilitaire. La méthode clone() permet de créer des copies d’un objet
événement. La méthode toString() permet de représenter sous forme de chaînes les propriétés d’un objet événement
ainsi que leurs valeurs. Bien qu’utilisées en interne par le modèle d’événements, ces deux méthodes sont mises à la
disposition des développeurs pour un usage générique.
Pour les développeurs expérimentés qui souhaitent créer des sous-classes de la classe Event, il est nécessaire de
redéfinir et d’implémenter des versions de ces deux méthodes d’utilitaires afin de garantir le bon fonctionnement de
la sous-classe d’événement.
Arrêt du flux d’événements
La méthode Event.stopPropagation() ou Event.stopImmediatePropagation() vous permet d’arrêter le
cheminement d’un objet événement dans le flux d’événements. Quasi identiques, ces deux méthodes diffèrent
uniquement en ce que les autres écouteurs d’événement du noeud actuel sont autorisés ou non à s’exécuter :
• La méthode Event.stopPropagation() empêche l’objet événement de passer au noeud suivant mais seulement
après que tous les autres écouteurs du noeud actuel ont été autorisés à s’exécuter.
• La méthode Event.stopImmediatePropagation() empêche l’objet événement de passer au noeud suivant sans
autoriser les autres écouteurs du noeud actuel à s’exécuter.
Quelle que soit la méthode appelée, elle n’a aucun effet sur la réalisation du comportement par défaut de l’événement.
Utilisez les méthodes de comportement par défaut de la classe Event pour éviter le comportement par défaut.
Annulation d’un comportement associé par défaut à un événement
Deux méthodes sont associées à l’annulation du comportement par défaut : preventDefault() et
isDefaultPrevented(). Appelez la méthode preventDefault() pour annuler le comportement associé par défaut
à un événement. Pour vérifier si preventDefault() a déjà été appelée sur un objet événement, appelez la méthode
isDefaultPrevented(), qui renvoie la valeur true si la méthode a déjà été appelée, false dans le cas contraire.
La méthode preventDefault() fonctionne uniquement s’il est possible d’annuler le comportement par défaut de
l’événement. Pour vérifier que c’est le cas, reportez-vous à la documentation de l’API de ce type d’événement ou
examinez la propriété cancelable de l’objet événement à l’aide du code ActionScript.
L’annulation du comportement par défaut n’a aucun effet sur la progression d’un objet événement dans le flux
d’événements. Utilisez les méthodes de flux d’événements de la classe Event pour supprimer un objet événement du
flux d’événements.
Sous-classes de la classe Event
Flash Player 9 et les versions ultérieures, Adobe AIR 1.0 et les versions ultérieures
Pour de nombreux événements, le jeu de propriétés commun, défini dans la classe Event est suffisant. Néanmoins,
d’autres événements présentent des caractéristiques exclusives qui ne peuvent être capturées par les propriétés
disponibles dans la classe Event. Pour ces événements, ActionScript 3.0 définit plusieurs sous-classes de la classe
Evénement.
Chaque sous-classe fournit d’autres propriétés et types d’événements propres à la catégorie d’événement considérée.
Par exemple, les événements liés aux actions de la souris présentent plusieurs caractéristiques uniques, que les
propriétés définies dans la classe Event ne peuvent capturer. La classe MouseEvent constitue une extension de la classe
Event puisqu’elle ajoute dix propriétés contenant des informations telles que l’emplacement de l’événement de souris
et les éventuelles touches actionnées en même temps.
GUIDE DU DÉVELOPPEUR D’ACTIONSCRIPT 3.0 139
Gestion des événements
Dernière mise à jour le 27/4/2013
Une sous-classe d’Event contient également des constantes qui représentent de types d’événement associés à la sousclasse.
Par exemple, la classe MouseEvent définit des constantes pour plusieurs types d’événement de souris,
notamment click, doubleClick, mouseDown et mouseUp.
Comme le décrit la section consacrée aux méthodes d’utilitaire de la classe Event dans « Objets événement » à la
page 135, lors de la création d’une sous-classe d’Event, vous devez bloquer les méthodes clone() et toString() pour
fournir la fonctionnalité propre à la sous-classe.
Ecouteurs d’événement
Flash Player 9 et les versions ultérieures, Adobe AIR 1.0 et les versions ultérieures
Les écouteurs d’événement, également appelés gestionnaires d’événements, sont des fonctions que Flash Player et AIR
exécutent en réponse à des événements déterminés. La procédure d’ajout d’un écouteur d’événement se déroule en
deux temps. En premier lieu, vous créez une fonction ou méthode de classe que Flash Player ou AIR doit exécuter en
réponse à l’événement. On parle parfois de fonction d’écouteur ou de fonction de gestionnaire d’événement. En second
lieu, vous utilisez la méthode addEventListener() pour enregistrer la fonction d’écouteur auprès de la cible de
l’événement ou tout autre objet de la liste d’affichage qui appartient au flux d’événements approprié.
Création d’une fonction d’écouteur
Flash Player 9 et les versions ultérieures, Adobe AIR 1.0 et les versions ultérieures
La création d’une fonction d’écouteur est un domaine dans lequel le modèle d’événements ActionScript 3.0 diffère du
modèle d’événements DOM. Dans le modèle d’événements DOM, on distingue clairement un écouteur d’événement
et une fonction d’écouteur : un écouteur d’événement est une occurrence de classe qui implémente l’interface
EventListener, tandis qu’une fonction d’écouteur est une méthode de cette classe appelée handleEvent(). Dans le
modèle d’événements DOM, vous enregistrez l’occurrence de classe qui contient la fonction d’écouteur, plutôt que la
fonction d’écouteur elle-même.
Le modèle d’événements ActionScript ne fait aucune distinction entre l’écouteur d’événement et la fonction
d’écouteur. L’interface EventListener est inexistante dans ActionScript 3.0 et les fonctions d’écouteur peuvent être
définies en dehors de toute classe ou au sein d’une classe. Par ailleurs, il n’est pas nécessaire de nommer les fonctions
d’écouteur handleEvent() ; vous pouvez utiliser tout identifiant valable. Dans ActionScript 3.0, vous enregistrez le
nom de la fonction d’écouteur elle-même.
Fonction d’écouteur définie en dehors de toute classe
Le code suivant crée un fichier SWF simple qui affiche une forme carrée de couleur rouge. Une fonction d’écouteur
appelée clickHandler(), qui n’appartient à aucune classe, écoute les événements de clic de souris dans le carré rouge.
GUIDE DU DÉVELOPPEUR D’ACTIONSCRIPT 3.0 140
Gestion des événements
Dernière mise à jour le 27/4/2013
package
{
import flash.display.Sprite;
public class ClickExample extends Sprite
{
public function ClickExample()
{
var child:ChildSprite = new ChildSprite();
addChild(child);
}
}
}
import flash.display.Sprite;
import flash.events.MouseEvent;
class ChildSprite extends Sprite
{
public function ChildSprite()
{
graphics.beginFill(0xFF0000);
graphics.drawRect(0,0,100,100);
graphics.endFill();
addEventListener(MouseEvent.CLICK, clickHandler);
}
}
function clickHandler(event:MouseEvent):void
{
trace("clickHandler detected an event of type: " + event.type);
trace("the this keyword refers to: " + this);
}
Lorsqu’un utilisateur interagit avec le fichier SWF résultant, en cliquant sur le carré, Flash Player ou AIR génère la
sortie de suivi ci-après :
clickHandler detected an event of type: click
the this keyword refers to: [object global]
Notez que l’objet événement est transmis sous forme d’instruction à clickHandler(). Cela permet à votre fonction
d’écouteur d’examiner l’objet événement. Dans cet exemple, vous utilisez la propriété type de l’objet événement pour
vérifier que cet événement correspond à un clic.
L’exemple vérifie aussi la valeur du mot-clé this. Dans ce cas, this représente l’objet global, ce qui est logique puisque
la fonction est définie en dehors de toute classe ou objet personnalisé.
Fonction d’écouteur définie comme méthode de classe
L’exemple ci-dessous est identique au précédent, qui définit la classe ClickExample, sauf que la fonction
clickHandler() est définie comme méthode de la classe ChildSprite :
GUIDE DU DÉVELOPPEUR D’ACTIONSCRIPT 3.0 141
Gestion des événements
Dernière mise à jour le 27/4/2013
package
{
import flash.display.Sprite;
public class ClickExample extends Sprite
{
public function ClickExample()
{
var child:ChildSprite = new ChildSprite();
addChild(child);
}
}
}
import flash.display.Sprite;
import flash.events.MouseEvent;
class ChildSprite extends Sprite
{
public function ChildSprite()
{
graphics.beginFill(0xFF0000);
graphics.drawRect(0,0,100,100);
graphics.endFill();
addEventListener(MouseEvent.CLICK, clickHandler);
}
private function clickHandler(event:MouseEvent):void
{
trace("clickHandler detected an event of type: " + event.type);
trace("the this keyword refers to: " + this);
}
}
Lorsqu’un utilisateur interagit avec le fichier SWF résultant, en cliquant sur le carré rouge, Flash Player ou AIR génère
la sortie de suivi ci-après :
clickHandler detected an event of type: click
the this keyword refers to: [object ChildSprite]
Notez que le mot-clé this renvoie à l’occurrence de ChildSprite appelée child. Voici un changement de
comportement par rapport à ActionScript 2.0. Si vous utilisiez des composants dans ActionScript 2.0, vous vous
rappelez sans doute que lorsqu’une méthode de classe était transmise à UIEventDispatcher.addEventListener(),
l’étendue de la méthode était liée au composant qui émettait l’événement, et non à la classe dans laquelle la méthode
d’écouteur était définie. En d’autres termes, si vous utilisiez cette technique dans ActionScript 2.0, le mot-clé this
renvoyait au composant émettant l’événement et non à l’occurrence de ChildSprite.
Pour certains développeurs, il s’agissait d’un vrai problème car cela signifiait qu’ils ne pouvaient accéder à aucune autre
méthode et propriété de la classe qui contenait la méthode d’écouteur. Pour le contourner, les programmeurs
d’ActionScript 2.0 pouvaient utiliser la classe mx.util.Delegate pour modifier l’étendue de la méthode d’écouteur.
Cette manipulation n’est plus nécessaire puisque ActionScript 3.0 crée une méthode liée lorsque
addEventListener() est appelée. Par conséquent, le mot-clé this fait référence à l’occurrence de ChildSprite
appelée child et le programmeur peut accéder aux autres méthodes et propriétés de la classe ChildSprite.
GUIDE DU DÉVELOPPEUR D’ACTIONSCRIPT 3.0 142
Gestion des événements
Dernière mise à jour le 27/4/2013
Ecouteur d’événement à ne pas utiliser
Une troisième technique permet de créer un objet générique dont l’une des propriétés pointe vers une fonction
d’écouteur affectée dynamiquement. Elle est cependant déconseillée. Nous l’évoquons ici en raison de son utilisation
courante dans ActionScript 2.0 ; il n’est toutefois pas recommandé de l’utiliser dans ActionScript 3.0. Cette mise en
garde tient au fait que le mot-clé this fera référence à l’objet global et non à l’objet écouteur.
L’exemple ci-après est identique à l’exemple précédent de la classe ClickExample, sauf que la fonction d’écouteur est
définie comme faisant partie d’un objet générique appelé myListenerObj :
package
{
import flash.display.Sprite;
public class ClickExample extends Sprite
{
public function ClickExample()
{
var child:ChildSprite = new ChildSprite();
addChild(child);
}
}
}
import flash.display.Sprite;
import flash.events.MouseEvent;
class ChildSprite extends Sprite
{
public function ChildSprite()
{
graphics.beginFill(0xFF0000);
graphics.drawRect(0,0,100,100);
graphics.endFill();
addEventListener(MouseEvent.CLICK, myListenerObj.clickHandler);
}
}
var myListenerObj:Object = new Object();
myListenerObj.clickHandler = function (event:MouseEvent):void
{
trace("clickHandler detected an event of type: " + event.type);
trace("the this keyword refers to: " + this);
}
Les résultats de trace seront les suivants :
clickHandler detected an event of type: click
the this keyword refers to: [object global]
On s’attendrait à ce que this fasse référence à myListenerObj et que la sortie de suivi soit [object Object], mais
le mot-clé renvoie en fait à l’objet global. Lorsque vous transmettez un nom de propriété dynamique comme
instruction à addEventListener(), Flash Player ou AIR est incapable de créer une méthode liée. En effet, ce que vous
transmettez comme paramètre listener n’est rien de plus que l’adresse mémoire de votre fonction d’écouteur ; Flash
Player et AIR n’ont aucun moyen de lier cette adresse à l’occurrence de myListenerObj.
GUIDE DU DÉVELOPPEUR D’ACTIONSCRIPT 3.0 143
Gestion des événements
Dernière mise à jour le 27/4/2013
Gestion des écouteurs d’événement
Flash Player 9 et les versions ultérieures, Adobe AIR 1.0 et les versions ultérieures
Vous pouvez gérer vos fonctions d’écouteur à l’aide des méthodes de l’interface IEventDispatcher. Cette interface est
la version ActionScript 3.0 de l’interface EventTarget du modèle d’événements DOM. Bien que le nom
IEventDispatcher semble impliquer que l’objet principal de la classe est l’envoi (ou la distribution) des objets
événements, les méthodes qui lui correspondent servent en fait plus souvent à l’enregistrement, la vérification et la
suppression des écouteurs d’événement. L’interface IEventDispatcher définit cinq méthodes, comme illustré dans le
code suivant :
package flash.events
{
public interface IEventDispatcher
{
function addEventListener(eventName:String,
listener:Object,
useCapture:Boolean=false,
priority:Integer=0,
useWeakReference:Boolean=false):Boolean;
function removeEventListener(eventName:String,
listener:Object,
useCapture:Boolean=false):Boolean;
function dispatchEvent(eventObject:Event):Boolean;
function hasEventListener(eventName:String):Boolean;
function willTrigger(eventName:String):Boolean;
}
}
L’API de Flash Player implémente l’interface IEventDispatcher à l’aide de la classe Event Dispatcher. Cette dernière
constitue la classe de base de toutes les classes pouvant servir de cibles d’événement ou faire partie d’un flux
d’événements. Par exemple, la classe DisplayObject hérite de la classe EventDispatcher, par conséquent, tout objet de
la liste d’affichage peut accéder aux méthodes de l’interface IEventDispatcher.
Ajout des écouteurs d’événement
La méthode addEventListener() est la clé de voûte de l’interface IEventDispatcher. Elle permet d’enregistrer les
fonctions d’écouteurs. Les deux paramètres requis sont type et listener. Le paramètre type spécifie le type
d’événement. Avec le paramètre listener, vous pouvez spécifier la fonction d’écouteur qui doit s’exécuter lorsque
l’événement survient. Le paramètre listener peut être une référence à une fonction ou une méthode de classe.
n’utilisez pas de parenthèses pour stipuler le paramètre listener. Par exemple, la fonction clickHandler() est
spécifiée sans parenthèses dans l’appel suivant à la méthode addEventListener() :
addEventListener(MouseEvent.CLICK, clickHandler)
Le paramètre useCapture de la méthode addEventListener() vous permet de contrôler la phase du flux
d’événements pendant laquelle votre écouteur sera actif. Si useCapture a la valeur true, votre écouteur sera actif
pendant la phase de capture du flux d’événements. Si useCapture a la valeur false, votre écouteur sera actif pendant
la phase cible et la phase de propagation du flux d’événements. Pour écouter un événement pendant toutes les phases
du flux d’événements, vous devez appeler deux fois addEventListener() ; la première fois, useCapture prend la
valeur true, la seconde fois, useCapture prend la valeur false.
GUIDE DU DÉVELOPPEUR D’ACTIONSCRIPT 3.0 144
Gestion des événements
Dernière mise à jour le 27/4/2013
Le paramètre priority de la méthode addEventListener() ne fait pas officiellement partie du modèle
d’événements DOM de niveau 3. Il est inclus dans ActionScript 3.0 pour vous offrir une plus grande souplesse dans
l’organisation de vos écouteurs d’événement. Lorsque vous appelez addEventListener(), vous pouvez définir la
priorité de cet écouteur d’événement en transmettant une valeur entière comme paramètre priority. La valeur par
défaut est 0. Vous pouvez toutefois utiliser une valeur entière négative ou positive. Plus le nombre est élevé, plus
l’exécution de l’écouteur d’événement est rapide. Les écouteurs d’événement de priorité équivalente sont exécutés
suivant l’ordre dans lequel ils ont été ajoutés : plus l’écouteur est ajouté tôt, plus il est exécuté rapidement.
Le paramètre useWeakReference vous permet de spécifier si la référence à la fonction d’écouteur est faible ou
normale. En lui attribuant la valeur true, vous évitez les situations dans lesquelles les fonctions d’écouteurs demeurent
dans la mémoire alors qu’elles sont inutiles. Flash Player et AIR utilisent une technique appelée nettoyage pour effacer
de la mémoire les objets qui ne servent plus. Un objet est considéré comme inutilisé lorsqu’il n’apparaît dans aucune
référence. Le nettoyeur de mémoire ignore les références faibles, c’est-à-dire qu’une fonction d’écouteur vers laquelle
pointe uniquement une référence faible est incluse dans le nettoyage.
Suppression des écouteurs d’événement
La méthode removeEventListener() permet de supprimer un écouteur d’événement dont vous n’avez plus besoin.
Il est judicieux de supprimer tous les écouteurs qui ne seront plus utilisés. Les paramètres requis sont notamment
eventName et listener, soit les mêmes que ceux requis pour la méthode addEventListener(). Rappel : pour
écouter les événements pendant toutes les phases du flux d’événements, vous pouvez appeler addEventListener()
deux fois, en attribuant à useCapture la valeur true la première, puis false la seconde. Pour supprimer les deux
écouteurs d’événement, il serait nécessaire d’appeler removeEventListener() à deux reprises, la première fois en
attribuant la valeur true à useCapture, la seconde fois en utilisant la valeur false.
Distribution d’événements
La méthode dispatchEvent() peut servir aux développeurs chevronnés pour distribuer un objet événement
personnalisé dans le flux d’événements. Cette méthode accepte un seul paramètre, une référence à l’objet événement,
qui doit être une occurrence de la classe Event ou de l’une de ces sous-classes. Après distribution, la propriété target
de l’objet événement est définie avec l’objet sur lequel portait l’appel dispatchEvent().
Vérification des écouteurs d’événement existants
Les deux dernières méthodes de l’interface IEventDispatcher fournissent des informations précieuses sur l’existence
des écouteurs d’événement. La méthode hasEventListener() renvoie la valeur true si un écouteur d’événement est
détecté pour un type d’événement spécifique sur un objet particulier de la liste d’affichage. La méthode
willTrigger() renvoie également la valeur true si un écouteur est détecté pour un objet donné de la liste d’affichage.
Cependant willTrigger() vérifie les écouteurs sur l’objet d’affichage en question mais également sur tous les
ascendants de cet objet dans l’ensemble des phases du flux d’événements.
GUIDE DU DÉVELOPPEUR D’ACTIONSCRIPT 3.0 145
Gestion des événements
Dernière mise à jour le 27/4/2013
Evénements d’erreur sans écouteurs
Flash Player 9 et les versions ultérieures, Adobe AIR 1.0 et les versions ultérieures
Plus que les événements, les exceptions constituent le mécanisme principal de gestion des erreurs dans
ActionScript 3.0. Toutefois, la gestion des exceptions ne fonctionne pas sur les opérations asynchrones telles que les
chargements de fichiers. Si une erreur survient pendant une opération asynchrone, Flash Player et AIR distribuent un
objet événement d’erreur. Si vous ne créez pas d’écouteur pour l’événement d’erreur, les versions de débogage de Flash
Player et AIR affichent une boîte de dialogue comportant des informations sur l’erreur en question. Par exemple, la
version de débogage de Flash Player affiche la boîte de dialogue suivante, qui décrit l’erreur associée à une tentative de
chargement d’un fichier par l’application à partir d’une URL non valide :
La plupart des événements d’erreur reposent sur la classe ErrorEvent. Ils présentent donc une propriété appelée text,
qui sert au stockage du message d’erreur que Flash Player ou AIR affiche. Il existe deux exceptions : les classes
StatusEvent et NetStatusEvent. Ces deux classes possèdent une propriété level (StatusEvent.level et
NetStatusEvent.info.level). Lorsque la valeur de la propriété level est error, ces types d’événement sont
considérés comme des événements d’erreur.
Un événement d’erreur n’interrompt pas l’exécution du fichier SWF. Il se traduit uniquement par l’affichage d’une
boîte de dialogue dans les versions de débogage des navigateurs et des lecteurs autonomes, d’un message dans le
panneau de sortie du lecteur de création et d’une entrée dans le fichier journal d’Adobe Flash Builder. Aucune
manifestation n’est visible dans les autres versions de Flash Player ou AIR.
Exemple de gestion des événements : Alarm Clock
Flash Player 9 et les versions ultérieures, Adobe AIR 1.0 et les versions ultérieures
L’exemple Alarm Clock correspond à une horloge qui permet à l’utilisateur de déterminer l’heure à laquelle l’alarme
doit se déclencher et d’afficher un message en même temps. Il repose sur l’application SimpleClock du chapitre
« Utilisation des dates et des heures » à la page 1 et illustre de nombreux aspects de l’utilisation des événements dans
ActionScript 3.0, notamment les suivants :
• Ecoute des événements et réponse
• Notification d’un événement aux écouteurs
• Créer un type d’événement personnalisé
GUIDE DU DÉVELOPPEUR D’ACTIONSCRIPT 3.0 146
Gestion des événements
Dernière mise à jour le 27/4/2013
Pour obtenir les fichiers d’application Flash Professional associés à cet exemple, voir
www.adobe.com/go/learn_programmingAS3samples_flash_fr. Pour obtenir les fichiers d’application Flex associés à
cet exemple, voir http://www.adobe.com/go/as3examples_fr. Les fichiers d’application Alarm Clock se trouvent dans
le dossier Samples/AlarmClock. Il s’agit des fichiers suivants :
Présentation du réveil
Flash Player 9 et les versions ultérieures, Adobe AIR 1.0 et les versions ultérieures
Dans cet exemple, la principale fonctionnalité de l’horloge (dont la mesure du temps et l’affichage du cadran) réutilise
le code de l’application SimpleClock, décrite à la section « Exemple de date et heure : horloge analogique simple » à la
page 6. La classe AlarmClock étend la classe SimpleClock de cet exemple en y ajoutant la fonctionnalité de réveil
requise : réglage de l’heure de déclenchement et avertissement une fois l’alarme déclenchée.
Le rôle des événements est de fournir un avertissement lorsque se produit quelque chose. La classe AlarmClock expose
l’événement Alarme, à l’écoute duquel d’autres objets peuvent être placés afin d’effectuer les actions voulues. En outre,
la classe AlarmClock utilise une occurrence de la classe Timer pour déterminer à quel moment déclencher l’alarme.
Comme la classe AlarmClock, la classe Timer fournit un événement pour avertir d’autres objets (une occurrence de
AlarmClock dans ce cas) une fois un certain délai écoulé. Comme dans la plupart des applications ActionScript, les
événements constituent une part importante de la fonctionnalité de l’exemple Alarm Clock.
Déclenchement de l’alarme
Flash Player 9 et les versions ultérieures, Adobe AIR 1.0 et les versions ultérieures
Comme mentionné plus haut, la seule fonctionnalité de la classe AlarmClock est liée à la définition et au
déclenchement de l’alarme. La classe intégrée Timer (flash.utils.Timer) permet au développeur de définir du code qui
sera exécuté après un délai spécifique. La classe AlarmClock utilise une occurrence de Timer pour déterminer le
moment auquel déclencher l’alarme.
Fichier Description
AlarmClockApp.mxml
ou
AlarmClockApp.fla
Fichier d’application principal dans Flash (FLA) ou Flex (MXML).
com/example/programmingas3/clock/AlarmClock.as Classe permettant d’étendre la classe SimpleClock, qui ajoute la
fonctionnalité de réveil.
com/example/programmingas3/clock/AlarmEvent.as Une classe d’événement personnalisé (sous-classe de
flash.events.Event), qui sert d’objet événement à l’événement alarm
de la classe AlarmClock.
com/example/programmingas3/clock/AnalogClockFace.as Dessine une horloge ronde et les aiguilles des heures, des minutes et
des secondes en fonction de l’heure (décrit dans l’exemple
SimpleClock).
com/example/programmingas3/clock/SimpleClock.as Composant d’interface d’horloge doté d’une fonctionnalité simple de
mesure temporelle (décrit dans l’exemple SimpleClock).
GUIDE DU DÉVELOPPEUR D’ACTIONSCRIPT 3.0 147
Gestion des événements
Dernière mise à jour le 27/4/2013
import flash.events.TimerEvent;
import flash.utils.Timer;
/**
* The Timer that will be used for the alarm.
*/
public var alarmTimer:Timer;
...
/**
* Instantiates a new AlarmClock of a given size.
*/
public override function initClock(faceSize:Number = 200):void
{
super.initClock(faceSize);
alarmTimer = new Timer(0, 1);
alarmTimer.addEventListener(TimerEvent.TIMER, onAlarm);
}
L’occurrence de Timer définie dans la classe AlarmClock est appelée alarmTimer. La méthode initClock(), qui
effectue les opérations de configuration nécessaires à l’occurrence de AlarmClock, exploite la variable alarmTimer de
deux manières. Tout d’abord, la variable est instanciée avec les paramètres indiquant à l’occurrence de Timer
d’attendre 0 milliseconde et de déclencher l’événement timer une seule fois. Après instanciation de alarmTimer, le
code appelle la méthode addEventListener() de cette variable pour indiquer qu’il veut écouter l’événement timer
de cette variable. Le fonctionnement d’une occurrence de Timer repose sur la distribution de l’événement timer après
un certain délai. La classe AlarmClock doit savoir quand l’événement timer est distribué afin de déclencher sa propre
alarme. En appelant addEventListener(), le code AlarmClock s’enregistre comme écouteur auprès de alarmTimer.
Les deux paramètres indiquent que la classe AlarmClock souhaite écouter l’événement timer (indiqué par la constante
TimerEvent.TIMER), et que lorsque l’événement survient, la méthode onAlarm() de la classe AlarmClock doit être
appelée en réponse à l’événement.
Pour effectivement définir l’alarme, la méthode setAlarm() de la classe AlarmClock est appelée, comme suit :
GUIDE DU DÉVELOPPEUR D’ACTIONSCRIPT 3.0 148
Gestion des événements
Dernière mise à jour le 27/4/2013
/**
* Sets the time at which the alarm should go off.
* @param hour The hour portion of the alarm time.
* @param minutes The minutes portion of the alarm time.
* @param message The message to display when the alarm goes off.
* @return The time at which the alarm will go off.
*/
public function setAlarm(hour:Number = 0, minutes:Number = 0, message:String = "Alarm!"):Date
{
this.alarmMessage = message;
var now:Date = new Date();
// Create this time on today's date.
alarmTime = new Date(now.fullYear, now.month, now.date, hour, minutes);
// Determine if the specified time has already passed today.
if (alarmTime <= now)
{
alarmTime.setTime(alarmTime.time + MILLISECONDS_PER_DAY);
}
// Stop the alarm timer if it's currently set.
alarmTimer.reset();
// Calculate how many milliseconds should pass before the alarm should
// go off (the difference between the alarm time and now) and set that
// value as the delay for the alarm timer.
alarmTimer.delay = Math.max(1000, alarmTime.time - now.time);
alarmTimer.start();
return alarmTime;
}
Cette méthode effectue plusieurs opérations, notamment le stockage du message d’alarme et la création d’un objet
Date (alarmTime) représentant le moment réel où l’alarme se déclenchera. Point le plus important de cette étude, le
minuteur de la variable alarmTimer, dans les dernières lignes la méthode, est défini et activé. Tout d’abord, la méthode
reset() est appelée, qui arrête le minuteur et le remet à zéro s’il est déjà reparti. Ensuite, l’heure actuelle (représentée
par la variable now) est soustraite à la valeur de la variable alarmTime afin de déterminer combien de millisecondes
doivent s’écouler avant le déclenchement de l’alarme. La classe Timer ne déclenche pas l’événement timer à une heure
absolue ; c’est ce décalage relatif qui est attribué à la propriété delay d’alarmTimer. Enfin, la méthode start() est
appelée pour lancer le minuteur.
Une fois le délai spécifié écoulé, alarmTimer distribue l’événement timer. Comme la classe AlarmClock s’est
enregistrée comme écouteur auprès de sa méthode onAlarm() pour l’événement timer, lorsque celui-ci survient,
onAlarm() est appelée.
/**
* Called when the timer event is dispatched.
*/
public function onAlarm(event:TimerEvent):void
{
trace("Alarm!");
var alarm:AlarmEvent = new AlarmEvent(this.alarmMessage);
this.dispatchEvent(alarm);
}
GUIDE DU DÉVELOPPEUR D’ACTIONSCRIPT 3.0 149
Gestion des événements
Dernière mise à jour le 27/4/2013
Lorsqu’une méthode est enregistrée comme écouteur d’événement, elle doit être définie avec la signature adaptée
(c’est-à-dire le jeu de paramètres et le type de renvoi de la méthode). Pour écouter l’événement timer de la classe
Timer, une méthode doit comporter un paramètre dont le type de données est TimerEvent (flash.event.TimerEvent),
une sous-classe de la classe Event. Lorsque l’occurrence de Timer appelle ses écouteurs d’événement, elle transmet une
occurrence de TimerEvent à l’objet événement.
Notification de l’alarme à d’autres composants
Flash Player 9 et les versions ultérieures, Adobe AIR 1.0 et les versions ultérieures
De même que la classe Timer, la classe AlarmClock fournit un événement qui permet de transmettre des notifications
à d’autres éléments de code lorsque l’alarme se déclenche. Pour qu’une classe puisse utiliser le système de gestion des
événements intégré à ActionScript, elle doit implémenter l’interface flash.events.IEventDispatcher. La plupart du
temps, cela se fait par extension de la classe flash.events.EventDispatcher, qui assure une implémentation standard de
IEventDispatcher (ou par extension de l’une des sous-classes de EventDispatcher). Comme décrit précédemment, la
classe AlarmClock étend la classe SimpleClock, qui (par le biais d’une chaîne d’héritage) étend la classe
EventDispatcher. Ainsi, la classe AlarmClock intègre déjà une fonctionnalité lui permettant de fournir ses propres
événements.
D’autres éléments de code peuvent s’enregistrer pour être notifiés de l’événement alarm de la classe AlarmClock en
appelant la méthode addEventListener(), héritée de EventDispatcher. Lorsqu’une occurrence de AlarmClock est
prête à notifier à d’autres éléments de code le déclenchement de l’événement alarm, elle le fait en appelant la méthode
dispatchEvent(), également héritée de EventDispatcher.
var alarm:AlarmEvent = new AlarmEvent(this.alarmMessage);
this.dispatchEvent(alarm);
Ces lignes de code sont extraites de la méthode onAlarm() de la classe AlarmClock (présentée plus haut dans son
intégralité). La méthode dispatchEvent() de l’occurrence de AlarmClock est appelée, puis elle notifie à tous les
écouteurs enregistrés le déclenchement de l’événement alarm de l’occurrence de AlarmClock. Le paramètre transmis
à dispatchEvent() est l’objet événement qui sera ensuite passé aux méthodes d’écouteur. Dans ce cas, il s’agit d’une
occurrence de la classe AlarmEvent, une sous-classe de Event créée spécialement pour cet exemple.
Elaboration d’un événement d’alarme personnalisé
Flash Player 9 et les versions ultérieures, Adobe AIR 1.0 et les versions ultérieures
Tous les écouteurs d’événement reçoivent un paramètre d’objet événement avec des informations sur l’événement qui
a été déclenché. Dans bien des cas, l’objet événement est une occurrence de la classe Event. Dans d’autres cas
néanmoins, il s’avère utile de fournir des informations complémentaires aux écouteurs d’événement. Il suffit pour cela
de définir une nouvelle classe, sous-classe de la classe Event, et d’utiliser une occurrence de cette classe comme objet
événement. Dans cet exemple, une occurrence de AlarmEvent est utilisée comme objet événement lorsque l’événement
alarm de la classe AlarmClock est distribué. La classe AlarmEvent, présentée ici, fournit des informations
complémentaires sur l’événement alarm, à savoir le message d’alarme :
GUIDE DU DÉVELOPPEUR D’ACTIONSCRIPT 3.0 150
Gestion des événements
Dernière mise à jour le 27/4/2013
import flash.events.Event;
/**
* This custom Event class adds a message property to a basic Event.
*/
public class AlarmEvent extends Event
{
/**
* The name of the new AlarmEvent type.
*/
public static const ALARM:String = "alarm";
/**
* A text message that can be passed to an event handler
* with this event object.
*/
public var message:String;
/**
*Constructor.
*@param message The text to display when the alarm goes off.
*/
public function AlarmEvent(message:String = "ALARM!")
{
super(ALARM);
this.message = message;
}
...
}
Le meilleur moyen de créer une classe d’objet événement personnalisée est de définir une classe qui étend la classEvent,
comme illustré dans l’exemple précédent. Pour compléter la fonctionnalité héritée, la classe AlarmEvent définit une
propriété message qui contient le texte du message d’alarme associé à l’événement. La valeur message est transmise
sous forme de paramètre au constructeur AlarmEvent. La classe AlarmEvent définit également la constante ALARM qui
peut servir à référencer l’événement (alarm) lors de l’appel de la méthode addEventListener() de la classe
AlarmClock.
Outre l’ajout de fonctionnalité, chaque sous-classe Event doit redéfinir la méthode clone() héritée dans le cadre de la
gestion des événements ActionScript. Les sous-classes Event peuvent éventuellement redéfinir la méthode
toString() afin d’inclure les propriétés de l’événement personnalisé dans la valeur renvoyée par l’appel de la méthode
toString().
GUIDE DU DÉVELOPPEUR D’ACTIONSCRIPT 3.0 151
Gestion des événements
Dernière mise à jour le 27/4/2013
/**
* Creates and returns a copy of the current instance.
* @return A copy of the current instance.
*/
public override function clone():Event
{
return new AlarmEvent(message);
}
/**
* Returns a String containing all the properties of the current
* instance.
* @return A string representation of the current instance.
*/
public override function toString():String
{
return formatToString("AlarmEvent", "type", "bubbles", "cancelable", "eventPhase",
"message");
}
La méthode clone() redéfinie doit renvoyer une nouvelle occurrence de la sous-classe Event personnalisée, avec
toutes les propriétés personnalisées définies pour correspondre à l’occurrence actuelle. Dans la méthode toString()
redéfinie, la méthode d’utilitaire formatToString() (héritée de Event) sert à fournir une chaîne comportant le nom
du type personnalisé, ainsi que les noms et valeurs de toutes ses propriétés.
152
Dernière mise à jour le 27/4/2013
Chapitre 9 : Utilisation de domaines
d’application
Flash Player 9 et les versions ultérieures, Adobe AIR 1.0 et les versions ultérieures
Le rôle de la classe ApplicationDomain est de stocker un tableau des définitions ActionScript 3.0. L’ensemble du code
d’un fichier SWF est défini de sorte à exister dans un domaine d’application. Les domaines d’application servent à
partitionner les classes qui se trouvent dans un même domaine de sécurité. Ainsi, plusieurs définitions de la même
classe peuvent exister et les enfants peuvent réutiliser les définitions des parents.
Vous pouvez faire appel aux domaines d’application lors du chargement, au moyen de l’API de la classe Loader, d’un
fichier SWF externe écrit en ActionScript 3.0 (Notez que vous ne pouvez pas utiliser les domaines d’application
lorsque vous chargez une image ou un fichier SWF écrit en ActionScript 1.0 ou 2.0.) Toutes les définitions
ActionScript 3.0 contenues dans la classe chargée sont stockées dans le domaine d’application. Lorsque vous chargez
un fichier SWF, vous devez indiquer que le fichier doit être inclus dans le même domaine d’application que l’objet
Loader en attribuant au paramètre applicationDomain de l’objet LoaderContext la valeur
ApplicationDomain.currentDomain. Si vous placez le fichier SWF chargé dans le même domaine d’application,
vous pourrez accéder directement à ses classes, Cela s’avère pratique si vous chargez un fichier SWF qui contient des
médias incorporés auxquels vous pouvez accéder via les noms de classe associés, ou si vous voulez accéder aux
méthodes du fichier SWF chargé.
L’exemple suivant présuppose l’accès à un fichier Greeter.swf distinct définissant une méthode publique nommée
welcome() :
GUIDE DU DÉVELOPPEUR D’ACTIONSCRIPT 3.0 153
Utilisation de domaines d’application
Dernière mise à jour le 27/4/2013
package
{
import flash.display.Loader;
import flash.display.Sprite;
import flash.events.*;
import flash.net.URLRequest;
import flash.system.ApplicationDomain;
import flash.system.LoaderContext;
public class ApplicationDomainExample extends Sprite
{
private var ldr:Loader;
public function ApplicationDomainExample()
{
ldr = new Loader();
var req:URLRequest = new URLRequest("Greeter.swf");
var ldrContext:LoaderContext = new LoaderContext(false,
ApplicationDomain.currentDomain);
ldr.contentLoaderInfo.addEventListener(Event.COMPLETE, completeHandler);
ldr.load(req, ldrContext);
}
private function completeHandler(event:Event):void
{
var myGreeter:Class = ApplicationDomain.currentDomain.getDefinition("Greeter") as
Class;
var myGreeter:Greeter = Greeter(event.target.content);
var message:String = myGreeter.welcome("Tommy");
trace(message); // Hello, Tommy
}
}
}
Voir aussi l’exemple de classe ApplicationDomain dans le manuel Guide de référence ActionScript 3.0 pour la plateforme
Adobe Flash.
Voici d’autres points à garder à l’esprit lorsque vous utilisez les domaines d’application :
• L’ensemble du code d’un fichier SWF est défini de sorte à exister dans un domaine d’application. L’application
principale s’exécute dans le domaine d’application actif. Le domaine du système contient tous les domaines
d’application, y compris le domaine actif ; il contient donc toutes les classes Flash Player.
• A l’exception du domaine du système, tous les domaines d’application sont associés à un domaine parent. Le
domaine parent du domaine de l’application principale est le domaine du système. Les classes chargées ne sont
définies que si leur parent ne les définit pas encore. Vous ne pouvez pas remplacer une définition de classe chargée
par une définition plus récente.
Le schéma suivant illustre une application qui charge du contenu à partir de divers fichiers SWF au sein d’un domaine
unique, domain1.com. Selon le contenu chargé, différents domaines d’application peuvent être utilisés. Le texte
suivant décrit la logique utilisée pour définir le domaine d’application approprié pour chaque fichier SWF de
l’application.
GUIDE DU DÉVELOPPEUR D’ACTIONSCRIPT 3.0 154
Utilisation de domaines d’application
Dernière mise à jour le 27/4/2013
A. Utilisation A B. Utilisation B C. Utilisation C
Le fichier principal d’application est application1.swf. Il contient des objets Loader qui chargent du contenu à partir
d’autres fichiers SWF. Dans ce scénario, le domaine d’application 1 est actif. Utilisation A, Utilisation B et
Utilisation C illustrent les différentes techniques permettant de définir le domaine d’application approprié pour
chaque fichier SWF de l’application.
Utilisation A Partitionnez le fichier SWF enfant en créant un enfant du domaine du système. Dans le schéma, le
domaine d’application 2 est créé en tant qu’enfant du domaine du système. Le fichier application2.swf est chargé dans
le domaine d’application 2 et ses définitions de classe sont ainsi partitionnées à partir des classes définies dans
application1.swf.
Cette technique s’appliquera par exemple lorsqu’une ancienne application doit charger dynamiquement une nouvelle
version de la même application sans créer de conflits. Les conflits sont éliminés parce que même si les noms de classe
sont les mêmes, ils sont répartis dans différents domaines d’application.
Le code suivant crée un domaine d’application qui est un enfant du domaine du système, puis commence à charger un
fichier SWF à l’aide de ce domaine d’application :
var appDomainA:ApplicationDomain = new ApplicationDomain();
var contextA:LoaderContext = new LoaderContext(false, appDomainA);
var loaderA:Loader = new Loader();
loaderA.load(new URLRequest("application2.swf"), contextA);
Utilisation B Ajoutez de nouvelles définitions de classe aux définitions actuelles. Le domaine d’application de
module1.swf est défini sur le domaine actif (Domaine d’application 1). Vous pouvez alors ajouter au jeu actuel de
définitions de classe de l’application de nouvelles définitions de classe. Cela pourrait servir pour une bibliothèque
d’exécution partagée appartenant à l’application principale. Le fichier SWF est traité comme une bibliothèque partagée
distante (RSL, remote shared library). Utilisez cette technique pour charger des RSL à l’aide d’un fichier de
préchargement avant le lancement de l’application.
Le code suivant charge un fichier SWF, en définissant son domaine d’application sur le domaine actif :
GUIDE DU DÉVELOPPEUR D’ACTIONSCRIPT 3.0 155
Utilisation de domaines d’application
Dernière mise à jour le 27/4/2013
var appDomainB:ApplicationDomain = ApplicationDomain.currentDomain;
var contextB:LoaderContext = new LoaderContext(false, appDomainB);
var loaderB:Loader = new Loader();
loaderB.load(new URLRequest("module1.swf"), contextB);
Utilisation C Utilisez les définitions de classe du parent en ajoutant un nouveau domaine enfant au domaine actif. Le
domaine d’application de module3.swf est un enfant du domaine actif, qui utilise pour toutes les classes les versions
du parent. Cette technique peut s’appliquer à un module d’une application Internet riche (RIA, Rich Internet
Application) à plusieurs écrans, qui serait chargé comme enfant de l’application principale et utiliserait les types de
cette dernière. Si vous pouvez garantir que toutes les classes sont toujours mises à jour pour rester compatibles avec les
anciennes versions et que l’application de chargement est toujours plus récente que les contenus qu’elle charge, les
enfants utiliseront les versions des parents. L’utilisation d’un nouveau domaine d’application permet également de
décharger toutes les définitions de classe en vue du nettoyage, à condition de veiller à ce qu’il ne subsiste aucune
référence au fichier SWF enfant.
Cette technique autorise les modules chargés à partager les objets Singleton et les membres de classe statiques de l’objet
Loader.
Le code suivant crée un domaine enfant dans le domaine actif et commence à charger un fichier SWF à l’aide de ce
domaine d’application :
var appDomainC:ApplicationDomain = new ApplicationDomain(ApplicationDomain.currentDomain);
var contextC:LoaderContext = new LoaderContext(false, appDomainC);
var loaderC:Loader = new Loader();
loaderC.load(new URLRequest("module3.swf"), contextC);
156
Dernière mise à jour le 27/4/2013
Chapitre 10 : Programmation de
l’affichage
Flash Player 9 et les versions ultérieures, Adobe AIR 1.0 et les versions ultérieures
La programmation des éléments visuels dans Adobe® ActionScript® 3.0 repose sur l’utilisation des objets d’affichage
sur la scène. Vous pouvez, par exemple, ajouter, déplacer, supprimer et trier les objets d’affichage, appliquer des filtres
et des masques, dessiner des vecteurs et des graphiques bitmap, et exécuter des transformations en trois dimensions
par le biais de l’API de programmation de l’affichage ActionScript. Les classes principales permettant de programmer
l’affichage font partie du package flash.display.
Remarque : Adobe® AIR™ fournit l’objet HTMLoader pour rendre et afficher un contenu HTML. L’objet HTMLLoader
effectue le rendu des éléments visuels du DOM HTML en tant qu’objet d’affichage unique. Il est impossible d’accéder
directement à chaque élément du DOM par le biais de la hiérarchie de la liste d’affichage ActionScript. Vous accédez aux
éléments du DOM à l’aide de l’API DOM distincte proposée par l’objet HTMLLoader.
GUIDE DU DÉVELOPPEUR D’ACTIONSCRIPT 3.0 157
Programmation de l’affichage
Dernière mise à jour le 27/4/2013
Concepts fondamentaux de la programmation de
l’affichage
Flash Player 9 et les versions ultérieures, Adobe AIR 1.0 et les versions ultérieures
Chaque application créée par le biais d’ActionScript 3.0 possède une hiérarchie d’objets d’affichage appelée liste
d’affichage, comme l’indique l’illustration ci-dessous. La liste d’affichage contient tous les éléments visibles de
l’application.
Comme le montre cette illustration, les éléments d’affichage se rangent dans un ou plusieurs groupes suivants :
• Scène
La scène constitue le conteneur de base des objets d’affichage. Chaque application comporte un objet Stage, qui
contient tous les objets d’affichage à l’écran. La scène correspond au conteneur de plus haut niveau et domine la
hiérarchie de la liste d’affichage :
Chaque fichier SWF est associé à une classe ActionScript, appelée classe principale du fichier SWF. Lorsqu’un fichier
SWF s’ouvre dans Flash Player ou Adobe AIR, Flash Player ou AIR appelle la fonction constructeur correspondant
à la classe et l’occurrence créée (systématiquement un type d’objet d’affichage) est ajoutée en tant qu’enfant de
l’objet Stage. La classe principale d’un fichier SWF étend systématiquement la classe Sprite (pour plus
d’informations, voir « Avantages de l’utilisation de la liste d’affichage » à la page 162).
Vous pouvez accéder à la scène via la propriété stage de toute occurrence de DisplayObject. Pour plus
d’informations, voir « Définition des propriétés de la scène » à la page 171.
• Objets d’affichage
GUIDE DU DÉVELOPPEUR D’ACTIONSCRIPT 3.0 158
Programmation de l’affichage
Dernière mise à jour le 27/4/2013
Dans ActionScript 3.0, tous les éléments qui apparaissent à l’écran dans une application sont des types d’objets
d’affichage. Le package flash.display comprend une classe DisplayObject, qui correspond à une classe de base
étendue par diverses autres classes. Ces autres classes représentent divers types d’objets d’affichage, tels que les
formes vectorielles, les clips et les champs de texte, pour n’en citer que quelques-uns. Pour une présentation de ces
classes, voir « Avantages de l’utilisation de la liste d’affichage » à la page 162.
• Conteneurs d’objets d’affichage
Les conteneurs d’objets d’affichage sont des types spéciaux d’objets d’affichage qui, outre leur propre représentation
visuelle, peuvent également comporter des objets enfant qui sont aussi des objets d’affichage.
La classe DisplayObjectContainer est une sous-classe de la classe DisplayObject. Un objet DisplayObjectContainer
peut contenir plusieurs objets d’affichage dans la liste d’enfants correspondante. Par exemple, l’illustration suivante
contient un type d’objet DisplayObjectContainer appelé Sprite qui comporte divers objets d’affichage :
A. Objet SimpleButton. Ce type d’objet d’affichage possède des états « up », « down » et « over ». B. Objet Bitmap. Dans ce cas de figure,
l’objet Bitmap a été chargé à partir d’un JPEG externe via un objet Loader. C. Objet Shape. Le « cadre d’image » contient un rectangle
arrondi dessiné dans ActionScript. Un filtre Ombre portée est appliqué à cet objet Shape. D. Objet TextField.
Dans le contexte des objets d’affichage, les objets DisplayObjectContainer portent également le nom de conteneurs
d’objets d’affichage voire, tout simplement, de conteneurs. Comme indiqué précédemment, la scène est un
conteneur d’objets d’affichage.
Bien que tous les objets d’affichage visibles héritent leurs caractéristiques de la classe DisplayObject, le type de
chacun d’eux correspond à une sous-classe déterminée de la classe DisplayObject. Il existe, par exemple, une
fonction constructeur associée à la classe Shape ou à la classe Video, mais aucune fonction constructeur pour la
classe DisplayObject.
Concepts importants et terminologie
La liste de référence suivante contient des termes importants utilisés dans le cadre de la programmation des graphiques
ActionScript :
Alpha Valeur colorimétrique représentant le montant de transparence (ou, plus précisément, le montant d’opacité)
d’une couleur. Ainsi, une couleur dotée d’une valeur de canal alpha de 60 % n’affiche que 60 % de son intensité totale
et est transparente à 40 %.
Graphique bitmap Graphique défini en termes informatiques sous forme de grille (lignes et colonnes) de pixels de
couleur. Les exemples courants de graphiques bitmap incluent les photos numériques et images similaires.
A
B
C D
GUIDE DU DÉVELOPPEUR D’ACTIONSCRIPT 3.0 159
Programmation de l’affichage
Dernière mise à jour le 27/4/2013
Mode de fondu Indique l’interaction requise du contenu de deux images qui se chevauchent. En règle générale, une
image opaque superposée à une autre image se contente de bloquer l’image placée sous elle, qui est donc totalement
invisible. Toutefois, divers modes de fondu entraînent le mélange des couleurs de diverses façons de sorte que le
résultat corresponde à une combinaison des deux images.
Liste d’affichage Hiérarchie des objets d’affichage rendus sous forme de contenu visible à l’écran par Flash Player
et AIR. La scène correspond à la racine de la liste d’affichage et tous les objets d’affichage associés à la scène ou à l’un
de ses enfants composent la liste d’affichage (même si l’objet n’est pas à proprement parler rendu, parce qu’il réside en
dehors de la scène, par exemple).
Objet d’affichage Objet représentant un type de contenu visuel dans Flash Player ou AIR. La liste d’affichage ne
contient que des objets d’affichage et toutes les classes d’objets d’affichage sont des sous-classes de la classe
DisplayObject.
Conteneur d’objet d’affichage Type spécial d’objet d’affichage qui, outre (généralement) sa propre représentation
visuelle, peut comporter des objets d’affichage enfant.
Classe principale du fichier SWF Classe qui définit le comportement de l’objet d’affichage de plus haut niveau d’un
fichier SWF, soit, fondamentalement, la classe associée au fichier SWF en tant que tel. Ainsi, dans un fichier SWF
généré dans un outil de création Flash, la classe principale correspond à la classe du document. Elle possède un
« scénario principal » qui intègre tous les autres scénarios. La classe principale du fichier SWF correspond à la classe
dont le scénario principal est une occurrence.
Masquage Technique consistant à ne pas afficher certaines parties d’une image (ou, à l’inverse, à n’afficher que
certaines parties d’une image). Les sections de l’image masque deviennent transparentes, afin d’assurer la visibilité du
contenu sous-jacent. Ce terme se réfère à la bande utilisée par un peintre en bâtiment pour empêcher la peinture d’être
appliquée à certaines sections.
Scène Conteneur visuel correspondant à la base ou à l’arrière-plan de tout contenu visuel dans un fichier SWF.
Transformation Modification des caractéristiques visuelles d’un graphique (rotation de l’objet, modification de son
échelle, désalignement, déformation ou altération de sa couleur).
Graphique vectoriel Graphique défini en termes informatiques par des lignes et des formes dessinées en fonction de
caractéristiques déterminées (épaisseur, longueur, taille, angle et position, par exemple).
GUIDE DU DÉVELOPPEUR D’ACTIONSCRIPT 3.0 160
Programmation de l’affichage
Dernière mise à jour le 27/4/2013
Classes d’affichage de base
Flash Player 9 et les versions ultérieures, Adobe AIR 1.0 et les versions ultérieures
Le package flash.display ActionScript 3.0 contient des classes destinées aux objets visuels susceptibles d’apparaître
dans Flash Player ou AIR. L’illustration suivante identifie les relations entre les sous-classes de ces classes d’objets
d’affichage de base.
L’illustration indique ce dont héritent les classes d’objets d’affichage. Notez que certaines de ces classes, en particulier
StaticText, TextField et Video, ne figurent pas dans le package flash.display, mais héritent toutefois des caractéristiques
de la classe DisplayObject.
Toutes les classes qui étendent la classe DisplayObject héritent de ses méthodes et propriétés. Pour plus
d’informations, voir « Propriétés et méthodes de la classe DisplayObject » à la page 165.
Vous pouvez créer une occurrence d’un objet des classes suivantes, qui figurent dans le package flash.display :
• Bitmap : la classe Bitmap permet de définir des objets bitmap, qu’ils soient chargés à partir de fichiers externes ou
rendus via ActionScript. Vous pouvez charger des bitmaps à partir de fichiers externes par le biais de la classe
Loader. Libre à vous de charger des fichiers GIF, JPG ou PNG. Vous pouvez également créer un objet BitmapData
à partir de données personnalisées, puis créer un objet Bitmap qui utilise ces données. Les méthodes de la classe
BitmapData permettent de modifier les bitmaps, qu’ils soient chargés ou créés dans ActionScript. Pour plus
d’informations, voir « Chargement d’objets d’affichage » à la page 206 et le chapitre « Utilisation des images
bitmap » à la page 251.
• Loader : la classe Loader permet de charger des ressources externes (fichiers SWF ou graphiques). Pour plus
d’informations, voir « Chargement dynamique du contenu d’affichage » à la page 205.
• Shape : la classe Shape permet de créer des graphiques vectoriels, tels que des rectangles, des lignes, des cercles, etc.
Pour plus d’informations, voir « Utilisation de l’API de dessin » à la page 230.
• SimpleButton : un objet SimpleButton est une représentation ActionScript d’un symbole de bouton créé dans l’outil
de programmation Flash. Une occurrence de SimpleButton est dotée de quatre états de bouton : « up », « down »,
« over » et « hit test » (zone qui réagit aux événements souris et clavier).
MorphShape
DisplayObject
AVM1Movie Shape StaticText Video
DisplayObjectContainer TextField
Bitmap InteractiveObject
SimpleButton
Loader Stage
MovieClip
Sprite
GUIDE DU DÉVELOPPEUR D’ACTIONSCRIPT 3.0 161
Programmation de l’affichage
Dernière mise à jour le 27/4/2013
• Sprite : un objet Sprite peut contenir des graphiques qui lui sont propres, ainsi que des objets d’affichage enfant (la
classe Sprite étend la classe DisplayObjectContainer). Pour plus d’informations, voir « Utilisation de conteneurs
d’objets d’affichage » à la page 165 et « Utilisation de l’API de dessin » à la page 230.
• MovieClip : un objet MovieClip est la forme ActionScript d’un symbole de clip créé dans l’outil de programmation
Flash. En pratique, un objet MovieClip est similaire à un objet Sprite, à une exception près : il possède également
un scénario. Pour plus d’informations, voir « Utilisation des clips » à la page 333.
Les classes suivantes, qui ne figurent pas dans le package flash.display, sont des sous-classes de la classe DisplayObject :
• La classe TextField, qui figure dans le package flash.text, est un objet d’affichage destiné à l’affichage et à la saisie de
texte. Pour plus d’informations, voir « Principes de base de l’utilisation du texte » à la page 383.
• La classe TextLine, qui figure dans le package flash.text.engine, correspond à l’objet d’affichage permettant
d’afficher des lignes de texte composées par Flash Text Engine et Text Layout Framework. Pour plus
d’informations, voir « Utilisation de Flash Text Engine » à la page 410 et « Utilisation de Text Layout Framework »
à la page 440.
• La classe Video, qui figure dans le package flash.media, correspond à l’objet d’affichage utilisé pour afficher des
fichiers vidéo. Pour plus d’informations, voir « Utilisation de la vidéo » à la page 489.
Les classes suivantes du package flash.display étendent la classe DisplayObject, mais il est impossible d’en créer une
occurrence. Parce qu’elles combinent des fonctionnalités communes en une classe unique, elles servent plutôt de
classes parent à d’autres objets d’affichage.
• AVM1Movie : la classe AVM1Movie permet de représenter des fichiers SWF chargés créés dans ActionScript 1.0
et 2.0.
• DisplayObjectContainer : les classes Loader, Stage, Sprite et MovieClip étendent chacune la classe
DisplayObjectContainer. Pour plus d’informations, voir « Utilisation de conteneurs d’objets d’affichage » à la
page 165.
• InteractiveObject : classe de base de tous les objets utilisés pour interagir avec la souris et le clavier. Les objets
SimpleButton, TextField, Loader, Sprite, Stage et MovieClip sont tous des sous-classes de la classe
InteractiveObject. Pour plus d’informations sur la création d'une interaction de souris ou de clavier, voir
« Principes de base de l’interaction utilisateur » à la page 574.
• MorphShape : ces objets sont générés lors de la création d’une interpolation de forme dans l’outil de
programmation Flash. Il est impossible d’en créer des occurrences par le biais d’ActionScript, mais vous pouvez y
accéder dans la liste d’affichage.
• Scène : la classe Stage étend la classe DisplayObjectContainer. Il n’existe qu’une seule occurrence de scène par
application, et elle figure au sommet de la hiérarchie de la liste d’affichage. Vous pouvez accéder à la scène via la
propriété stage de toute occurrence de DisplayObject. Pour plus d’informations, voir « Définition des propriétés
de la scène » à la page 171.
Par ailleurs, la classe StaticText, qui figure dans le package flash.text, étend la classe DisplayObject, mais il est
impossible d’en créer une occurrence dans du code. Les champs de texte statique sont créés dans Flash uniquement.
Les classes suivantes ne sont ni des objets d’affichage, ni des conteneurs d’objets d’affichage et n’apparaissent pas dans
la liste d’affichage, mais affichent des graphiques sur la scène. Elles dessinent des éléments dans un rectangle, appelé
fenêtre d’affichage, positionné relativement à la scène.
• StageVideo : la classe StageVideo affiche le contenu vidéo en faisant appel, dans la mesure du possible, à
l’accélération matérielle. Cette classe est disponible à partir de Flash Player 10.2. Pour plus d’informations, voir
« Présentation à accélération matérielle par le biais de la classe StageVideo » à la page 528.
• StageWebView : la classe StageWebView affiche le contenu HTML. Elle est prise en charge depuis la version 2.5
d’AIR. Pour plus d’informations, voir « Objets StageWebView » à la page 1068.
GUIDE DU DÉVELOPPEUR D’ACTIONSCRIPT 3.0 162
Programmation de l’affichage
Dernière mise à jour le 27/4/2013
Les classes fl.display suivantes proposent des fonctionnalités équivalentes à celles des classes flash.display.Loader et
LoaderInfo. Utilisez-les au lieu des classes flash.display équivalentes en cas de développement dans l’environnement
Flash Professional (CS5.5 ou ultérieur). Dans cet environnement, ces classes permettent de résoudre les problèmes liés
à TLF avec préchargement RSL. Pour plus d’informations, voir « Utilisation des classes ProLoader et ProLoaderInfo »
à la page 210.
• fl.display.ProLoader : équivalente à flash.display.Loader
• fl.display.ProLoaderInfo : équivalente à flash.display.LoaderInfo
Avantages de l’utilisation de la liste d’affichage
Flash Player 9 et les versions ultérieures, Adobe AIR 1.0 et les versions ultérieures
Dans ActionScript 3.0, des classes distinctes sont réservées aux différents types d’objets d’affichage. Dans
ActionScript 1.0 et 2.0, un grand nombre de types d’objets identiques sont inclus dans une même classe : MovieClip.
Cette individualisation des classes et la structure hiérarchique des listes d’affichage présentent les avantages suivants :
• Rendu plus efficace et utilisation réduite de la mémoire
• Gestion optimisée de la profondeur
• Parcours entier de la liste d’affichage
• Objets d’affichage absents de la liste
• Classement simplifié en sous-classes des objets d’affichage
Rendu plus efficace et taille réduite des fichiers
Flash Player 9 et les versions ultérieures, Adobe AIR 1.0 et les versions ultérieures
Dans ActionScript 1.0 et 2.0, vous ne pouvez dessiner des formes que dans un objet MovieClip. ActionScript 3.0
intègre des classes d’objets d’affichage plus simples, dans lesquelles vous pouvez dessiner des formes. Parce que ces
classes d’objets d’affichage ActionScript 3.0 ne contiennent pas le jeu complet de méthodes et propriétés associées à un
objet MovieClip, elles mobilisent moins de ressources en mémoire et processeur.
Par exemple, à l’encontre d’un objet Shape, chaque objet MovieClip comporte des propriétés associées au scénario du
clip. Les propriétés de gestion du scénario font parfois appel à un volume considérable de ressources en mémoire et
processeur. Dans ActionScript 3.0, l’utilisation de l’objet Shape se traduit par une amélioration des performances.
L’objet Shape nécessite moins de ressources que l’objet MovieClip, plus complexe. Flash Player et AIR n’ont pas besoin
de gérer les propriétés MovieClip inutilisées, optimisant ainsi la vitesse et réduisant les besoins de mémoire de l’objet.
Gestion optimisée de la profondeur
Flash Player 9 et les versions ultérieures, Adobe AIR 1.0 et les versions ultérieures
Dans ActionScript 1.0 et 2.0, la profondeur était gérée par un système et des méthodes de gestion linéaire de la
profondeur, tels que getNextHighestDepth().
ActionScript 3.0 comprend la classe DisplayObjectContainer, dont les méthodes et propriétés sont mieux adaptées à
la gestion de la profondeur des objets d’affichage.
GUIDE DU DÉVELOPPEUR D’ACTIONSCRIPT 3.0 163
Programmation de l’affichage
Dernière mise à jour le 27/4/2013
Dans ActionScript 3.0, lorsque vous déplacez un objet d’affichage au sein de la liste des enfants d’une occurrence de
DisplayObjectContainer, les autres enfants du conteneur d’objets d’affichage sont automatiquement repositionnés et
des positions d’index enfant appropriées leur sont affectées dans le conteneur d’objets d’affichage.
Par ailleurs, ActionScript 3.0 permet systématiquement de détecter tous les objets enfant de tout conteneur d’objets
d’affichage. Chaque occurrence de DisplayObjectContainer possède une propriété numChildren, qui indique le
nombre d’enfants figurant dans le conteneur d’objets d’affichage. Puisque la liste des enfants d’un conteneur d’objets
d’affichage correspond systématiquement à une liste indexée, vous pouvez examiner chaque objet de la liste de la
position d’index 0 à la dernière position d’index (numChildren - 1). Cette technique n’était pas proposée par les
méthodes et propriétés d’un objet MovieClip dans ActionScript 1.0 et 2.0.
ActionScript 3.0 permet de parcourir aisément et séquentiellement la liste d’affichage, car les numéros d’index de la
liste des enfants d’un conteneur d’objets d’affichage se suivent. Parcourir la liste d’affichage et gérer la profondeur des
objets est désormais beaucoup plus simple que dans ActionScript 1.0 et 2.0. Dans ActionScript 1.0 et 2.0, un clip
pouvait en effet contenir des objets dont l’ordre de profondeur n’était pas séquentiel, ce qui rendait parfois le parcours
de la liste d’objets difficile. Dans ActionScript 3.0, chaque liste d’enfants d’un conteneur d’objets d’affichage est mise
en cache en interne sous forme de tableau, ce qui permet des recherches extrêmement rapides (par index). Passer en
boucle sur tous les enfants d’un conteneur d’objets d’affichage s’avère également très rapide.
Dans ActionScript 3.0, vous pouvez également accéder aux enfants d’un conteneur d’objets d’affichage par le biais de
la méthode getChildByName() de la classe DisplayObjectContainer.
Parcours entier de la liste d’affichage
Flash Player 9 et les versions ultérieures, Adobe AIR 1.0 et les versions ultérieures
ActionScript 1.0 et 2.0 ne vous permettaient pas d’accéder à certains objets, telles les formes vectorielles, dessinées dans
l’outil de programmation Flash. Dans ActionScript 3.0, vous pouvez accéder à tous les objets de la liste d’affichage,
qu’ils aient été créés en ActionScript ou dans l’outil de programmation Flash. Pour plus d’informations, voir
« Parcours de la liste d’affichage » à la page 169.
Objets d’affichage absents de la liste
Flash Player 9 et les versions ultérieures, Adobe AIR 1.0 et les versions ultérieures
ActionScript 3.0 permet de créer des objets d’affichage qui ne figurent pas dans la liste d’affichage visible. Ils portent
le nom d’objets d’affichage hors liste. Un objet d’affichage n’est ajouté à la liste d’affichage visible que lorsque vous
appelez la méthode addChild() ou addChildAt() d’une occurrence de DisplayObjectContainer qui a déjà été
intégrée à la liste d’affichage.
Les objets d’affichage hors liste permettent d’assembler des objets d’affichage complexes, tels que ceux qui possèdent
plusieurs conteneurs d’objets d’affichage comportant plusieurs objets d’affichage. En n’intégrant pas à la liste des
objets d’affichage, vous pouvez assembler des objets complexes sans avoir à effectuer leur rendu. Vous économisez
ainsi le temps de traitement correspondant. Vous pouvez alors ajouter un objet hors liste à la liste d’affichage au
moment voulu. Il est également possible d’intégrer un enfant d’un conteneur d’objets d’affichage à la liste d’affichage,
puis de l’en extraire ou d’en modifier la position dans cette dernière, le cas échéant.
GUIDE DU DÉVELOPPEUR D’ACTIONSCRIPT 3.0 164
Programmation de l’affichage
Dernière mise à jour le 27/4/2013
Classement simplifié en sous-classes des objets d’affichage
Flash Player 9 et les versions ultérieures, Adobe AIR 1.0 et les versions ultérieures
Dans ActionScript 1.0 et 2.0, il était souvent nécessaire d’ajouter de nouveaux objets MovieClip à un fichier SWF pour
créer des formes de base ou afficher des bitmaps. Dans ActionScript 3.0, la classe DisplayObject comprend un grand
nombre de sous-classes intégrées, telles que Shape et Bitmap. Parce que les classes d’ActionScript 3.0 sont plus
spécialisées pour des types spécifiques d’objets, il est plus simple de créer des sous-classes de base des classes intégrées.
Par exemple, pour dessiner un cercle dans ActionScript 2.0, vous pourriez créer une classe CustomCircle qui étend la
classe MovieClip lors de la création d’une occurrence d’un objet de la classe personnalisée. Néanmoins, cette classe
comprendrait également diverses propriétés et méthodes émanant de la classe MovieClip (telles que totalFrames) qui
ne s’appliquent pas à elle. Dans ActionScript 3.0, vous pouvez toutefois créer une classe CustomCircle qui étend l’objet
Shape et, de ce fait, ne comprend pas les propriétés et méthodes sans rapport contenues dans la classe MovieClip. Le
code suivant illustre un exemple de classe CustomCircle :
import flash.display.*;
public class CustomCircle extends Shape
{
var xPos:Number;
var yPos:Number;
var radius:Number;
var color:uint;
public function CustomCircle(xInput:Number,
yInput:Number,
rInput:Number,
colorInput:uint)
{
xPos = xInput;
yPos = yInput;
radius = rInput;
color = colorInput;
this.graphics.beginFill(color);
this.graphics.drawCircle(xPos, yPos, radius);
}
}
Utilisation des objets d’affichage
Flash Player 9 et les versions ultérieures, Adobe AIR 1.0 et les versions ultérieures
Maintenant que vous maîtrisez les bases de la scène, des objets d’affichage, des conteneurs d’objets d’affichage et de la
liste d’affichage, cette section contient des informations plus détaillées relatives à l’utilisation des objets d’affichage
dans ActionScript 3.0.
GUIDE DU DÉVELOPPEUR D’ACTIONSCRIPT 3.0 165
Programmation de l’affichage
Dernière mise à jour le 27/4/2013
Propriétés et méthodes de la classe DisplayObject
Flash Player 9 et les versions ultérieures, Adobe AIR 1.0 et les versions ultérieures
Tous les objets d’affichage sont des sous-classes de la classe DisplayObject et, de ce fait, héritent des propriétés et
méthodes de cette dernière. Les propriétés dont ils héritent correspondent aux propriétés de base qui s’appliquent à
tous les objets d’affichage. Par exemple, chaque objet d’affichage possède une propriété x et une propriété y qui
indiquent sa position dans son conteneur d’objets d’affichage.
Il est impossible de créer une occurrence de DisplayObject à l’aide du constructeur de la classe DisplayObject. Vous
devez créer un autre type d’objet (un objet qui est une sous-classe de la classe DisplayObject), tel Sprite, pour créer une
occurrence d’objet par le biais de l’opérateur new. Par ailleurs, pour créer une classe d’objet d’affichage personnalisée,
vous devez créer une sous-classe de l’une des sous-classes d’objets d’affichage ayant une fonction constructeur
utilisable (telle que la classe Shape ou la classe Sprite). Pour plus d’informations, voir la description de la classe
DisplayObject dans le manuel Guide de référence ActionScript 3.0 pour la plate-forme Adobe Flash.
Ajout d’objets d’affichage à la liste d’affichage
Flash Player 9 et les versions ultérieures, Adobe AIR 1.0 et les versions ultérieures
Lorsque vous créez une occurrence d’un objet d’affichage, elle n’apparaît pas à l’écran (sur la scène) tant que vous ne
l’avez pas ajoutée à un conteneur d’objets d’affichage figurant dans la liste d’affichage. Par exemple, dans le code
suivant, l’objet myText TextField n’est pas visible si vous omettez la dernière ligne de code. Dans la dernière ligne de
code, le mot-clé this doit se référer à un conteneur d’objets d’affichage figurant déjà dans la liste d’affichage.
import flash.display.*;
import flash.text.TextField;
var myText:TextField = new TextField();
myText.text = "Buenos dias.";
this.addChild(myText);
Lorsque vous ajoutez un élément visuel à la scène, il devient un enfant de cette dernière. Le premier fichier SWF chargé
dans une application (tel celui intégré à une page HTML) est automatiquement ajouté en tant qu’enfant de la scène. Il
peut s’agir de n’importe quel type d’objet qui étend la classe Sprite.
Tout objet d’affichage créé sans utiliser ActionScript (par exemple en ajoutant une balise MXML dans un fichier
MXML Flex ou en plaçant un élément sur la scène dans Flash Professional) est ajouté à la liste d’affichage. Bien que
vous n’ajoutiez pas ces objets d’affichage par le biais d’ActionScript, vous pouvez y accéder via ActionScript. Par
exemple, le code suivant règle la largeur d’un objet appelé button1, qui a été ajouté dans l’outil de programmation (et
non via ActionScript) :
button1.width = 200;
Utilisation de conteneurs d’objets d’affichage
Flash Player 9 et les versions ultérieures, Adobe AIR 1.0 et les versions ultérieures
Si un objet DisplayObjectContainer est supprimé de la liste d’affichage ou s’il est transféré ou transformé d’une autre
façon, chaque objet d’affichage de DisplayObjectContainer est également supprimé, transféré ou transformé.
Un conteneur d’objets d’affichage correspond à un type d’objet d’affichage et peut être ajouté à un autre conteneur
d’objets d’affichage. Par exemple, l’image suivante illustre un conteneur d’objets d’affichage, pictureScreen, qui
comporte une forme de contour et quatre autres conteneurs d’objets d’affichage (de type PictureFrame) :
GUIDE DU DÉVELOPPEUR D’ACTIONSCRIPT 3.0 166
Programmation de l’affichage
Dernière mise à jour le 27/4/2013
A. Forme définissant la bordure du conteneur d’objets d’affichage pictureScreen B. Quatre conteneurs d’objets d’affichage, qui sont des enfants
de l’objet pictureScreen
Pour qu’un objet d’affichage apparaisse dans la liste d’affichage, vous devez l’ajouter à un conteneur d’objets
d’affichage figurant dans la liste d’affichage. A cet effet, vous utilisez la méthode addChild() ou la méthode
addChildAt() de l’objet conteneur. Par exemple, sans la dernière ligne du code suivant, l’objet myTextField ne
s’afficherait pas :
var myTextField:TextField = new TextField();
myTextField.text = "hello";
this.root.addChild(myTextField);
Dans cet exemple de code, this.root pointe vers le conteneur d’objets d’affichage MovieClip qui comporte le code.
Dans votre propre code, vous pouvez stipuler un autre conteneur.
A B
GUIDE DU DÉVELOPPEUR D’ACTIONSCRIPT 3.0 167
Programmation de l’affichage
Dernière mise à jour le 27/4/2013
Utilisez la méthode addChildAt() pour ajouter l’enfant à une position déterminée de la liste des enfants du conteneur
d’objets d’affichage. Ces positions d’index basées sur zéro dans la liste des enfants se réfèrent à l’ordre d’apparition (de
l’avant à l’arrière) des objets d’affichage. Considérons par exemple les trois objets d’affichage suivants. Chaque objet a
été créé à partir d’une classe personnalisée appelée Ball.
L’ordre d’apparition de ces objets d’affichage dans leur conteneur peut être modifié par le biais de la méthode
addChildAt(). Considérons par exemple le code qui suit :
ball_A = new Ball(0xFFCC00, "a");
ball_A.name = "ball_A";
ball_A.x = 20;
ball_A.y = 20;
container.addChild(ball_A);
ball_B = new Ball(0xFFCC00, "b");
ball_B.name = "ball_B";
ball_B.x = 70;
ball_B.y = 20;
container.addChild(ball_B);
ball_C = new Ball(0xFFCC00, "c");
ball_C.name = "ball_C";
ball_C.x = 40;
ball_C.y = 60;
container.addChildAt(ball_C, 1);
Une fois ce code exécuté, les objets d’affichage sont placés comme suit dans l’objet DisplayObjectContainer
container. Notez l’ordre d’apparition des objets.
Pour placer un objet en tête de la liste d’affichage, il suffit de l’ajouter à nouveau à celle-ci. Par exemple, après le code
précédent, utilisez la ligne de code suivante pour placer ball_A en première position dans la pile :
container.addChild(ball_A);
Ce code supprime ball_A de son emplacement actuel dans la liste d’affichage de container, et l’ajoute ensuite au
sommet de la liste, ce qui a pour effet de le placer en haut de l’empilement d’objets.
GUIDE DU DÉVELOPPEUR D’ACTIONSCRIPT 3.0 168
Programmation de l’affichage
Dernière mise à jour le 27/4/2013
Vous disposez de la méthode getChildAt() pour vérifier l’ordre d’apparition des objets d’affichage. La méthode
getChildAt() renvoie les objets enfant d’un conteneur en fonction du numéro d’index transmis. Par exemple, le code
suivant révèle le nom des objets d’affichage placés à des positions diverses dans la liste des enfants de l’objet
DisplayObjectContainer container :
trace(container.getChildAt(0).name); // ball_A
trace(container.getChildAt(1).name); // ball_C
trace(container.getChildAt(2).name); // ball_B
Si vous supprimez un objet d’affichage de la liste des enfants de son conteneur parent, les éléments de la liste ayant un
indice plus élevé descendent tous d’une position dans l’index des enfants. Ainsi, si nous reprenons l’exemple
précédent, le code ci-après illustre le transfert de l’objet d’affichage qui occupait la position 2 dans l’objet
DisplayObjectContainer container vers la position 1 suite à la suppression d’un objet d’affichage occupant une
position inférieure dans la liste d’enfants :
container.removeChild(ball_C);
trace(container.getChildAt(0).name); // ball_A
trace(container.getChildAt(1).name); // ball_B
Les méthodes removeChild() et removeChildAt() ne suppriment pas entièrement une occurrence d’objet
d’affichage. Elles se contentent de la supprimer de la liste des enfants du conteneur. Une autre variable peut continuer
à faire référence à l’occurrence (utilisez l’opérateur delete pour supprimer totalement un objet).
Un objet d’affichage ne possédant qu’un seul conteneur parent, vous ne pouvez ajouter une occurrence d’objet
d’affichage qu’à un seul conteneur d’objets d’affichage. Par exemple, le code suivant indique que l’objet d’affichage tf1
ne peut figurer que dans un seul conteneur (soit, dans ce cas, un Sprite, qui étend la classe DisplayObjectContainer) :
tf1:TextField = new TextField();
tf2:TextField = new TextField();
tf1.name = "text 1";
tf2.name = "text 2";
container1:Sprite = new Sprite();
container2:Sprite = new Sprite();
container1.addChild(tf1);
container1.addChild(tf2);
container2.addChild(tf1);
trace(container1.numChildren); // 1
trace(container1.getChildAt(0).name); // text 2
trace(container2.numChildren); // 1
trace(container2.getChildAt(0).name); // text 1
Si vous ajoutez à un conteneur d’objets d’affichage un objet qui est déjà contenu dans un autre conteneur d’objets
d’affichage, l’objet sera supprimé de la liste des enfants de ce dernier.
Outre les méthodes décrites précédemment, la classe DisplayObjectContainer définit plusieurs méthodes d’utilisation
des objets d’affichage enfant, notamment :
• contains() : détermine si un objet d’affichage est un enfant d’un objet DisplayObjectContainer.
• getChildByName() : extrait un objet d’affichage en fonction de son nom.
• getChildIndex() : renvoie la position d’index d’un objet d’affichage.
• setChildIndex() : modifie la position d’un objet d’affichage enfant.
• removeChildren() : supprime plusieurs objets d’affichage enfants.
GUIDE DU DÉVELOPPEUR D’ACTIONSCRIPT 3.0 169
Programmation de l’affichage
Dernière mise à jour le 27/4/2013
• swapChildren() : permute l’ordre de deux objets d’affichage.
• swapChildrenAt() : permute l’ordre de deux objets d’affichage définis en fonction de leur valeur d’index.
Pour plus d’informations, voir les entrées pertinentes du manuel Guide de référence ActionScript 3.0 pour la plateforme
Adobe Flash.
N’oubliez pas qu’un objet d’affichage qui ne figure pas dans la liste d’affichage (donc, qui ne se trouve pas dans un
conteneur d’objets d’affichage enfant de la scène) est appelé objet d’affichage hors liste.
Parcours de la liste d’affichage
Flash Player 9 et les versions ultérieures, Adobe AIR 1.0 et les versions ultérieures
Comme nous l’avons vu, la liste d’affichage est une structure en arborescence. Au sommet de l’arborescence figure la
scène, qui peut comporter plusieurs objets d’affichage. Les objets d’affichage qui sont eux-mêmes des conteneurs
d’objets d’affichage peuvent contenir d’autres objets d’affichage, voire des conteneurs d’objets d’affichage.
La classe DisplayObjectContainer comporte des propriétés et méthodes de parcours de la liste d’affichage, par le biais
des listes d’enfants des conteneurs d’objets d’affichage. Considérons par exemple le code suivant, qui ajoute deux
objets d’affichage, title et pict, à l’objet container (qui est un Sprite, et la classe Sprite étend la classe
DisplayObjectContainer) :
GUIDE DU DÉVELOPPEUR D’ACTIONSCRIPT 3.0 170
Programmation de l’affichage
Dernière mise à jour le 27/4/2013
var container:Sprite = new Sprite();
var title:TextField = new TextField();
title.text = "Hello";
var pict:Loader = new Loader();
var url:URLRequest = new URLRequest("banana.jpg");
pict.load(url);
pict.name = "banana loader";
container.addChild(title);
container.addChild(pict);
La méthode getChildAt() renvoie l’enfant de la liste d’affichage à une position d’index déterminée :
trace(container.getChildAt(0) is TextField); // true
Vous pouvez également accéder aux objets enfant en indiquant leur nom. Chaque objet d’affichage possède un nom,
qui est attribué par défaut par Flash Player ou AIR (tel « instance1 ») si vous ne l’attribuez pas vous-même. Par
exemple, le code suivant indique comment utiliser la méthode getChildByName() pour accéder à un objet d’affichage
enfant portant le nom « banana loader » :
trace(container.getChildByName("banana loader") is Loader); // true
L’utilisation de la méthode getChildByName() entraîne parfois un ralentissement des performances par rapport à la
méthode getChildAt().
Puisque la liste d’affichage d’un conteneur d’objets d’affichage peut contenir d’autres conteneurs d’objets d’affichage
en tant qu’objets enfant, vous pouvez parcourir la liste d’affichage complète de l’application sous forme
d’arborescence. Par exemple, dans l’extrait de code illustré précédemment, une fois l’opération de chargement de
l’objet Loader pict terminée, un objet d’affichage enfant (l’image bitmap) de l’objet pict est chargé. Pour accéder à
cet objet d’affichage bitmap, vous pouvez écrire pict.getChildAt(0). Vous pouvez également écrire
container.getChildAt(0).getChildAt(0) (puisque container.getChildAt(0) == pict).
La fonction suivante génère un extrait trace() en retrait de la liste d’affichage d’un conteneur d’objets d’affichage :
function traceDisplayList(container:DisplayObjectContainer,indentString:String = ""):void
{
var child:DisplayObject;
for (var i:uint=0; i < container.numChildren; i++)
{
child = container.getChildAt(i);
trace(indentString, child, child.name);
if (container.getChildAt(i) is DisplayObjectContainer)
{
traceDisplayList(DisplayObjectContainer(child), indentString + "")
}
}
}
Adobe Flex
Si vous utilisez Flex, notez que cette application définit un grand nombre de classes d’objets d’affichage de composant
et que celles-ci priment sur les méthodes d’accès à la liste d’affichage de la classe DisplayObjectContainer. Par exemple,
la classe Container du package mx.core prime sur la méthode addChild() et autres méthodes de la classe
DisplayObjectContainer (étendue par la classe Container). Dans le cas de la méthode addChild(), la classe primant
sur la méthode, vous ne pouvez pas ajouter tous les types d’objets d’affichage à une occurrence de Container dans Flex.
La méthode remplacée demande dans ce cas que l’objet enfant ajouté soit de type mx.core.UIComponent.
GUIDE DU DÉVELOPPEUR D’ACTIONSCRIPT 3.0 171
Programmation de l’affichage
Dernière mise à jour le 27/4/2013
Définition des propriétés de la scène
Flash Player 9 et les versions ultérieures, Adobe AIR 1.0 et les versions ultérieures
La classe Stage annule la plupart des propriétés et méthodes de la classe DisplayObject. Si vous appelez l’une de ces
propriétés ou méthodes annulées, Flash Player et AIR renvoient une exception. Par exemple, l’objet Stage ne possède
pas de propriété x ou y car, en tant que conteneur principal de l’application, sa position est fixe. Or, les propriétés x et
y indiquent la position d’un objet d’affichage par rapport à son conteneur, et puisque la scène ne se trouve pas dans un
autre conteneur d’objets d’affichage, ces propriétés seraient inapplicables.
Remarque : certaines propriétés et méthodes de la classe Stage sont réservées aux objets d’affichage appartenant au même
sandbox de sécurité que le premier fichier SWF chargé. Pour plus d’informations, voir « Sécurité de la scène » à la
page 1109.
Contrôle de la cadence de lecture
Flash Player 9 et les versions ultérieures, Adobe AIR 1.0 et les versions ultérieures
La propriété framerate de la classe Stage permet de définir la cadence de tous les fichiers SWF chargés dans
l’application. Pour plus d’informations, voir le manuel Guide de référence ActionScript 3.0 pour la plate-forme Adobe
Flash.
Contrôle de la mise à l’échelle de la scène
Flash Player 9 et les versions ultérieures, Adobe AIR 1.0 et les versions ultérieures
Lorsque la portion de l’écran qui représente Flash Player ou AIR est redimensionnée, le moteur d’exécution ajuste
automatiquement le contenu de la scène en conséquence. La propriété scaleMode de la classe Stage détermine
comment le contenu de la scène est ajusté. Cette propriété peut être réglée sur quatre valeurs distinctes, définies en tant
que constantes dans la classe flash.display.StageScaleMode :
• StageScaleMode.EXACT_FIT met à l’échelle le fichier SWF de sorte à occuper les nouvelles dimensions de la scène
sans tenir compte du format d’origine du contenu. Etant donné que les facteurs d’échelle ne sont pas
nécessairement identiques en largeur et en hauteur, le contenu risque de sembler écrasé ou étiré en cas de
modification du format de la scène.
• StageScaleMode.SHOW_ALL met à l’échelle le fichier SWF de sorte à occuper les nouvelles dimensions de la scène
sans modifier le format du contenu. Ce mode de mise à l’échelle affiche la totalité du contenu, mais risque de donner
lieu à des bordures de type « boîte aux lettres » similaires aux barres noires qui entourent un film grand écran sur
une télévision standard.
• StageScaleMode.NO_BORDER met à l’échelle le fichier SWF de sorte à occuper totalement les nouvelles dimensions
de la scène sans modifier le format du contenu. Ce mode de mise à l’échelle exploite pleinement la zone d’affichage
de la scène, mais risque d’engendrer un recadrage.
• StageScaleMode.NO_SCALE : ne met pas à l’échelle le fichier SWF. Si les nouvelles dimensions de la scène sont
inférieures aux dimensions d’origine, le contenu est recadré. Si elles leur sont supérieures, l’espace ajouté est vide.
Dans le mode de mise à l’échelle StageScaleMode.NO_SCALE uniquement, les propriétés stageWidth et
stageHeight de la classe Stage permettent de déterminer les dimensions réelles de la scène redimensionnée,
exprimées en pixels. (Dans les autres modes, les propriétés stageWidth et stageHeight renvoient toujours la
largeur et la hauteur d’origine du fichier SWF.) De plus, lorsque la propriété scaleMode est définie sur
StageScaleMode.NO_SCALE et que le fichier SWF est redimensionné, l’événement resize de la classe Stage est
distribué, ce qui vous permet d’effectuer des ajustements en conséquence.
GUIDE DU DÉVELOPPEUR D’ACTIONSCRIPT 3.0 172
Programmation de l’affichage
Dernière mise à jour le 27/4/2013
Définir scaleMode sur StageScaleMode.NO_SCALE permet donc de mieux contrôler l’ajustement du contenu en
cas de redimensionnement de la fenêtre. Par exemple, si un fichier SWF contient une vidéo et une barre de contrôle,
il peut s’avérer utile de conserver la taille de la barre de contrôle en cas de redimensionnement de la scène et de ne
modifier que la taille de la fenêtre de vidéo en fonction du changement de taille de la scène. Ce cas de figure est
illustré dans l’exemple suivant :
// mainContent is a display object containing the main content;
// it is positioned at the top-left corner of the Stage, and
// it should resize when the SWF resizes.
// controlBar is a display object (e.g. a Sprite) containing several
// buttons; it should stay positioned at the bottom-left corner of the
// Stage (below mainContent) and it should not resize when the SWF
// resizes.
import flash.display.Stage;
import flash.display.StageAlign;
import flash.display.StageScaleMode;
import flash.events.Event;
var swfStage:Stage = mainContent.stage;
swfStage.scaleMode = StageScaleMode.NO_SCALE;
swfStage.align = StageAlign.TOP_LEFT;
swfStage.addEventListener(Event.RESIZE, resizeDisplay);
function resizeDisplay(event:Event):void
{
var swfWidth:int = swfStage.stageWidth;
var swfHeight:int = swfStage.stageHeight;
// Resize the main content area
var newContentHeight:Number = swfHeight - controlBar.height;
mainContent.height = newContentHeight;
mainContent.scaleX = mainContent.scaleY;
// Reposition the control bar.
controlBar.y = newContentHeight;
}
Définition du mode de mise à l’échelle de la scène pour les fenêtres AIR
La propriété scaleMode de la scène indique comment celle-ci met à l’échelle et écrête les objets d’affichage enfant lors
d’un redimensionnement de fenêtre. N’utilisez que le mode noScale dans AIR. Lorsque ce mode est activé, la scène
n’est pas mise à l’échelle. La taille de la scène est modifiée directement en fonction des limites de la fenêtre. Les objets
risquent d’être écrêtés si la taille de la fenêtre est inférieure à sa taille initiale.
Les modes de mise à l’échelle de la scène sont adaptés aux environnements tels qu’un navigateur Web qui ne permet
pas nécessairement de contrôler la taille ou le format de la scène. Grâce aux modes, vous pouvez sélectionner le cas de
figure le moins inadapté lorsque la scène ne correspond pas à la taille ou au format idéal défini par l’application. Dans
AIR, vous contrôlez toujours la scène. Par conséquent, modifier la disposition du contenu ou redimensionner la
fenêtre assure un meilleur résultat que l’activation de la mise à l’échelle de la scène.
GUIDE DU DÉVELOPPEUR D’ACTIONSCRIPT 3.0 173
Programmation de l’affichage
Dernière mise à jour le 27/4/2013
Dans le navigateur et la fenêtre AIR initiale, la relation entre la taille de fenêtre et le facteur d’échelle initial est extraite
du fichier SWF chargé. Toutefois, lorsque vous créez un objet NativeWindow, AIR choisit une relation arbitraire
définie sur 72:1 entre la taille de fenêtre et le facteur d’échelle. Par conséquent, si la fenêtre mesure 72x72 pixels, un
rectangle de 10x10 pixels ajouté à la fenêtre est dessiné à la taille correcte (soit 10x10 pixels). Par contre, si la fenêtre
mesure 144x144 pixels, un rectangle de 10x10 pixels est mis à l’échelle (soit 20x20 pixels). Si vous préférez utiliser une
propriété scaleMode autre que noScale pour une scène de fenêtre, vous pouvez compenser le résultat en définissant
le facteur d’échelle de tout objet d’affichage de la fenêtre sur le rapport 72 pixels/largeur et hauteur actuelles de la scène.
Le code suivant calcule par exemple le facteur d’échelle requis de l’objet d’affichage client :
if(newWindow.stage.scaleMode != StageScaleMode.NO_SCALE){
client.scaleX = 72/newWindow.stage.stageWidth;
client.scaleY = 72/newWindow.stage.stageHeight;
}
Remarque : les fenêtres Flex et HTML définissent automatiquement la propriété scaleMode de la scène sur noScale.
Modifier la propriété scaleMode entrave le fonctionnement des mécanismes de mise en forme automatique utilisés dans
ces types de fenêtres.
Utilisation du mode Plein écran
Flash Player 9 et les versions ultérieures, Adobe AIR 1.0 et les versions ultérieures
Le mode plein écran permet de définir la scène d’un film de sorte à remplir totalement le moniteur sans bordure ou
menu. La propriété displayState de la classe Stage permet d’activer ou désactiver ce mode pour un fichier SWF. La
propriété displayState peut être réglée sur l’une des valeurs définies par les constantes de la classe
flash.display.StageDisplayState. Pour activer le mode plein écran, définissez la propriété displayState sur
StageDisplayState.FULL_SCREEN :
stage.displayState = StageDisplayState.FULL_SCREEN;
Pour activer le mode interactif plein écran (nouveauté dans Flash Player 11.3), définissez la propriété displayState
sur StageDisplayState.FULL_SCREEN_INTERACTIVE :
stage.displayState = StageDisplayState.FULL_SCREEN_INTERACTIVE;
Dans Flash Player, le mode plein écran ne peut être activé que via ActionScript en réponse à un clic de souris (clic de
bouton droit inclus) ou une frappe de touche. Le contenu AIR qui s’exécute dans le sandbox de sécurité de l’application
ne nécessite pas que le mode plein écran soit activé en réponse à une action de l’utilisateur.
Pour quitter le mode plein écran, définissez la propriété displayState sur StageDisplayState.NORMAL.
stage.displayState = StageDisplayState.NORMAL;
Un utilisateur peut également désactiver le mode plein écran en plaçant le focus sur une autre fenêtre ou en utilisant
l’une des combinaisons de touches suivantes : la touche Echap (toutes les plates-formes), Contrôle-W (Windows),
Commande-W (Mac) ou Alt-F4 (Windows).
Activation du mode plein écran dans Flash Player
Pour activer le mode plein écran d’un fichier SWF intégré à une page HTML, le code HTML requis pour intégrer Flash
Player doit comprendre une balise param et un attribut embed, associés au nom allowFullScreen et à la valeur true,
comme suit :
GUIDE DU DÉVELOPPEUR D’ACTIONSCRIPT 3.0 174
Programmation de l’affichage
Dernière mise à jour le 27/4/2013
Dans l’outil de programmation Flash, choisissez Fichier -> Paramètres de publication, puis dans la boîte de dialogue
Paramètres de publication, cliquez sur l’onglet HTML et sélectionnez le modèle Flash seulement - Autorisation du
Plein écran.
Dans Flex, assurez-vous que le modèle HTML inclut les balises