11548 sujets

JavaScript, DOM et API Web HTML5

Bonjour,
Après qq recherche sur le net, j'ai trouvé comment faire en sorte que mon annim flash ne se trouve pas au dessus de ma box (fancybox).

Par contre j'ai remarqué que sous FF bien que la box soit au dessus du flash, la div qui fait tout l'écran avec un background opaque, ne se trouve pas sur le flash, mais sous le flash.
Le résultat n'est donc pas très jolie.

Autre question, aujourd'hui, quel est le script a utiliser pour intégrer un flash dans ces pages ?
J'utilise toujours le même depuis des années. Cela a surement changé depuis Smiley cligne
christobal a écrit :
Par contre j'ai remarqué que sous FF bien que la box soit au dessus du flash, la div qui fait tout l'écran avec un background opaque, ne se trouve pas sur le flash, mais sous le flash.
Le résultat n'est donc pas très jolie.

On peut avoir ce genre de souci en fonction du navigateur, mais aussi en fonction du système d'exploitation. Superposer des éléments HTML par dessus une animation Flash pose notamment des problèmes parfois insolubles sous Linux et sous Mac OS. Ça peut aussi dépendre de la version de Flash. C'est un peu la jungle tout ça (et c'est là qu'on voit qu'un plugin ne fait pas partie du navigateur et de son moteur de rendu...).

Globalement, ce qu'il faut faire c'est:
- Insérer l'animation Flash avec, pour le paramètre wmode, la valeur "transparent". (Attention, ça a un impact sur les performances de l'animation Flash.)
- Utiliser correctement les z-index sur les éléments concernés (de préférence, pour l'animation Flash, un élément SPAN ou DIV qui contient directement l'élément OBJECT). Je ne reviens pas sur la bonne utilisation de z-index, tout le monde connait ça sur le bout des doigts. Smiley cligne

christobal a écrit :
Autre question, aujourd'hui, quel est le script a utiliser pour intégrer un flash dans ces pages ?

Réponse de normand: pourquoi serait-il nécessaire ou même utilise d'utiliser un script pour insérer une animation Flash dans une page web?
Florent V. a écrit :
Réponse de normand: pourquoi serait-il nécessaire ou même utilise d'utiliser un script pour insérer une animation Flash dans une page web?

bah se que j'appelle un script c'est le code html utiliser pour afficher l'animation dans une page web.
En effet il y a un abus de langage.
La méthode valide HTML5, sans utiliser JavaScript, ressemblerait à ceci:
http://www.brucelawson.co.uk/2009/html-5-flash-embedding-and-other-validation-erors/
Il se pourrait qu'on puisse utiliser EMBED uniquement, ce qui simplifierait grandement la syntaxe.
Voir les commentaires aussi pour des variantes qui peuvent avoir leur utilité (double OBJECT notamment).

Une syntaxe classique valide HTML4 et XHTML1 est présentée ici:
http://www.alsacreations.com/astuce/lire/25-animation-flash-valide-embed-object-swfobject.html

Son avantage est de permettre l'utilisation d'un contenu alternatif, ce qui n'est pas le cas de EMBED.
Si j'en crois Bruce Lawson, ses désavantages sont:
- Flash pas lu par les lecteurs d'écran dans IE si on utilise cette méthode;
- IE ne peut pas utiliser le streaming vidéo et doit charger tous les éléments pour lire l'animation Flash.

Il n'y a pas de méthode universelle qui fasse référence, malheureusement.
Certaines librairies JS se targuent de résoudre ces problèmes en générant un code HTML (ou plutôt des éléments dans le DOM) adapté à chaque navigateur lorsque nécessaire, et ajoutent une détection de Flash et de la version de Flash. La plus connue est SWFObject. Pour ma part je trouve qu'utiliser SWFObject est tout aussi complexe que trouver une syntaxe HTML qui marche bien dans les navigateurs ciblés, et que la détection de la version de Flash ne veut pas le coup d'une dépendance à JavaScript et du délai de chargement et d'exécution du script... sauf si on a explicitement besoin d'une détection de la version de Flash, et que la faire dans l'animation Flash elle-même n'est pas envisageable.