2011-03-31 5 views
2

J'ai construit un formulaire, et à côté de mon élément de formulaire j'ai placé un objet flash. Lorsque la page est chargée, le formulaire affiche display: block et l'objet flash est affiché: none.Objet Flash ne se chargeant pas dans Safari

La mise en page ressemble à (l'img est là de sorte que si l'utilisateur n'a pas le flash, l'animation gif va jouer à la place):

<form id="form"></form> 
<div id="upload-anim-div"> 
    <object type="application/x-shockwave-flash" 
     data="<?= PAL_STATIC_HOST ?>/music/introducing/flash/upload_animation.swf" 
     width="626" 
     height="600"> 
    <param name="movie" value="<?= PAL_STATIC_HOST ?>/music/introducing/flash/upload_animation.swf"/> 
    <img src="<?= PAL_STATIC_HOST ?>/music/introducing/img/Anim-placeholder.gif" alt="upload animation (gif)"/> 
    </object> 
</div> 

Quand je soumets ma forme, ce qui est juste télécharger un fichier, je cache la forme et afficher mon animation div comme suit javascript:

$('#form').hide(); 
$('#upload-anim-div').show(); 

Cela fonctionne très bien dans tous les navigateurs sauf Safari, où un grand espace blanc apparaît. Un clic droit cet espace blanc me donne simplement le menu suivant:

Flash movie not loaded... _not clickable_ 
About Adobe Flash Player 10.5.blah... 

Pourquoi le film non chargé/chargement ?! Si je montre simplement le film quand le document se charge d'abord (en supprimant la ligne javascript qui le cache initialement) il charge et affiche bien! Toutes les idées seraient grandement appréciées!

--- EDIT ---

J'ai maintenant essayé d'utiliser swfobject, mais obtenir exactement le même problème. J'ai utilisé ce genre de code dans mon javascript pour intégrer mon swf avec javascript après avoir affiché le téléchargement-anim-div:

swfobject.embedSWF("myContent.swf", "upload-anim-div", "626", "600", "10"); 

Quelqu'un a d'autres idées?

+0

Je vais avoir un problème très similaire, sauf que je ne suis pas en utilisant des conteneurs cachés. J'utilise exactement le même code qui vient du générateur swfobject [avec les noms et les ids appropriés] et il fonctionne dans tous les navigateurs sauf pour safari. Je travaille actuellement avec Safari 5.0.4 dans un mac. Je suis sûr que cela doit être une erreur de débutant mais je ne peux pas trouver une solution. –

Répondre

1

Des sons comme Safari tentent de réduire le temps de chargement de la page en ne rendant pas Flash dans une div masquée. Comment mettez-vous le Flash dans la div, est-ce juste une balise d'objet, ou utilisez-vous quelque chose comme swfobject? Si vous utilisez swfobject, vous pouvez écrire le Flash dans la div lorsque vous le révélez.

+0

yup juste un tag d'objet. Je connais très peu le flash, j'ai donc peur de ne pas savoir comment j'écrirais 'le Flash à la div quand tu le révèleras' .. – tiswas

+0

Regarde le lien de Rob ci-dessus. swfobject est très facile à utiliser, et vous pouvez toujours poster ici si vous êtes coincé. – shanethehat

1

Je pense que vous devriez essayer d'intégrer votre contenu Flash avec swfobject:

+0

thansks pour le lien. Ne pensez-vous pas qu'il existe une façon plus simple d'y arriver? Il fonctionne actuellement dans tous les autres navigateurs! – tiswas

+0

:) Essayez-le, vous l'aimerez. – robertp

+0

alors pouvez-vous me dire ce que je devrais changer dans mon balisage HTML autre que d'ajouter 'inclure swfobject.js' pour que cela fonctionne ..? – tiswas

Questions connexes