Flash et le contenu alternatif

Nouveau WRInaute
Bonjour !

J'ai une animation Flash qui fait office de bannière et de menu pour la prochaine version de mon site mais j'ai un gros soucis. J'ai installé la mise à jour AC_FL_RunContent pour le contrôle ActiveX et j'obtiens un fichier html de plus de 6ko avec la création d'un fichier AC_RunActiveContent.js.

Quand je regarde l'animation avec Firefox, ça fonctionne et j'ai bien le contenu alternatif quand je désinstalle le plugin Flash. Mais côté IE7, avec le plugin, j'ai toujours le message alternatif et pas du tout mon animation. J'ai pourtant suivit des tutoriaux sur le net et j'ai fait ce qu'il fallait mais il semble y a voir un bug avec la dernière version de IE.

Voici mon code que j'ai placé dans un fichier texte : Test Flash

Je voudrais aussi savoir s'il est possible de placer en contenu alternatif du javascript car je compte, pour ceux n'ayant pas le plugin Flash, proposer un menu alternatif en javascript. J'ai testé mais je n'y arrive pas.

Merci d'avance !
 
WRInaute accro
Bonjour,

As-tu posé ta question sur un forum spécialisé comme http://flash.media-box.net ? :wink:

ou sinon il nous faut plus de détails pour t'aider par exemple les tutoriaux utilisés de façon à ne pas avoir à refaire toute la procédure de recherche que tu dois déjà avoir réalisée.
 
Nouveau WRInaute
Je n'ai plus les sites où je me suis renseigné mais il n'y a rien de compliqué.

Tout d'abord, il y a le problème avec IE que pour interargir avec une animation Flahs, il faut d'abord cliquer dessus (il y a même un cadre qui apparait, comme un lien sur une image en quelque sorte).
J'ai installé une mise à jour pour le programme Flash nommé "FlashActiveContent". Donc, j'ouvre mon animation avec Flash, je l'a publie. Dans Formats, je coche Flash et HTML (c'est déjà coché d'ailleurs) et dans HTML, je coche "Détecter la version de Flahs" et je choisis la version 8.0.0 et dans la liste déroulante Modèle, je prend HTTP. Ensuite, je publie.

Une fois ceci fait, je vais dans l'onglet "Commandes" et je choisis l'option "Appliquer la mise à jour du contenu actif" et je prend le fichier html qui vient juste d'être créé pour le mettre à jour avec FlashActiveContent et j'obtiens un fichier js nommé "AC_RunActiveContent.js".

A partir de là, je n'ai plus qu'à tester. Avec Firefox, j'ai bien l'animation et sans le plugin, j'ai bien el contenu alternatif. Par contre, du côté de IE7, avec ou sans plugin, j'ai toujours le contenu alternatif donc pas d'animation. Voilà où j'en suis et que je cherche depuis un bon moment de l'aide (tu es la 1ère personne à me répondre d'ailleurs).

Et au sujet de ma dernière question donc s'il est possible de placer en contenu alternatif du javascript, est-ce possible ?

Merci de tes réponses^^
 
WRInaute impliqué
Personnellement j'utilise ceci : http://blog.deconcept.com/swfobject/

Ca marche comme ca :
Code:
<script type="text/javascript" src="swfobject.js"></script>
		
<div id="flashcontent">
  This text is replaced by the Flash movie.
</div>

<script type="text/javascript">
   var so = new SWFObject("movie.swf", "mymovie", "200", "100", "7", "#336699");
   so.write("flashcontent");
</script>

du coup, si le plugin flash n'est pas activé, on voit le contenu du div "flashcontent", sinon ben l'animation s'affiche à la place du contenu de ce div
 
Nouveau WRInaute
Il n'y a que ça à ajouté dans une page HTML ? Et je mets où la ligne javascript, dans le head ou le body ?

Edit : J'ai testé mais vu que j'ai un problème avec le plugin flahs, je ne saurais pas voir si ça fonctionne mais j'ai un bug javascript. Quand je regarde le détail voici ce que j'ai :

Ligne : 156
Caractère : 16
Erreur ';' attendu

