将任意flash对象wmode更改为透明

Nir*_*Nir 10 javascript flash swfobject object wmode

我需要将wmode任意flash对象从外部js文件更改为透明,以确保它们不使用Jquery或类似的lib来隐藏菜单.

在FF我使用getElementsByTagName("embed")和设置属性.它似乎运作良好.

具体来说我在IE7 中遇到了objectswfObject库设置的问题.

swfObject 在iE7中创建以下代码:

<OBJECT id=mymovie height=400 width=134 classid=clsid:D27CDB6E-AE6D-11cf-96B8-444553540000>
        <PARAM NAME="_cx" VALUE="3545">
        <PARAM NAME="_cy" VALUE="10583">
        <PARAM NAME="FlashVars" VALUE="">
        <PARAM NAME="Movie" VALUE="imgs/site/tower.swf">
        <PARAM NAME="Src" VALUE="imgs/site/tower.swf">
        <PARAM NAME="WMode" VALUE="Window">
        <PARAM NAME="Play" VALUE="0">
        <PARAM NAME="Loop" VALUE="-1">
        <PARAM NAME="Quality" VALUE="High">
        <PARAM NAME="SAlign" VALUE="">
        <PARAM NAME="Menu" VALUE="-1">
        <PARAM NAME="Base" VALUE="">
        <PARAM NAME="AllowScriptAccess" VALUE="">
        <PARAM NAME="Scale" VALUE="ShowAll">
        <PARAM NAME="DeviceFont" VALUE="0">
        <PARAM NAME="EmbedMovie" VALUE="0">
        <PARAM NAME="BGColor" VALUE="FFFFFF">
        <PARAM NAME="SWRemote" VALUE="">
        <PARAM NAME="MovieData" VALUE="">
        <PARAM NAME="SeamlessTabbing" VALUE="1">
        <PARAM NAME="Profile" VALUE="0">
        <PARAM NAME="ProfileAddress" VALUE="">
        <PARAM NAME="ProfilePort" VALUE="0">
        <PARAM NAME="AllowNetworking" VALUE="all">
        <PARAM NAME="AllowFullScreen" VALUE="false">
</OBJECT>
Run Code Online (Sandbox Code Playgroud)

我尝试各种可能的方法来设置wmodetransparent,使闪光灯无法掩盖漂浮物没有成功,包括但不限于:

  1. 搜索OBJECT并更改PARAM wmodetransparent.
  2. 设置属性Object(wmode=transparent)
  3. 调用它objectSetValue功能

似乎没有工作.虽然wmode似乎改变了Flash仍然隐藏其他高对象的对象z-index.我在这里错过了什么?

小智 10

我用这个小技巧成功了:

$("embed").attr("wmode", "opaque").wrap('<div>');
Run Code Online (Sandbox Code Playgroud)

它有效地重绘了flash对象,为我工作.


jac*_*gel 2

当您使用 SWFObject 包含 Flash 时,embedSWF 方法中应该有一个名为“params”的参数。您将一个对象传递给它,如下所示:

swfobject.embedSwf(blah,blah,blah, { wmode:'transparent'});
Run Code Online (Sandbox Code Playgroud)

更多这里