【问题标题】:Display image above flash object在 Flash 对象上方显示图像
【发布时间】:2010-02-05 06:52:00
【问题描述】:

我在这里遇到了一个棘手的情况...这就是问题所在...
我有一个要在其上显示图像的 flash 对象
这些是我尝试过的技巧...1. 玩 z-index(没用)
2. 将 wmode 参数设置为透明/不透明(再次没用)
3. 使用 javascript 并仅在页面加载后显示图像(仍然没有使用)
我尝试谷歌搜索但没有找到解决方案..:(
提前致谢

更新-我正在使用的代码

        <div style="position:absolute; top:0px; z-index:-2000;">
            <object classid="clsid:D27CDB6E-AE6D-11CF-96B8-444553540000" id="obj1" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0" border="0" width="176" height="146">
                <param name="movie" value="sample.swf" />
                <param name="wmode" value="transparent" />
                <param name="quality" value="High" />
                <param name="menu" value="false" />
                <embed src="sample.swf" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" name="obj1" menu="false" width="176" height="146" />
            </object>
        </div>
        <div style="position:absolute; top:0px; z-index:2000;">
            <img src="Logo.gif" alt="" />
        </div>

也试过 value="opaque"
已完成所有可能的建议...请帮助..

【问题讨论】:

  • 您可能想将“上面”改写为“前面”或类似的内容。
  • 是的...闪光灯前的图像..

标签: javascript css flash


【解决方案1】:

更新: 我知道关于 wmode 要么是一个,要么是另一个,但我选错了。不应该回答睡眠不足的问题。我现在已经检查过了,wmode 设置为透明 你想要什么。它允许您将 HTML 元素置于 Flash 对象之上。

其次,以标准友好的方式嵌入Flash,并使用swfobject

首先尝试在 Flash 上叠加一个颜色鲜艳的 div 进行测试。另外,也许将图像代码移到 Flash 上方,看看效果如何。

最后,让您的代码工作所需的一切,正如 K Prime 上面提到的,在您的嵌入标签中也将 wmode 设置为透明。。 p>

<div style="position:absolute; top:0px; z-index:-2000;">
    <object classid="clsid:D27CDB6E-AE6D-11CF-96B8-444553540000" id="obj1" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0" border="0" width="176" height="146">
        <param name="movie" value="/Images/WordOfLife.swf" />
        <param name="wmode" value="transparent" />
        <param name="quality" value="High" />
        <param name="menu" value="false" />
        <embed src="/Images/WordOfLife.swf" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" name="obj1" wmode="transparent" menu="false" width="176" height="146" />
    </object>   
</div>

<div style="position:absolute; top:0px; z-index:2000;">
    <img src="Logo.gif" alt="" />
</div>

【讨论】:

  • 哇...非常有用...但在Firefox中无法正常工作..:(
  • 不,将 wmode 设置为透明不会强制 Flash 对象位于顶部。要在 Flash Player 前显示图像或任何 HTML,您需要将 wmode 设置为不透明或透明。 wmode transparent 还将在 Flash 对象的空白部分后面显示 HTML,而 opaque 将显示 Flash 对象的背景颜色,隐藏 Flash 对象后面的任何内容。省略 wmode 参数(使用默认的 wmode“window”)将使 Flash Player 接管屏幕该部分的渲染,并且浏览器无法在该区域渲染任何其他内容(在大多数浏览器中)。
  • 是的,我知道它是如何工作的以及它做了什么,我只是弄错了它是在默认设置中还是透明的。修改了答案,以免他被误导。谢谢。
【解决方案2】:

我猜你的代码在 IE 中运行良好,但在 FF 中不行 - 也可以在 embed 中添加一个 wmode 参数:

<embed 
    src="/Images/WordOfLife.swf" 
    pluginspage="http://www.macromedia.com/go/getflashplayer" 
    type="application/x-shockwave-flash" 
    name="obj1" 
    menu="false" 
    width="176" 
    height="146"  
    embed="transparent"
/>

【讨论】:

  • 不确定我是否完全理解你的意思..但是当我尝试上述方法时它根本不起作用......没有显示flash对象..!!
  • @ZX12R - 我的意思是,只需更改代码的embed 部分,并保留object
【解决方案3】:

我完全用 CSS 做了一个 HTML 菜单下拉菜单,Flash 对象总是在每个下拉菜单的顶部。

所以,这就是我所做的。将 Flash wmode 设置为不透明。

对于您的情况,将 flash 对象 wmode 设置为不透明,并为图像提供高于 flash 对象 z-index 的 z-index(尝试 1000 以“保证”更高的位置)。

【讨论】:

    【解决方案4】:

    当您使用 z-index 时,请确保两者(img 和 flash 对象)的 CSS 位置都设置为相对或绝对:

    .imgAboveFlash {
        position: relative;
        z-index: 10; /* higher than that of flash object */
    }
    

    并将 flash 对象的 wmode 设置为 opaque

    确保 html 元素的 位置设置为相对

    【讨论】:

    • 与透明/不透明 wmode 结合使用?
    • 你应该同时做,使用不透明的wmode你会获得最大的成功。
    • 然后设置绝对定位元素的宽度和高度?您在哪个浏览器中测试它?
    • 在 firefox 中测试,即...是的,我现在只使用 div 而不是图像进行测试...div 具有特定的宽度和高度..
    【解决方案5】:

    像上面一样将 wmode 设置为透明,但将您的内容放入 iframe。刚刚解决了我的问题:http://argyleink.com/dieantsdie/

    【讨论】:

      猜你喜欢
      • 2014-01-07
      • 1970-01-01
      • 2015-10-17
      • 1970-01-01
      • 2017-06-01
      • 2011-04-04
      • 1970-01-01
      • 2011-08-13
      • 1970-01-01
      相关资源
      最近更新 更多