使用wmode =" direct"在SWF对象上分层HTML元素

时间:2012-12-10 12:37:37

标签: html flash overlay wmode

我一直在寻找如何在SWF对象上层叠html元素,最后我想出的是(根据Abode): -

Internet Explorer :根本不支持分层。

Firefox :不支持分层(但它有效,但没有透明度)。

Chrome Adobe声称它不受支持,但令人惊讶的是它运行良好且透明。

Safari(Windows):根本不支持分层。

safari(Mac OS):支持。

我知道我可以轻松设置wmode =“transparent”或wmode =“opaque”,分层工作就可以了。但我发现,对于包含3D内容的SWF对象,其wmode必须设置为“direct”或“gpu”。

如果有人知道这个问题的任何解决方案,我会很感激因为我正在开发一个关于Flash的游戏我想用html元素覆盖它并且我没有找到任何坚定的答案是否可能

提前致谢

1 个答案:

答案 0 :(得分:2)

经过几次尝试后,我得到了一个解决Firefox& IE浏览器。 它有点脏,但在某些情况下有效。

iFrame显示在swf的顶部,因此您可以在iframe中添加分层html。

你可以进一步将iframe设置为背景,只需要为即将到来的html保持清晰。 HTML:

<div class="box">
<iframe src="emptyframe.html" frameborder="0" class="emptyiframe"></iframe>
<div class="content">
Shown on top
</div>
</div>

CSS:

.box { position: absolute; z-index: 100; background: #fff;}
.emptyiframe { position: absolute; width: 100%; height: 100%; border: none; z-index: -1;     }

使用此解决方案,即使使用wmode =“direct”,也可以在flash上​​添加元素。但是你需要记住,iframe是在flash顶部的html背景中,所以你不能透明。