Можно ли встроить SWF-файл AS3 в DIV, расположенный над встроенным SWF-файлом AS2?
Вопрос
Я думаю, что вопрос вполне понятен.Кто-нибудь делал это раньше?
ОБНОВЛЯТЬ:Разъяснение, почему мне нужно это сделать.У нас есть один SWF-гигант на сайте AS1–AS2 с большим разделом видеогалереи.Клиент хочет обновить раздел видео, поскольку код AS2 не может обрабатывать его более свежие, гораздо большие видеофайлы.Клиент не будет платить за обновление всего сайта.Итак, я хотел бы иметь возможность накладывать видеобраузер и проигрыватель на основе AS3 на существующий сайт при переходе к этому разделу, таким образом оставляя остальную часть сайта работать правильно с существующим кодом AS2.
Надеюсь, это объясняет вещи немного яснее!
Решение
Я бы не подумал, что AS3 или AS2 имеют к этому какое-то отношение.
С точки зрения веб-браузера они оба представляют собой черный ящик с надписью «Плагин Flash Player».Одновременно можно установить только одну версию плагина, поэтому, даже если у вас есть SWF AS2 и AS3, веб-браузер просто видит, что у него есть 2 экземпляра «Плагин Flash player версии 10».
Чтобы свести к минимуму то, что вы, кажется, пытаетесь сделать, это:
- Создать страницу:
- Вставьте в него SWF
- Добавьте на страницу элемент div и используйте позиционирование CSS, чтобы разместить его «поверх» другого SWF-файла.
- Вставьте еще один SWF в этот div.
Итак, это работает?- Нет Да, очень хорошо, но ты должен установить 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-файлы ведут себя (с точки зрения макета) так, как если бы они были просто изображениями.Это круто.