【问题标题】:Hiding/Showing a swf in a div?在 div 中隐藏/显示 swf?
【发布时间】:2009-07-22 21:01:31
【问题描述】:

我有一个 flex 应用程序,我想将它隐藏在 div 中,直到用户单击某种类型的链接或元素。我注意到将 swf 嵌入到具有样式 display:none 的 div 中实际上并没有隐藏 swf,那么我该如何实现呢?

目标是让 flex 应用程序在后台加载,而用户执行其他操作。 谢谢。

【问题讨论】:

    标签: javascript html apache-flex flash


    【解决方案1】:

    尝试将以下wmode 设置为您的Flash 对象,并同时使用visibility: hidden;

    <param name="wmode" value="opaque" />
    <embed ... wmode="opaque" ... />
    

    默认情况下,flash 基本上会在您的内容上覆盖一个窗口,即:

    1. z-index 比您页面上的任何内容都大
    2. 不从其父级继承显示(将display: none; visibility: hidden; 设置为&lt;object&gt; 标记将起作用)。

    通过将wmode 设置为opaque,它基本上告诉flash 将您的&lt;object&gt; 视为正常的DOM 标签,它响应正常的继承和z-index 规则。它的性能成本非常低。

    另外,请注意,某些浏览器在对象显示之前不会加载它。

    【讨论】:

    • 这在 IE8、IE6 或 Opera 中不起作用。 display:none 仍然无法隐藏嵌入的 swf。本质上,我需要它在所有浏览器中工作。 (Opera, chrome, IE6/7/8, Firefox3/3.5/3.5.1, Safari 3+)
    • @iftrue: 更新了我的帖子以获取更多信息。你可能总是尝试在你的对象标签上设置display: none; visibility: hidden;,但我过去在命名浏览器中使用wmode没有任何问题。
    • 事实证明,有一个特殊的 Flash 部署过程被多个 javascript 包含隐藏。在正确的地方使用 wmode 效果很好:)。
    • @iftrue: 在这种情况下,您可能需要考虑更改已接受的答案。
    【解决方案2】:

    我通常只是将容器的高度/宽度强制为 1 x 1 px...

    <div style="height:1px; width:1px;" >... flash goes here ...<div>
    

    然后,当我需要闪光灯时,我会根据需要重新设置高度/宽度。请注意,如果您只想将硬件重置为“100%”,这将绑定到父 div,您可能希望将其放入父容器中,并带有“位置:相对;高度:?px;宽度:?px”设置。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-05-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多