Quand je regarde le code source de ma page, je me rend compte de l'erreur que je ne sais pas comment corriger.

Code:
  } else {  // version Flash trop ancienne ou détection du plug-in impossible
    var alternateContent = "<div id='conteneurmenu'>"
		+ "<script language='Javascript' type='text/javascript'>"
		+ "preChargement();"
		+ "</script>"
	    + "<p id="menu1" class='menu' onmouseover='MontrerMenu('ssmenu1');' onmouseout='CacherDelai();'>"
        + "<a href='http://iubito.free.fr' onfocus='MontrerMenu('ssmenu1');'>iubito.free.fr<span> :</span></a>"
    	+ "</p>"
    	+ "<ul id='ssmenu1' class='ssmenu' onmouseover='AnnulerCacher();' onmouseout='CacherDelai();' onfocus='AnnulerCacher();' onblur='CacherDelai();'>"
      	+ "<li><a href="/">Accueil<span> ;</span></a></li>"
	    + "<li><a href="/livre/">Livre d'Or<span> ;</span></a></li>"
      	+ "<li><a href="/annu/">Annuaire<span> ;</span></a></li>"
      	+ "<li><a href="javascript:addFav();">Ajouter aux favoris<span>.</span></a></li>"
    	+ "</ul>"

L'erreur est à partir de + "<p id="menu1" class='menu'
Il manque à toutes les lignes un ; à la fin d'où le message d'erreur et peut être que ça pose problème pour voir si tout fonctionne.

Il y a surement quelque chose à changer dans le js mais quoi ?
 
WRInaute impliqué
Tu tékécharge le fichier swfobject.js sur le site cité plus haut

Tu met le fichier .js sur ton serveur

tu place <script type="text/javascript" src="swfobject.js"></script> dans le head

Puis dans le body, tu place :
Code:
<div id="flashcontent">
  Le texte de remplacement à modifier.
</div>

<script type="text/javascript">
   var so = new SWFObject("movie.swf", "mymovie", "200", "100", "7", "#336699");
   so.write("flashcontent");
</script>

Il faut que tu supprime toutes les modifications que tu avais apportées, la technique que je te propose se suffit à elle meme :)
 
Nouveau WRInaute
C'est bien ce que j'ai fait. J'ai même prit une page html vierge, plus simple mais j'ai le soucis que j'ai indiqué au dessus. Et la page html, l'animation et le js sont dans le même dossier.
 
Nouveau WRInaute
Oui, si tu regarde avec le bloc note le fichier js. Mais une fois en ligne et que tu regardes le code source, tu as un long fichier bourré de lignes et il y a une erreur à ce moment.

Code:
<!-- saved from url=(0013)about:internet -->
<html lang="fr">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>test</title>
<script language="javascript" src="menu.js"></script>
<link rel="stylesheet" type="text/css" href="menu.css" />
<script language="javascript"> AC_FL_RunContent = 0; </script>
<script src="AC_RunActiveContent.js" language="javascript"></script>
<script language="JavaScript" type="text/javascript">
<!--
// -----------------------------------------------------------------------------
// Variables globales
// Version majeure de Flash requise
var requiredMajorVersion = 8;
// Version mineure de Flash requise
var requiredMinorVersion = 0;
// Révision de Flash requise
var requiredRevision = 0;
// -----------------------------------------------------------------------------
// -->
</script>
<script language="VBScript" type="text/vbscript">
<!-- // Programme d'assistance Visual Basic requis pour détecter les informations de version du contrôle ActiveX Flash Player
Function VBGetSwfVer(i)
  on error resume next
  Dim swControl, swVersion
  swVersion = 0
  
  set swControl = CreateObject("ShockwaveFlash.ShockwaveFlash." + CStr(i))
  if (IsObject(swControl)) then
    swVersion = swControl.GetVariable("$version")
  end if
  VBGetSwfVer = swVersion
