Sujets sur : dynamyque flashvar

Cours ActionScript 3 ‘dynamyque flashvar’

La Documentation de SWFObject

2 questions

Ecrit le 14 septembre par Matthieu
Publié dans le(s) sujet(s) Adobe Flash

Qu’est ce SWFObject ?

SWFOjbect 2 :

  • Fournit 2 méthodes optimisées pour afficher le Player Flash, une approche par balise et une méthode utilisant le JavaScript.
  • Fournit une API JavaScript contenant un panel complet d’outils, pour afficher des fichiers SWF et récupérer les informations du Player Flash.
  • Utilise seulement un petit fichier JavaScript (10Kb / GZIPed : 3.9 Kb ).
  • Successeur de SWFObject 1.5, UFO et Adobe Flash Player Detection Kit.
  • Créé pour regrouper toutes les méthodes d’affichage du Player Flash et fournir un nouveau standard pour embarquer le contenu Adobe Flash Player.

Pourquoi devez-vous utiliser SWFObject ?

SWFOjbect 2 :

  • Plus optimisé et plus souple que les autres solutions d’affichage du Player Flash.
  • Fournit une solution pour tout le monde, ce n’est pas un problème si vous êtes un développeur HTML, Flash ou JavaScript, cela est pratique pour tout le monde.
  • Casse le cycle bloqué dans des balises spécifiques aux constructeurs et met en avant l’utilisation des standards du web et le contenu alternatif.
  • Utilisation du JavaScript non intrusif et les meilleures pratiques JavaScript.
  • Facile à utiliser.

L’article Flash Embedding Cage Match du site A List Apart décrit le raisonnement complet de SWFObject 2.

Pourquoi SWFObject utilise JavaScript ?

Premièrement, SWFObject 2 utilise JavaScript pour résoudre les problèmes qui ne peuvent être résolus par des balises seules.

SWObject 2 :

  • Détecte la version du Player Flash et détermine si le contenu Flash ou le contenu alternatif doit être visible, pour éviter d’avoir un plugin Flash « déprécié » et un mauvais rendu du contenu Flash.

 

  • Fournit des fonctionnalités pour basculer sur le contenu alternatif dans le cas d’un plugin Flash « déprécié en manipulant le DOM (Note:  si le plugin Flash n’est pas installé, l’objet HTML bascule automatiquement sur le contenu alternatif).

 

  • Donne la possibilité d’utiliser Adobe Express Install pour télécharger la dernière version du Flash Player.
  • Fournit une API JavaScript pour effectuer les opérations classiques liées au Flash Player et à Flash.

Dois-je utiliser la méthode de publication statique ou dynamique ?

SWFObject 2 propose 2 méthodes différentes pour afficher du contenu Flash :

1. La méthode la publication statique intègre à la fois le contenu Flash et du contenu alternatif en utilisant un balisage conforme aux standards, et utilise JavaScript pour résoudre les problèmes qui le balisage seul ne peut résoudre.

2. La méthode de publication dynamique est basé sur un contenu alternatif et utilise JavaScript pour remplacer ce contenu avec du contenu Flash si la version de Flash Player demandée est installé et le support JavaScript est disponible (comme les versions précédentes de SWFObject et UFO).

Les avantages de la méthode de publication statique sont les suivants :

1. La mise en avant d’utilisation des normes de balisage conformes.
2. Meilleure performance d’intégration.
3. Le système d’intégration de contenu Flash ne s’appuie pas sur un langage de script, de tel sorte que votre contenu Flash peut atteindre une audience plus significative :

  • Si vous avez le plug-in Flash installé, mais avec le JavaScript désactivé ou vous utilisez un navigateur qui ne supporte pas le JavaScript, vous serez toujours en mesure de voir votre contenu Flash.

 

  • Flash va désormais fonctionner sur un appareil comme une Sony PSP, qui a un très faible support de JavaScript.
  • Les outils automatisés tels que les lecteurs RSS sont en mesure d’indexer le contenu Flash

Les avantages de la méthode de publication dynamique sont les suivants :

  1. Il s’intègre très bien avec les applications scriptées et permet l’utilisation de variables dynamiques (flashvars).
  2. Il évite le système d’activation du contenu Flash dans Internet Explorer 6 / 7 et Opera 9 +.  Notez que Microsoft a éliminé la plupart des contenus à activer à partir de son navigateur Internet Explorer.

 

Comment intégrer du contenu Flash en utilisant SWFObject avec la méthode statique

ÉTAPE 1: ajouter le contenu Flash et le contenu alternatif en utilisant des balises conformes

Les balises de SWFObject utilisent l’imbrication des objets (avec Internet Explorer, des commentaires conditionnels) http://www.alistapart.com/articles/flashembedcagematch/ pour assurer la compatibilité maximale des navigateurs et le support des balises, tout en étant conforme aux normes et en ajoutant un contenu alternatif http://www.bobbyvandersluis.com/flashembed/testsuite/

