Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Общие вопросы о Flash (не затрагивающие ActionScript) (http://www.flasher.ru/forum/forumdisplay.php?f=60)
-   -   SWFObject 2. Не отображает flash при 100% размере (http://www.flasher.ru/forum/showthread.php?t=182195)

RedGrAg 15.07.2012 16:46

SWFObject 2. Не отображает flash при 100% размере
 
вот такой код (сгенерированный swfobject_generator_1_2):
Код:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
        <head>
                <title></title>
                <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
                <script type="text/javascript" src="swfobject.js"></script>
                <script type="text/javascript">
                        swfobject.registerObject("test", "9.0.0", "expressInstall.swf");
                </script>
        </head>
        <body>
                <div>
                        <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="100%" height="100%" id="test">
                                <param name="movie" value="test.swf" />
                                <param name="allowfullscreen" value="true" />
                                <!--[if !IE]>-->
                                <object type="application/x-shockwave-flash" data="test.swf" width="100%" height="100%">
                                        <param name="allowfullscreen" value="true" />
                                <!--<![endif]-->
                                        <a href="http://www.adobe.com/go/getflashplayer">
                                                <img src="http://www.adobe.com/images/shared/download_buttons/get_flash_player.gif" alt="Get Adobe Flash player" />
                                        </a>
                                <!--[if !IE]>-->
                                </object>
                                <!--<![endif]-->
                        </object>
                </div>
        </body>
</html>

в ff ничего нет, в ie9 100% ширина и фиксированная высота (примерно 200 пикселей)
если задать явный размер, то все отображается нормально

видел похожую тему, но не совсем понял, как воспользоваться этим решением (и есть подозрение, что решаться должно по другому как-то)

mooncar 15.07.2012 17:02

Попробуйте сделать следующее - скачайте свежий SWFObject и опубликуйте флешку с помощью динамического метода.
Вот здесь описано, как (глава "Динамический метод публикации с помощью SWFObject"). С ним никаких проблем не возникало ни в каких браузерах. Кроме IE9 - сказать просто не могу - не было возможности проверить в своих проектах. Но жалоб не поступало.

Вот пример одного старого проекта со 100% по ширине и высоте, проверьте как он в IE9 будет. Если ок, возьмите за основу код публикации.


PS. Вообще, подозреваю, что проблема может быть оттого, что 100% высоту не все браузеры могут корректно отразить. То есть <div> с неопределенными размерами (или = 100%) по сути пуст до публикации в нем <object>. Как точно тот или иной браузер производит рендер в этой ситуации, не могу сказать, но как вариант попробуйте задать 100% размеры обрамляющему блоку (в примере выше так и сделано).

RedGrAg 15.07.2012 19:19

в общем никак не получилось подружить SwfObject2 и 100% (ни статическим ни динамическим методами)
но я нашел у себя версию SwfObject1.5 и там всё работает
пока на этом остановлюсь

похоже что со второй версией нужны дополнительные манипуляции

upd
сразу не увидел, что вы добавили пример
там как-раз SwfObject2.2 и согласно исходному коду, нужно <div> для контента обернуть в еще один <div>, которому мы укажем 100% ширину и высоту
теперь всё работает и со второй версией
спасибо :)

mooncar 15.07.2012 21:02

Пожалуйста. Замечу только, что в результате конструкция получается точно такая же - один внешний <div> (со 100%) и внутри него будет тот же <object> (который встает на место "внутреннего" <div>). Это легко проверить, проанализировав DOM-структуру результирующей страницы, открытой в браузере.

Krusty 15.07.2012 21:44

Во второй версии удаляется весь контент, с которым идет связывание, раньше удалялось только содержимое(тот самый вложенный div).

mooncar 15.07.2012 22:01

Вложений: 1
Цитата:

Сообщение от Krusty (Сообщение 1088758)
удаляется весь контент, с которым идет связывание,

В каком смысле? Я не очень понял, о чем вы, поясните.
Вот исходник страницы:
Код:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" dir="ltr" lang="ru">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
....
<script type="text/javascript" src="js/swfobject.js"></script>
<script type="text/javascript">
var flashvars = false;
var params = { menu: 'false', allowScriptAccess: 'always', allowFullScreen: 'true', quality: 'high', bgcolor: '#000000', wmode: 'window' };
var attributes = { id:'genplan_object' };
swfobject.embedSWF('flash/genplan.swf', 'genplan', '100%', '100%', '9.0.0', 'flash/expressInstall.swf', flashvars, params, attributes);
</script>

</head>

<body>
<div style="width:100%; height:100%; position:absolute" id="genplan_cont">
        <div id="genplan"></div> 
</div>
</body>
</html>

Вот получаемая структура:
Вложение 28214

Внешний <div> - вообще ведь к произвольной верстке относится. Я же сколько угодно могу сделать таких <div>-оберток.

Krusty 16.07.2012 01:45

Код:

<div id=player_container>
ваш браузер не поддерживает flash
</div>

версии до 2.0 удаляют только текст "ваш браузер не поддерживает flash", заменяя его связкой object+embed, а 2.0 удаляет весь контейнер, не только его содержимое.
Вы в примере цепляетесь к вложенному диву "genplan", 2.0 удалит вложенный див "genplan", а 1.5 только добавит в
Код:

<div id="genplan"></div>
что полагается, так как он и так пуст(иначе его предварительно очистили бы).

mooncar 16.07.2012 10:04

Ясно. Так-то да. SWFObject начал использовать с 2.0, так что нюанс этот не сразу понял.


Часовой пояс GMT +4, время: 18:02.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.