2008-12-06 3 views
2

Voici la question: Quelle est la meilleure façon de s'assurer que votre exigence pour Flash Version "x" sur un site permettra de détecter correctement la présence de la version ultérieure Adobe Flash Player Version "10" (ou "1y" d'ailleurs) ?Ne pas détecter Flash 10: Bug vidéo Web le plus répandu au monde?

Maintenant, voici le mystère: Pourquoi y a-t-il tant de sites qui nécessitent Flash Player versions 8 et 9 ou mieux de ne pas détecter Flash Player version 10?

Et voici l'arrière-plan juteux, dans des captures d'écran en technicolor dans mon message, "WTF: The Adobe Flash Version 1x Crisis".

MISE À JOUR 2: J'ai depuis confirmé que le problème que je vois n'est pas une mauvaise comparaison pour la même version ou plus récente. Il semble que certaines fonctions de détection côté client soient incapables de déterminer si Flash Player est installé, et encore moins quelle version il est. J'ai également découvert que si je cours en tant qu'administrateur, je n'ai pas le problème: la détection de Flash 10 fonctionne très bien. Cela en fait une plus grande boîte de serpents que je ne le pensais. Je ne suis pas encore prêt à changer le titre de cette question, et je continue à disséquer le code côté client pour voir quelle logique merveilleuse se déroule. Details on these latest revelations sont sur mon blog.

MISE À JOUR: Bien que je fait une recherche, j'ai raté la question connexe « Why don't flash videos play after upgrading to Flash 10? » Les spéculations là sont intéressants, mais ils ne vont pas au fond de celui-ci. En outre, il n'est pas clair comment le problème de Levi a été résolu. Intéressant ... Peut-être que nous pouvons aller au fond des choses ici.


Contexte Certains

J'ai réussi à installer le nouveau Adobe Flash Player version 10.0.12.36 comme une installation propre (avec les versions précédentes supprimées à l'aide du programme de désinstallation fourni Adobe).

La première déception a été remarquée lorsque je ne pouvais pas jouer le dernier programme NCIS du site de télévision CBS, pas en HD, pas dans la norme plaine. Mais je pourrais jouer des vidéos de mes programmes préférés sur Hulu. Plus je flairais, plus je trouvais ces mots odieux que vous ne possédez pas Flash, vous avez besoin d'une version plus récente de Flash, de votre version de Flash bouton pour le téléchargement. Chaque fois que j'ai cliqué sur le bouton de téléchargement/mise à jour, j'ai demandé au site Adobe de faire l'installation (qui échouera si j'essaye de le faire car je ne suis pas administrateur), ma version 10.0.12.36 ayant été confirmée instantanément et aucune mise à jour n'a été tentée.

Curieux, hein?


Le défi

Je pense que je sais exactement ce que le bug le plus probable est dans le script de détection flash que les gens utilisent. C'est trop juteux pour ne pas être le bogue. Maintenant, cela ne signifie pas que tous les sites qui ne détectent pas la version 10 souffrent du même bogue. Je pense juste que celui que j'ai en tête est très probable. Je devrais probablement sceller ma théorie dans une enveloppe quelque part. En attendant, voyons ce que la communauté StackOverflow a à offrir et ce que nous concluons la leçon.

Je dis que le bug est vraiment simple et très drôle. Que dis-tu?

+0

Toute solution à cela? Curieuse!!! –

Répondre

1

Je dirais la détection de chaîne qui est quelque chose comme « Flash Player Version X.Y » en faisant quelque chose comme « obtenir le caractère avant.» et convertissez-le en nombre. " Je l'ai fait quelques fois moi-même, c'est juste stupide.

+0

Super! Je n'aurais jamais pensé à ça. Cela expliquerait certainement certains des messages que je reçois qui disent que je cours la version «0» ou que ma version est plus ancienne que la version (8 ou 9) qu'ils veulent. Vous pouvez être sur quelque chose. Voyons voir ce que les autres ont à dire. – orcmid

+0

L'exemple de code que j'ai rencontré utilise un split pour décomposer la chaîne de version en un tableau de chaînes, de sorte que cette erreur ne se produira pas. Peu importe comment les parties sont comparées après cela, cependant. Il semble y avoir un nombre excessif de façons de se tromper. Je me demande quel sera le gagnant. – orcmid

1

Malheureusement, le problème est dû à la mauvaise détection de la version livrée avec le flash. C'est vrai, le code de mauvaise qualité qu'il a réellement créé par Adobe Flash (ne sais pas quelles versions), qui est la raison pour laquelle il est si répandu.

Personnellement, j'utiliser swfObject pour intégrer Flash.

+0

J'espérais que ce n'était pas leur faire. Pouvez-vous fournir des liens vers où Adobe expédie le code de détection. Je ne suis pas tout à fait ce que le chemin est à son utilisation sur un site qui sert le flux vidéo et sélectionne le Flash Player. – orcmid

+0

Le site swfObject est très pratique. J'ai trouvé le lecteur Adobe Flash Player 1.5 Kit de détection à http://www.adobe.com/products/flashplayer/download/detection_kit/ Je serai curieux de voir si elles ont fait exploser. – orcmid

+0

Je travaille maintenant sur l'exemple de détection côté client du kit de détection Adobe Flash Player 1.5. Jusqu'à présent, le problème ne réside pas dans les comparaisons mais dans la recherche d'un lecteur Flash. Je dois maintenant creuser dans le GetSwfVer pour voir pourquoi il ne trouve pas Flash Player. – orcmid

2

Je pense le javascript fait comparaison de chaînes, et dans la terre de la chaîne, « 10 » < « 9 ».

En outre, Flash10 changé leur modèle de sécurité un peu (casser un outil que j'utilise appelé SWFUpload) il peut être lié à celui (voir: http://benr75.com/articles/2008/11/25/swfupload-with-flash-10-fix)

+0

Je m'en doutais aussi. Après avoir fait le tour, j'ai découvert que JavaScript n'échoue pas comme le fait strcmp en C. x orcmid

+0

alerte ("Dans la terre de chaîne, \" 10 \ » est "+ ("10" < "9" "moins": " " "plus") +" que \" 9 \) – some

+0

si (" 10" <"9") {alert ("10 est inférieur à 9 dans la chaîne")} – some

Questions connexes