End Function
// -->
</script>
<script language="JavaScript1.1" type="text/javascript">
<!-- 
// Détecter le type de navigateur client
var isIE  = (navigator.appVersion.indexOf("MSIE") != -1) ? true : false;
var isWin = (navigator.appVersion.toLowerCase().indexOf("win") != -1) ? true : false;
var isOpera = (navigator.userAgent.indexOf("Opera") != -1) ? true : false;
// Programme d'assistance JavaScript requis pour détecter les informations de version du plug-in Flash Player
function JSGetSwfVer(i){
	// Version NS/Opera >= 3 rechercher le plug-in Flash dans le tableau des plug-ins
	var flashVer = -1;
	if (navigator.plugins != null && navigator.plugins.length > 0) {
		if (navigator.plugins["Shockwave Flash 2.0"] || navigator.plugins["Shockwave Flash"]) {
			var swVer2 = navigator.plugins["Shockwave Flash 2.0"] ? " 2.0" : "";
      		var flashDescription = navigator.plugins["Shockwave Flash" + swVer2].description;
			var descArray = flashDescription.split(" ");
			var tempArrayMajor = descArray[2].split(".");
			var versionMajor = tempArrayMajor[0];
			var versionMinor = tempArrayMajor[1];
			if ( descArray[3] != "" ) {
				tempArrayMinor = descArray[3].split("r");
			} else {
				tempArrayMinor = descArray[4].split("r");
			}
      			var versionRevision = tempArrayMinor[1] > 0 ? tempArrayMinor[1] : 0;
            		var flashVer = versionMajor + "." + versionMinor + "." + versionRevision;
		}
	}
	// MSN/WebTV 2.6 prend en charge Flash 4
	else if (navigator.userAgent.toLowerCase().indexOf("webtv/2.6") != -1) flashVer = 4;
	// WebTV 2.5 prend en charge Flash 3
	else if (navigator.userAgent.toLowerCase().indexOf("webtv/2.5") != -1) flashVer = 3;
	// La version antérieure de WebTV prend Flash 2 en charge
	else if (navigator.userAgent.toLowerCase().indexOf("webtv") != -1) flashVer = 2;
	return flashVer;
} 
// Si appelé avec reqMajorVer, reqMinorVer, reqRevision renvoie true si cette version ou une version ultérieure est disponible
function DetectFlashVer(reqMajorVer, reqMinorVer, reqRevision) 
{
 	reqVer = parseFloat(reqMajorVer + "." + reqRevision);
   	// Examiner les versions pour détecter la plus récente	
	for (i=25;i>0;i--) {	
		if (isIE && isWin && !isOpera) {
			versionStr = VBGetSwfVer(i);
		} else {
			versionStr = JSGetSwfVer(i);		
		}
		if (versionStr == -1 ) { 
			return false;
		} else if (versionStr != 0) {
			if(isIE && isWin && !isOpera) {
				tempArray         = versionStr.split(" ");
				tempString        = tempArray[1];
				versionArray      = tempString .split(",");				
			} else {
				versionArray      = versionStr.split(".");
			}
			var versionMajor      = versionArray[0];
			var versionMinor      = versionArray[1];
			var versionRevision   = versionArray[2];
			
			var versionString     = versionMajor + "." + versionRevision;   // 7.0r24 == 7.24
			var versionNum        = parseFloat(versionString);
        	// est la révision.principale >= révision.principale demandée ET la version mineure >= mineure demandée
			if (versionMajor > reqMajorVer) {
				return true;
			} else if (versionMajor == reqMajorVer) {
				if (versionMinor > reqMinorVer)
					return true;
				else if (versionMinor == reqMinorVer) {
					if (versionRevision >= reqRevision)
						return true;
				}
			}
			return false;
		}
	}
}
// -->
</script>
</head>
<body bgcolor="#ffffff">
<!--URL utilisées dans l'animation-->
<!--texte utilisé dans l'animation-->
<script language="JavaScript" type="text/javascript">
<!-- 
var hasRightVersion = DetectFlashVer(requiredMajorVersion, requiredMinorVersion, requiredRevision);
if(hasRightVersion) {  // si nous avons détecté une version acceptable
	if (AC_FL_RunContent == 0) {
		alert("Cette page nécessite le fichier AC_RunActiveContent.js. Dans Flash, exécutez « Appliquer la mise à jour du contenu actif » dans le menu Commandes pour copier le fichier AC_RunActiveContent.js dans le dossier de sortie HTML.");
	} else {
		// intégrer le clip Flash
		AC_FL_RunContent(
			'codebase', 'http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0',
			'width', '550',
			'height', '400',
			'src', 'test',
			'quality', 'high',
			'pluginspage', 'http://www.macromedia.com/go/getflashplayer',
			'align', 'middle',
			'play', 'true',
			'loop', 'true',
			'scale', 'showall',
			'wmode', 'window',
			'devicefont', 'false',
			'id', 'test',
			'bgcolor', '#ffffff',
			'name', 'test',
			'menu', 'true',
			'allowScriptAccess','sameDomain',
			'movie', 'test',
			'salign', ''
			); //end AC code
	}
  } else {  // version Flash trop ancienne ou détection du plug-in impossible
    var alternateContent = "<div id='conteneurmenu'>"
		+ "<script language='Javascript' type='text/javascript'>"
		+ "preChargement();"
		+ "</script>"
	    + "<p id="menu1" class='menu' onmouseover='MontrerMenu('ssmenu1');' onmouseout='CacherDelai();'>"
        + "<a href='http://iubito.free.fr' onfocus='MontrerMenu('ssmenu1');'>iubito.free.fr<span> :</span></a>"
    	+ "</p>"
    	+ "<ul id='ssmenu1' class='ssmenu' onmouseover='AnnulerCacher();' onmouseout='CacherDelai();' onfocus='AnnulerCacher();' onblur='CacherDelai();'>"
      	+ "<li><a href="/">Accueil<span> ;</span></a></li>"
	    + "<li><a href="/livre/">Livre d'Or<span> ;</span></a></li>"
      	+ "<li><a href="/annu/">Annuaire<span> ;</span></a></li>"
      	+ "<li><a href="javascript:addFav();">Ajouter aux favoris<span>.</span></a></li>"
    	+ "</ul>"

  + "</div>"
  + "<div id='texte'></div>"
  + "<script language='Javascript'"
  + "type='text/javascript'>Chargement();</script>";
    document.write(alternateContent);  // Insérer contenu non-Flash
  }
