Можно ли встроить swf AS3 в DIV, расположенный выше встроенного swf AS2?

Я думаю, что вопрос довольно очевиден. Кто-нибудь делал это раньше?

ОБНОВЛЕНИЕ : разъяснение, почему я должен сделать это. У нас есть один SWF-бегемот сайта AS1 - AS2 с большим разделом видеогалереи. Клиент хочет обновить раздел видео, так как код AS2 не может обрабатывать их более свежие, гораздо большие видеофайлы. Клиент не будет платить за обновление всего сайта. Итак, я хотел бы иметь возможность накладывать видео-браузер и проигрыватель на основе AS3 на существующий сайт при переходе по этому разделу, чтобы остальная часть сайта работала корректно с существующим кодом AS2.

Надеюсь, это объясняет все немного яснее!

10.12.2008 19:27:49
1 ОТВЕТ
РЕШЕНИЕ

Не думаю, что это AS3 или AS2.

С точки зрения веб-браузера они оба являются черным ящиком с надписью «Плагин Flash Player». Вы можете установить только одну версию плагина одновременно, поэтому, даже если у вас есть AS2 и AS3 swf, веб-браузер просто видит, что у него есть 2 экземпляра «Flash player plugin version 10»

Чтобы свести это к минимуму то, что вы пытаетесь сделать, это:

  1. Создать страницу:
  2. Вставь в нее SWF
  3. Добавьте div на страницу и используйте позиционирование CSS, чтобы поместить его поверх другого swf
  4. Вставьте еще один swf в этот div.

Итак, это работает? - Нет Да, очень хорошо, но вы должны установить wmode="transparent"на свои встроенные flash-объекты (спасибо грейпфрукту в комментариях).

Я выполнил тест: вот мой исходный код:

<!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-файлы ведут себя (с точки зрения компоновки), как если бы они были просто изображениями. Это круто.

4
10.12.2008 21:18:53
Установите нижнюю вспышку wmode на прозрачный, и он должен работать, в худшем случае вам может потребоваться установить оба параметра на прозрачный.
grapefrukt 10.12.2008 21:10:44
Огромное спасибо Ориону Эдвардсу и всегда полезному грейпфруту!
defmeta 10.12.2008 22:26:30
Воспроизведение видео в режиме wmode = прозрачный кошмар, кстати!
discorax 18.12.2008 05:43:34