Я бы не подумал, что это AS3 или AS2 имеет какое-либо отношение к этому.
С точки зрения веб-браузера они оба представляют собой черный ящик с надписью «Плагин Flash Player». Вы можете установить только одну версию плагина одновременно, поэтому, даже если у вас есть AS2 и AS3 swf, веб-браузер просто видит, что у него есть 2 экземпляра «Flash player plugin version 10»
Чтобы свести это к минимуму, вы пытаетесь сделать следующее:
- Создать страницу:
- Вставьте в нее SWF
- Добавьте div на страницу и используйте позиционирование CSS, чтобы поместить его поверх другого swf
- Вставьте еще один swf в этот div.
Так это работает? - Нет Да, очень хорошо, но вы должны установить 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-файлы ведут себя (с точки зрения компоновки), как если бы они были просто изображениями. Это круто.