我有一个网页,其中嵌入了一个flash文件。该flash文件正在进行一个包含4个问题的测验。当用户回答第一个问题时,将显示第二个问题。这个flash嵌入在一个名为div的div中divFlashcontent.Now我想隐藏并显示inbetween之间的测验.Ex:当用户点击一个按钮(“暂停”)时,我想隐藏测验。当他点击“继续”按钮时,我想继续(显示)测验。我正在使用jquery show()方法和hide方法。但问题是,当我调用show方法时,Flash内容再次被加载(从头开始显示测验)。它没有显示我们点击暂停按钮的阶段。我怎么解决这个问题?我希望flash能够处于隐藏的同一阶段
答案 0 :(得分:9)
内部$.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();
答案 1 :(得分:1)
我知道这是一个旧线程,但我想为那些寻求不需要更改现有JS代码的人发布一个简单的解决方案。在我的例子中,我有一个现有的Tabset组件,它创建了新的标签并动态加载嵌入SWF的html。
IMO,处理此问题的最简单方法是在SWF周围放置一个iframe包装器 - 然后在显示/隐藏Div容器时不会关闭/重新加载。
要解决此问题,您只需插入一个简单的html包装文件。
主要应用 - > HTML加载器 - > SWF文件
主要应用 - > iframe loader - > HTML加载器 - > SWF文件
<iframe src="/stuff/swfContainer.html" style="width:100%;height:100%;border:0px;">
</iframe>
然后在swfContainer.html里面做这样的事情:
<html>
<head>
<style>
body {
margin:0px;
}
</style>
</head>
<body>
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
id="MySwf" width="100%" height="100%"
codebase="http://fpdownload.macromedia.com/get/flashplayer/current/swflash.cab">
<param name="movie" value="/stuff/mySwf.swf" />
<param name="quality" value="high" />
<param name="allowScriptAccess" value="sameDomain" />
<embed src="/stuff/mySwf.swf" quality="high"
width="100%" height="100%" name="MySwf" align="middle"
play="true"
loop="true"
quality="high"
allowscriptaccess="sameDomain"
type="application/x-shockwave-flash"
pluginspage="http://www.adobe.com/go/getflashplayer">
</embed>
</object>
</body>
</html>
这只是一个简单的代码示例,因为您可能希望使用swfobject来加载SWF,但我会将其留给您。
答案 2 :(得分:0)
你有很多选择,但最好的方法是将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
答案 3 :(得分:0)
在Firefox和Chrome上为我工作的唯一解决方案是flash容器上的这些css代码:
如果你想&#34;删除&#34;从文档中闪现(有点像display:none
):
width:0;
height:0;
如果你只想隐藏没有&#34的元素;删除&#34;来自文件:
visibility: hidden
职位提示不适用于Chrome