[codesyntax lang= »html4strict » title= »ETAPE 1 : SWFObject 2″]

[/codesyntax]

REMARQUE : la méthode imbriquée objets nécessite une définition double objet (l'objet externe ciblant Internet Explorer et l'objet interne ciblant tous les autres navigateurs), vous avez donc besoin de définir les attributs de votre objet et éléments param imbriquées à deux reprises.

Attributs Requis:

  • classid (élément objet extérieur uniquement, la valeur est toujours clsid: D27CDB6E-AE6D-11cf-96B8-444553540000).
  • type (élément objet interne uniquement, la valeur est toujours application / x-shockwave-flash).
  • data (élément objet interne uniquement, définit l’URL d’un fichier SWF).
  • width (deux éléments objet, définit la largeur d’un fichier SWF)
  • height (à la fois des éléments objet, définit la hauteur d’un SWF)

Élément param requis :

  • movie (élément objet externe seulement, définit l’URL d’un fichier SWF)

NOTE : nous vous déconseillons d’utiliser l’attribut codebase pour pointer vers l’URL de l’installeur du plugin Flash sur les serveurs d’Adobe, car c’est illégal selon les spécifications qui en limitent l’accès au domaine du document en cours seulement. Nous recommandons l’utilisation du contenu alternatif avec un message indiquant à l’utilisateur qu’il peut avoir une expérience plus riche en téléchargeant le plugin Flash.

 

Comment pouvez-vous utiliser HTML pour configurer votre contenu Flash?

Vous pouvez ajouter des attributs optionnels, ils sont souvent utilisées sur l’élément objet:

  • id
  • name
  • class
  • aligner

Vous pouvez utiliser les option suivantes de Flash associées à l’élément param (plus d’info) :

Pourquoi devez-vous utiliser le contenu alternatif ?

L’élément objet permet d’ajouter du contenu alternatif, qui sera affichée si Flash n’est pas installé ou pris en charge. Ce contenu sera également repris par les moteurs de recherche, ce qui en fait un outil formidable pour créer du contenu pour les moteurs de recherche. En résumé, vous devez utiliser un contenu alternatif si vous souhaitez créer du contenu qui est accessible pour les gens qui naviguent sur ​​le Web sans plugins , créer du contenu pour les moteurs de recherche ou de dire aux visiteurs qu’ils peuvent avoir une expérience utilisateur plus riche en téléchargeant le plug-in Flash .

ÉTAPE 2: Inclure la bibliothèque SWFObject JavaScript dans l’entête de votre page HTML

La bibliothèque SWFObject utilise un fichier JavaScript externe. Le code de SWFObject sera exécutée dès qu’il est lu et il exécutera toutes les manipulations DOM dès le DOM est chargé – pour tous navigateurs compatibles, comme IE, Firefox, Safari et Opera 9 + – ou sinon dès dès la diffusion de l’événement onload :

[codesyntax lang= »html4strict » title= »inclusion de SWFObject » bookmarkname= »inclusion de SWFObject »]

[/codesyntax]

ÉTAPE 3: enregistrer votre contenu Flash avec la bibliothèque SWFObject et dire à SWFObject quoi faire avec lui

Premièrement, renseignez un identifiant unique à la balise objet qui définit votre contenu Flash. Deuxièmement, appelez la méthode swfobject.registerObject:

1. Le premier argument (String, obligatoire) spécifie l'ID utilisé.
2. Le second argument (String, obligatoire) spécifie la version requise du lecteur Flash pour la publication de votre contenu. Il active la détection de la version Flash pour un fichier SWF pour déterminer s’il faut afficher le contenu Flash ou le contenu alternatif en effectuant une manipulation du DOM. Alors que les numéros de version flash respectent normalement ce principe : major.minor.release.build, SWFObject regarde seulement les 3 premiers numéros, donc les deux «WIN 9,0,18,0″ (IE) ou « Shockwave Flash 9 r18 « (tous les autres navigateurs ) se traduira par « 9.0.18 ». Si vous voulez seulement tester une version majeure, vous pouvez omettre les numéros de version mineure et mettre «9» au lieu de « 9.0.0 »

3. Le troisième argument (String, optionnel) est utilisé pour activer Adobe Installation express et spécifie l’URL de votre fichier SWF « Express Install ». « Express Install » affiche une boîte de dialogue flash standardisée « Téléchargez le plugin » à la place de votre contenu Flash, lorsque la version du plugin requis n’est pas disponible. Un fichier par défaut expressInstall.swf est fournis avec le projet. Il contient également le fichier expressInstall.fla et les fichiers AS (dans le répertoire SRC) pour vous permettre de créer votre SWF Express Install . Notez que »Express Install » s’éxécute une seule fois (la première fois qu’il est invoqué), qu’il est uniquement pris en charge par Flash Player 6.0.65 ou supérieur sur Windows ou Mac, et qu’il exige une taille minimale SWF de 310px par 137px.

