Forum de discussion
Forum « Flash et Shockwave » (archives)
Re: Tester présence plug-in Flash...
Envoyé: 10 octobre 2002, 9h53 par Oznog
La façon la plus simple est de faire un Flash avec une redirection (getUrl) vers la version Flash ou un bouton Entré.
Si le visiteur à le plug-in Flash il pourra passer à la version Flash.
Mais puisque Macromedia permet au plug-in 5 de voir un Flash 6 (tout croche) il faut aussi détecter la version dans le Flash.
Moi je te conseil la redirection. Dans ta page d'index, tu fait un site HTML normal. Note que celui qui a le plug-in Flash 3 ne verra pas ton flash de détection, alors indique de téléchargez le dernier module externe (plug-in) clairement sur cette page. Dans cette page tu met un Flash de détection.
1. Fait un flash de 16x16 pixels.
2. Ajoute une image-clée sur le cadre (frame) 6.
3. Sur ce cadre (frame 6) met un stop();
4. Et ajoute ce code :
sModuleExterne = eval("$version");
nLongeur = length(sModuleExterne);
while (i<=nLongeur) {
i = i+1;
temp = substring(sModuleExterne, i, 1);
if (temp eq " ") {
sOS = substring(sModuleExterne, 1, i-1);
sVersionMaj = substring(sModuleExterne, i+1, 1);
sTempVersion = substring(sModuleExterne, i+1, nLongeur-i);
sVersionMin = substring(sTempVersion, 5, 2);
}
}
if (sVersionMaj=="6") {
getUrl("pageFlash.htm");
} else {
getUrl("pageGetFlash6.htm");
}
stop();
Donc, si le visiteur a bien le module externe 6 (plug-in 6) il sera automatiquement redirigé vers la page "pageFlash.htm" qui devrait contenir ton Flash. Sinon, il sera redirigé vers la page qui indique de télécharger la dernière version, soit "pageGetFlash6.htm". Dans ce dernier cas on parle d'un visiteur qui a un plug-in mais pas le bon. LEs autres, resteront sur la page d'index avec un message de télécharger la dernière version. Tu peux ajouter dans cette page une redirection automatique vers la page de téléchargement.
<meta HTTP-EQUIV="Refresh" CONTENT="10;URL=pageGetFlash6.htm">
Ce dernier code copié dans le "HEAD" de la page INDEX redirigera le visiteur vers la page de téléchargement après 10 secondes. Si le Flash ne fonctionne pas, il sera redirigé automatiquement, mais puisque c'est long tu peux aussi ajouter ce petit Javascript qui fait un test supplémentaire pour augmenter la rapidité.
1. Très important, la déclaration du Flash de détection doit avoir le ID suivant (tant l'OBJECT que le EMBED:
ID="detection" pour l'OBJECT
et
NAME="detection" pour le EMBED
Et le EMBED doit avoir swLiveConnect="true"
Ensuite copie sous la déclaration du Flash de détection ce code :
<SCRIPT LANGUAGE="JavaScript">
if (null == document.detection) {
location.href="pageGetFlash6.htm";
}
</SCRIPT>
=================
D'autre part...
Il y a toujours un test Javascript complet et autonome mais je ne le conseil pas, ça boggue. Script de http://www.kirupa.com/developer/mx/detection.asp
<SCRIPT LANGUAGE=JavaScript1.1>
<!--
var MM_contentVersion = 6;
var plugin = (navigator.mimeTypes && navigator.mimeTypes["application/x-shockwave-flash"]) ? navigator.mimeTypes["application/x-shockwave-flash"].enabledPlugin : 0;
if ( plugin ) {
var words = navigator.plugins["Shockwave Flash"].description.split(" ");
for (var i = 0; i < words.length; ++i)
{
if (isNaN(parseInt(words[i])))
continue;
var MM_PluginVersion = words[i];
}
var MM_FlashCanPlay = MM_PluginVersion >= MM_contentVersion;
}
else if (navigator.userAgent && navigator.userAgent.indexOf("MSIE")>=0
&& (navigator.appVersion.indexOf("Win") != -1)) {
document.write('<SCR' + 'IPT LANGUAGE=VBScript\> \n'); //FS hide this from IE4.5 Mac by splitting the tag
document.write('on error resume next \n');
document.write('MM_FlashCanPlay = ( IsObject(CreateObject("ShockwaveFlash.ShockwaveFlash." & MM_contentVersion)))\n');
document.write('</SCR' + 'IPT\> \n');
}
if ( MM_FlashCanPlay ) {
window.location.replace("http://www.kirupa.com/flash.htm");
} else{
window.location.replace("http://www.kirupa.com/noflash.htm");
}
//-->
</SCRIPT>
Ciao
Oznog
Réponses
|