3

我认为这个问题是不言自明的。以前有人做过吗?

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

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

4

1 回答 1

4

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

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

归结为你似乎想要做的是:

  1. 创建一个页面:
  2. 在里面放一个swf
  3. 向页面添加一个 div 并使用 CSS 定位将其“置于”另一个 swf 之上
  4. 在该 div 中粘贴另一个 swf。

那么,这行得通吗?-是的,非常好,但您必须设置wmode="transparent"嵌入的 Flash 对象(感谢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 文件的行为(从布局的角度来看)就好像它们只是图像一样。这个很酷。

于 2008-12-10T21:08:26.883 回答