4. Le quatrième argument (fonction JavaScript, optionnel) est utilisé pour définir une fonction de rappel, qui est appelée à la fois en cas de succès ou d’échec de l’intégration du fichier SWF (voir la documentation de l’API )

[codesyntax lang= »html4strict » title= »enregistrement de SWFObject » bookmarkname= »enregistrement de SWFObject »]

[/codesyntax]

CONSEILS

Comment intégrer du contenu Flash en utilisant SWFObject avec la méthode dynamique

ÉTAPE 1: Créer le contenu alternatif en utilisant des balises conformes

La méthode dynamique de SWFObject suit le principe de l’amélioration progressive et remplace le contenu alternatif HTML par le contenu Flash lorsque le JavaScript et le support du plug-in Flash sont disponibles. D’abord définir votre contenu alternatif et identifiez le avec un id:

[codesyntax lang= »html4strict » title= »création du contenu alternatif » bookmarkname= »création du contenu alternatif »]

[/codesyntax]

 

ÉTAPE 2: Inclure la bibliothèque SWFObject JavaScript dans l’entête de votre page HTML

La bibliothèque SWFObject utilise un fichier JavaScript externe. SWFObject sera exécutée dès qu’il est lu et exécutera toutes manipulations DOM dès que le DOM est chargé – pour tous navigateurs compatibles, comme IE, Firefox, Safari et Opera 9 + – ou sinon dès que l’événement onload est diffusé :

[codesyntax lang= »html4strict » title= »inclure le javascript SWFobject » bookmarkname= »inclure le javascript SWFObject »]

[/codesyntax]

 

ÉTAPE 3: affichage du SWF avec JavaScript

swfobject.embedSWF (swfUrl, id, largeur, hauteur, la version requise, expressInstallSwfurl, flashvars, params, les attributs, callbackFn)possède cinq paramètres obligatoires et cinq arguments facultatifs :

1. swfUrl (String, obligatoire) spécifie l’URL du votre fichier SWF
2. Id (String, obligatoire) spécifie l'id de l’élément div HTML (contenant votre contenu alternatif) que vous aimeriez remplacer par votre contenu Flash
3. largeur (String, obligatoire) spécifie la largeur de votre SWF
4. hauteur (String, obligatoire) spécifie la hauteur de votre SWF
5. Version (String, obligatoire) spécifie la version requise du lecteur Flash pour votre fichier SWF (le format est: « major.minor.release » ou « major »)
6. expressInstallSwfurl (String, optionnel) spécifie l’URL de votre fichier SWF « Express Install » et active Adobe Express Install. Notez que « Express Install » s’éxécute une seule fois (la première fois qu’il est appelé), qu’il est uniquement pris en charge par Flash Player 6.0.65 ou supérieur sur Windows ou Mac, et qu’il exige une taille minimale SWF de 310px par 137px.
7. flashvars (Object, optionnel) spécifie vos valeurs flashvars avec une association nom: valeur.
8. params (Object, optionnel) spécifie vos éléments params avec une association nom: valeur.
9. attributes (Object, optionnel) spécifie les attributs de votre objet avec une association nom: valeur.
10. callbackFn (fonction JavaScript, en option) est utilisé pour définir une fonction de rappel qui est appelée à la fois en cas de succès ou d’échec de l’intégration de votre fichier SWF (voir la documentation de l’API ).

REMARQUE : vous pouvez omettre les paramètres optionnels, tout en respectant l’ordre des paramètres. Si vous ne souhaitez pas utiliser un paramètre facultatif, mais utiliser le paramètre facultatif suivant, vous pouvez simplement passer la valeur false. Pour les flashvars, params et attributes des objets JavaScript, vous pouvez également passer un objet vide à la place: {}.

 

[codesyntax lang= »html4strict » title= »afficher votre contenu flash » bookmarkname= »afficher votre contenu flash »]

[/codesyntax]

Comment configurer votre contenu Flash?

