使用show和hide方法时停止重新加载flash文件

我有一个网页,其中嵌入了一个Flash文件。闪存文件正在进行一个包含4个问题的测验。当用户回答第一个问题时,将显示第二个问题。这个闪存嵌入一个名为divFlashcontent.Now的div中。我想隐藏并显示inbetween之间的测验.Ex:当用户点击一个按钮(“暂停”)时,我想隐藏测验。 当他点击“继续”按钮时,我想继续(显示)测验。 我正在使用jquery show()方法和hide方法。 但问题是,当我调用show方法时,Flash内容再次被加载(从头开始显示测验)。它没有显示我们点击暂停按钮的阶段。 我怎么解决这个问题? 我希望flash能够处于隐藏的同一个阶段

内部$.hide()方法执行css: display:none; 在你的元素上。 这将导致闪存每次重新加载。 我建议以不同的方式隐藏你的闪存,因为它对这个css属性的反应很差。

这是一个插件,通过将元素放在屏幕上来隐藏元素。 这并不适用于所有情况,但如果适用于您,则非常有用。

要添加的CSS:

 .flashHide { position:absolute; left:-99999px; } 

并添加插件:

 (function($){ var hideClassName = 'flashHide'; $.fn.extend({ flashHide: function() { return this.each(function(){ $(this).addClass(hideClassName); }); }, flashShow: function() { return this.each(function(){ $(this).removeClass(hideClassName); }); } }); })(jQuery); 

然后你会像这样使用它:

 $('div#flashContainer').flashHide(); $('div#flashContainer').flashShow(); 

我知道这是一个旧线程,但我想为那些寻找不需要更改现有JS代码的人发布一个简单的解决方案。 在我的例子中,我有一个现有的Tabset组件,它创建了新的选项卡并动态加载嵌入SWF的html。

IMO,最简单的处理方法是在SWF周围放置一个iframe包装器 – 然后在显示/隐藏Div容器时不会关闭/重新加载。

要解决此问题,您只需插入一个简单的html包装器文件。

旧方式:

主应用程序 – > HTML加载程序 – > SWF文件

新方法:

主应用程序 – > iframe loader – > HTML loader – > SWF文件

简单的例子:

  

然后在swfContainer.html里面做这样的事情:

               

这只是一个简单的代码示例,因为您可能希望使用swfobject来加载SWF,但我会将其留给您。

你有很多选择,但最好的方法是将flash代码添加到容器eq #hiddeflash中,在修改后的代码中。 你还需要玩叠加z-index和postion:

 /*1*/ visibility:hidden!important; /*1*/ position:absolute; left:-300%; /*3*/ width:0; height:0; /*4*/ visibility:hidden!important; /*5*/ display:none 

在Firefox和Chrome上为我工作的唯一解决方案是flash容器上的这些css代码:

如果你想从文件中“删除”闪存(有点像display:none ):

 width:0; height:0; 

如果您只想隐藏元素而不从文档中“删除”:

 visibility: hidden 

位置提示不适用于Chrome