是否可以在嵌入式AS2 swf上方的DIV中嵌入AS3 swf?

时间:2008-12-10 19:27:50

标签: html flash embed

我认为这个问题非常自我解释。有人这么做过吗?

更新:澄清为什么我需要这样做。我们有一个AS1-AS2站点的单一swf庞然大物,有一个大型视频库部分。客户想要更新视频部分,因为AS2代码无法处理更新,更大的视频文件。客户端不会支付整个站点的更新费用。因此,我希望能够在导航到该部分时在现有站点上覆盖基于AS3的视频浏览器和播放器,从而使该站点的其余部分与其现有的AS2代码一起正常工作。

希望能更清楚地解释一下事情!

1 个答案:

答案 0 :(得分:4)

我不认为它是AS3还是AS2与它有关。

从网络浏览器的角度来看,它们都是一个黑色的盒子,上面写着“Flash Player插件”。您一次只能安装一个版本的插件,所以即使您有AS2和AS3 swf,Web浏览器也会看到它有2个“Flash player插件版本10”的实例

将你想要做的事情简化为:

  1. 创建页面:
  2. 坚持使用瑞士法郎
  3. 在页面中添加div并使用CSS定位将其“覆盖”其他swf
  4. 在那个div中贴上另一个瑞士法郎。
  5. 那么,这有用吗? - 是的,非常好,但您必须在嵌入式Flash对象上设置wmode="transparent"(感谢评论中的grapefrukt)。

    我进行了测试:这是我的源代码:

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
        <head>
            <style type="text/css" media="screen">
                DIV{ width: 300px; height; 300px;}
                #background{ border: 1px solid green; background-color: green; z-index: 0; }
                #foreground{ border: 1px solid red; background-color: red; z-index: 50; }
            </style>
        </head>
        <body>
            <div id="background">
                <embed height="208" width="208" quality="high" bgcolor="#fff" src="bgswf.swf" type="application/x-shockwave-flash" wmode="transparent"/>
            </div>  
    
            <div id="foreground" style="position: absolute; left: 30px; top: 30px;">
                <embed height="208" width="208" quality="high" bgcolor="#fff" src="fgswf.swf" type="application/x-shockwave-flash" wmode="transparent"/>
            </div>  
    
        </body>
    </html>
    

    结果:

    没有wmode=transparent,在firefox和IE中是不一致的,并且很小。有了它,你可以在IE和Firefox中完成你的想法 swf文件的行为(从布局的角度来看)就好像它们只是图像一样。这很酷。