Vous pouvez utiliser les attributes optionnels de l’élément object :

  • id (REMARQUE: lorsqu’il est indéfinis, l’élément objet hérite automatiquement de l'id de l’élément conteneur du contenu alternatif)
  • align
  • name
  • styleclass (regardez les notes à propos de class)
  • class

Remarque : class est un mot-clé réservé en ECMA4 et génèrera des erreurs avec Internet Explorer si elle est entourée par des guillemets (par exemple "class" ou 'class'). C’est pour cette raison que swfobject fournit le mot-clé styleClass comme alternative sûre pour class; si vous utilisez styleClass, swfobject l’insère automatiquement dans la valeur classe.

Exemple :

[codesyntax lang= »javascript »]

[/codesyntax]

Si vous préférez utiliser la class au lieu de styleClass, mettez class mot entre guillemets comme ceci :

[codesyntax lang= »javascript »]

[/codesyntax]

Vous pouvez utiliser les éléments optionnels param (plus d’informations):

Comment utiliser les Objets JavaScript afin de définir les valeurs de flashvars, params et attributes ?

Vous pouvez définir vos Objets JavaScript en utilisant la notation Object littérale, qui ressemble à :

[codesyntax lang= »javascript »]

[/codesyntax]

Vous pouvez ajouter vos associations nom: valeur dans la définition de l’objet (note: assurez-vous de ne pas mettre une virgule derrière le nom mais dernière la valeur à l’intérieur de l’objet).

[codesyntax lang= »javascript »]

[/codesyntax]

Ou ajouter des propriétés et des valeurs après sa création en utilisant une notation pointée :

[codesyntax lang= »javascript »]

[/codesyntax]

Que vous pouvez aussi écrire (cette version est moins lisible pour les développeurs) :

[codesyntax lang= »javascript »]

[/codesyntax]

Si vous ne souhaitez pas utiliser un argument optionnel, vous pouvez le définir comme false ou comme un objet vide (NOTE: à partir SWFObject 2.1, vous pouvez aussi utiliser null ou 0):

[codesyntax lang= »javascript »]

[/codesyntax]

L’objet flashvars est une notation abrégée qui est là pour simplifier son utilisation. Vous pouvez l’ignorer et renseigner flashvars via l’objet params :

[codesyntax lang= »javascript »]

[/codesyntax]

CONSEILS

Conseils pour la migration de SWFObject 1.5 vers SWFObject 2

1. SWFObject 2 est PAS rétrocompatibles avec SWFObject 1.5.
2. Il est conseillé d’ajouter tous vos blocs de scripts dans l’entête de votre page HTML. L’ajout vos scripts dans le corps de la page peut avoir impact visuel (par exemple : un clignotement lorsque le contenu alternatif est remplacé), parce votre code JavaScript sera exécuté ultérieurement (l’impact exact dépend votre implémentation).
3. La bibliothèque elle-même est maintenant écrite en minuscules : swfobject au lieu de SWFObject.
4. Les méthodes sont accessibles uniquement via la bibliothèque (plutôt que via une instance SWFObject dans SWFObject 1.5).
5. L’ API JavaScript est totalement différente et plus complexe.
6. SWFObject 2 remplace l’ensemble de votre contenu alternatif HTML, y compris l’élément div HTML, par le contenu Flash lorsque le JavaScript et le Flash sont disponibles, tandis que SWFObject 1.5 remplace seulement le contenu dans la div HTML référencé. Lorsque vous ne renseignez pas un attribut id, l’élément objet hérite automatiquement de l'id de l’élément div HTML de votre contenu alternatif.

Conseils pour la migration de UFO vers SWFObject 2

1. SWFObject 2 remplace l’ensemble de votre bloc de contenu HTML, y compris l’élément div HTML référencés, par le contenu Flash lorsque le JavaScript et le Flash sont disponibles, tandis que UFO ne remplace que le contenu dans la div HTML référencé. Lorsque vous ne spécifiez pas un attribut id, l’élément objet hérite automatiquement l'id de l’élément div HTML de votre contenu alternatif.
2. La fonctionnalité setcontainercss d’UFO n’a pas été incorporé dans SWFObject 2, mais il peut facilement être reproduit en utilisant l’API JavaScript SWFObject , regardez : swfobject.createCSS (selStr, declStr).

Est ce que SWFObject 2 supporte le type MIME application/xhtml+xml ?

SWFObject 2 ne soutient PAS   le type MIME XML, qui est un pattern de conception.

Il y a plusieurs raisons pourquoi nous ne sont pas soutenons pas cela :

  • Seul un très petit nombre (non significatif) des développeurs Web l’utilise.
  • Nous sommes incertain de la direction de ce type. Internet Explorer ne le supporte pas et tous les autres navigateurs utilisent une nouvelle façon standard de parser l’HTML (avec HTML 5), qui s’éloigne de la vision actuelle du W3C pour parser du HTML comme du XML

 

  • Nous économiser une taille considérable sur le fichier et notre travail (test, résoudre les bugs) en ne le soutenant pas.

Tutoriels (niveau débutant)

Commentaires

Si vous avez toute questions / commentaires sur SWFObject ou sa documentation, ou des problèmes d’implémentation :

  1. Assurez-vous d’avoir lu la FAQ
  2. Utilisez le groupe de discussion SWFObject

Si vous trouvez des bugs ou si vous voulez demander une amélioration future, vous pouvez remplir un rapport sur la page SWFObject questions