// -->
</script>
<noscript>
	// Fournissez un autre contenu pour les navigateurs qui ne prennent pas en charge 
	// les scripts ou dans lesquels les scripts sont désactivés.
  	Un autre contenu HTML doit être inséré ici. Ce contenu requiert Macromedia Flash Player.
  	<a href="http://www.macromedia.com/go/getflash/">Obtenir Flash</a>  	
</noscript>
</body>
</html>
 
WRInaute impliqué
Tout ce code provient surement de AC_RunActiveContent.js

Dans le .zip que tu as du télécharger pour swfobject, tu a des pages d'exemple, vérifie déja si ca marche, sans rien toucher
 
Nouveau WRInaute
Comme je te l'ai dit, j'ai un soucis avec le plugin Flash. J'ai beau lancer l'installation via le site Adobe mais rien du tout. Mais bon, malgré ça, j'avais une erreur javascript tandis qu'avec les pages fournie dans le .zip, je n'ai pas d'erreur.

C'est bizarre car j'ai fait exactement ce que tu m'as dit donc ça devrait fonctionner.

Tout ce code provient surement de AC_RunActiveContent.js
Je l'ai supprimer de mon serveur et j'ai toujours le même code source avec la même erreur js.

Ps : j'ai supprimer l'animation Flash de test sur le serveur et je n'ai plus l'erreur javascript. Je pense que le soucis venait de l'application de la mise à jour sur l'animation (AC_RunActiveContent) et le fichier swfobject.js. C'est au moins ça de gagner mais tant que le plugin Flash ne sera pas installé sur mon pc, je vais avoir du mal de savoir si ça fonctionne et je ne sais pas d'où vient le problème.

Edit : voilà, j'ai testé avec une animation qui n'a pas subit la mise à jour et j'ai bien le texte de remplacement sous IE7 et FF. J'ai essayé aussi de mettre en contenu de remplacement un menu en javascript (avec du js dans le head) et ça semble fonctionner correctement. Maintenant, il me reste à trouver comment faire avec ce satané plugin flash.
 
Discussions similaires
Haut