Flash中没有加载Flash对象

时间:2011-03-31 08:47:50

标签: safari flash show-hide

我已经构建了一个表单,在我的表单元素旁边放置了一个flash对象。加载页面时,表单为display:block,flash对象为display:none。

布局看起来像(img就在那里,如果用户没有flash,gif动画将会播放):

<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>

当我提交我的表单时,只是为了上传文件,我隐藏表单并在javascript中显示我的动画div,如下所示:

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

除了Safari之外,所有浏览器都能很好地工作,因为Safari会出现大的空白区域。右键单击此空白区域只会给我以下菜单:

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

为什么电影没有加载/加载?!如果我只是在文档首次加载时显示电影(通过删除最初隐藏它的javascript行),它会加载并显示正常!任何想法将不胜感激!

--- --- EDIT

我现在尝试使用swfobject,但得到完全相同的问题。我在javascript中使用了这种代码,在显示upload-anim-div之后用javascript嵌入我的swf:

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

任何人都有任何进一步的想法吗?

2 个答案:

答案 0 :(得分:1)

听起来Safari试图通过不在隐藏的div中渲染Flash来削减页面加载时间。你是如何将Flash放入div中的,它只是一个对象标签,还是你使用像swfobject这样的东西?如果您正在使用swfobject,则可以在显示时将Flash写入div。

答案 1 :(得分:1)

我认为您应该尝试使用swfobject嵌入Flash内容: