|
|
« Предыдущая тема | Следующая тема » |
Опции темы | Опции просмотра |
|
|
|||||
Регистрация: Jan 2008
Сообщений: 28
|
Неправильная работа Event.RESIZE в IE8 & SWFObject
Всем привет. Столкнулся с такой проблемой в Internet Explorer 8 при встраивании флешки с помощью такого вот SWFObject
<!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"> var flashvars = {}; var params = {}; params.quality = "best"; params.scale = "exactfit"; params.allowfullscreen = "true"; var attributes = {}; attributes.id = "flashContent"; swfobject.embedSWF("site.swf", "myAlternativeContent", "100%", "100%", "10.0.0", false, flashvars, params, attributes); </script> </head> <body> <div id="myAlternativeContent"> <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> </div> </body> </html> Событие ресайза цепляю stage.addEventListener(Event.RESIZE, defResize); Может кто сталкивался с подобной проблемой или знает как решить? Последний раз редактировалось Firexel; 11.10.2009 в 22:24. |
|
|||||
Регистрация: Jan 2008
Сообщений: 28
|
Поменял на "noscale". Ничего не изменилось.
|
|
|||||
Регистрация: Jul 2009
Адрес: Москва
Сообщений: 99
|
А если DOCTYPE сменить на 4.01, заработает? У меня аналогичная проблема решалась именно так. XHTML вроде как не поддерживает height 100%
|
|
|||||
Modus ponens
|
Эрм... еще раз и по порядку, у вас вообще высота флешки не меняется, или высота визуально меняется, ни флеш считает, что она не изменилась?
__________________
Hell is the possibility of sanity |
|
|||||
Регистрация: Jan 2008
Сообщений: 28
|
Ролик, обрабатывая Event.RESIZE, сам должен подстраиваться под все пространство stage.stageWidth x stage.stageHeight, что он и делает, допустим, в хроме. В IE8 stage.stageHeight не меняется, и как следствие, ролик не масштабируется совсем.
Добавлено через 5 минут сменил DOCTYPE на <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> Ничего |
|
|||||
Регистрация: Jul 2009
Адрес: Москва
Сообщений: 99
|
Во Flex Builder 3 есть хорошая обертка под это дело, мне кажется она вашу проблему должна решить. По крайней мере у меня к ней претензий не возникает, когда работаю со stage.stageHeight
Цитата:
Добавлено через 3 минуты <html lang="en"> <head> <meta http-equiv="Content-Type" content="text/html; charset=windows-1251" /> <link rel="stylesheet" type="text/css" href="history/history.css" /> <title></title> <script src="AC_OETags.js" language="javascript"></script> <script src="history/history.js" language="javascript"></script> <style> body { margin: 0px; overflow:hidden } </style> <script language="JavaScript" type="text/javascript"> <!-- // ----------------------------------------------------------------------------- // Globals // Major version of Flash required var requiredMajorVersion = 9; // Minor version of Flash required var requiredMinorVersion = 0; // Minor version of Flash required var requiredRevision = 124; // ----------------------------------------------------------------------------- // --> </script> </head> <body scroll="no" style="background-color:#838383"> <script language="JavaScript" type="text/javascript"> <!-- // Version check for the Flash Player that has the ability to start Player Product Install (6.0r65) var hasProductInstall = DetectFlashVer(6, 0, 65); // Version check based upon the values defined in globals var hasRequestedVersion = DetectFlashVer(requiredMajorVersion, requiredMinorVersion, requiredRevision); if ( hasProductInstall && !hasRequestedVersion ) { // DO NOT MODIFY THE FOLLOWING FOUR LINES // Location visited after installation is complete if installation is required var MMPlayerType = (isIE == true) ? "ActiveX" : "PlugIn"; var MMredirectURL = window.location; document.title = document.title.slice(0, 47) + " - Flash Player Installation"; var MMdoctitle = document.title; AC_FL_RunContent( "src", "playerProductInstall", "FlashVars", "MMredirectURL="+MMredirectURL+'&MMplayerType='+MMPlayerType+'&MMdoctitle='+MMdoctitle+"", "width", "100%", "height", "100%", "align", "middle", "id", "intro", "quality", "high", "bgcolor", "#838383", "name", "intro", "allowScriptAccess","sameDomain", "type", "application/x-shockwave-flash", "pluginspage", "http://www.adobe.com/go/getflashplayer" ); } else if (hasRequestedVersion) { // if we've detected an acceptable version // embed the Flash Content SWF when all tests are passed AC_FL_RunContent( "src", "intro", "width", "100%", "height", "100%", "align", "middle", "id", "intro", "quality", "high", "bgcolor", "#838383", "name", "intro", "allowScriptAccess","sameDomain", "type", "application/x-shockwave-flash", "pluginspage", "http://www.adobe.com/go/getflashplayer" ); } else { // flash is too old or we can't detect the plugin var alternateContent = 'Alternate content'; document.write(alternateContent); // insert non-flash content } // --> </script> <noscript> <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" id="intro" width="100%" height="100%" codebase="http://fpdownload.macromedia.com/get/flashplayer/current/swflash.cab"> <param name="movie" value="intro.swf" /> <param name="quality" value="high" /> <param name="bgcolor" value="#838383" /> <param name="allowScriptAccess" value="sameDomain" /> <embed src="intro.swf" quality="high" bgcolor="#838383" width="100%" height="100%" name="intro" align="middle" play="true" loop="false" quality="high" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.adobe.com/go/getflashplayer"> </embed> </object> </noscript> </body> </html> Последний раз редактировалось Dimax4d; 12.10.2009 в 00:40. |
|
|||||
Регистрация: Jan 2008
Сообщений: 28
|
Да, стандартная флешевая обертка отлично работает. Проблема во взаимодействии SWFObject и IE8. Тем не менее, проблему нужно как-то решить.
Последний раз редактировалось Firexel; 12.10.2009 в 00:50. |
|
|||||
Modus ponens
|
Да ну елки вы по содержанию можете ответить: когда вы изменяете размер страницы, размер флешки меняется или нет? Если да, то у вас где-то меняется stage.scaleMode с "noScale" на какой-то другой. Если нет, то проблема в вашем HTMLe. Если вам нужен HTML занимающий все окно браузера:
__________________
Hell is the possibility of sanity |
|
|||||
Регистрация: Jan 2008
Сообщений: 28
|
Вот. По-быстрому собрал примерчик.
|
Часовой пояс GMT +4, время: 14:12. |
|
« Предыдущая тема | Следующая тема » |
Теги |
IE8 , resize , swfobject |
Опции темы | |
Опции просмотра | |
|
|