2009-06-05 8 views
0

Je suis un Flash n00b complet, mais j'ai de la difficulté et je pensais que poster ma question valait la peine d'être photographiée, même si c'est probablement trop complexe pour la véhiculer efficacement ici.Flash: comportement incorrect dans tout sauf Internet Explorer

Mon client voulait une intro flash (beurk!) Donc je l'ai fait pour qu'il en résulte un menu avec des liens vers d'autres pages du site. Pour minimiser les visiteurs agaçants, j'utilise un cookie pour déterminer si l'utilisateur était déjà sur la page d'accueil, et si c'est le cas, passez l'animation entière et affichez simplement le menu. J'utilise la bibliothèque JavaScript ActiveContent pour intégrer Flash sur ma page. Je passe une valeur au fichier Flash via la chaîne de requête (par exemple, myflash.swf?animation=false) et dans Flash lors de la lecture de cette valeur en utilisant gotoAndPlay() pour passer à la dernière image de l'animation. J'utilise ActionScript 3.

Dans Internet Explorer 8 et uniquement IE, cela fonctionne comme prévu. Malheureusement, aucun autre navigateur ne le fait; ils montrent tous l'animation complète. Le cookie fonctionne correctement, mais c'est comme si Flash ignorait totalement la commande gotoAndPlay.

Puisque je ne sais pas vraiment ce que je fais, j'ai probablement mal fait. Comme je l'ai dit, je sais que c'est un longhot sans poster des tas de code, mais quelqu'un a des idées?

Répondre

0

Il me semble que le flash fonctionne correctement (car il travaille dans IE), mais en quelque sorte le paramètre est passé au flash des autres navigateurs. Je suggère d'ajouter quelque chose dans le flash pour m'assurer que vous obtenez réellement le paramètre que vous attendez. Ensuite, vérifiez dans les différents navigateurs pour voir si elle est transmise.

Si vous pouviez poster l'appel ActiveContent que vous utilisez pour intégrer le flash, cela aiderait à voir s'il y a quelque chose qui ne va pas dans la façon dont il passe l'argument à l'animation flash.

1

Comme il est peu probable que vous avez un bug flash, je suppose que vous utilisez des différences dans la façon dont chaque navigateur gère l'idée des variables passant dans Intègre. Bien que ce soit probablement corrigible pour un navigateur donné, une correction qui fonctionne dans tous les navigateurs peut être difficile (en particulier avec les anciens navigateurs). Et bien sûr, vous ne savez jamais vraiment que vous êtes en sécurité jusqu'à ce que vous testiez tout.

Il serait beaucoup plus robuste de regarder SharedObject. Les SO sont essentiellement des cookies, sauf que le lecteur Flash stocke et récupère eux-mêmes, sans passer par le navigateur. (Ils ne sont pas non plus sérialisés, vous pouvez simplement stocker un booléen ou quoi que ce soit.) Cela évite les différences dans la façon dont les navigateurs traitent les incorporations. Cela signifie également que même si un utilisateur consulte le site dans IE et l'ouvre ensuite dans Firefox, vous pouvez toujours dire qu'il a déjà vu l'intro.

Questions connexes