Вставить Flash с помощью SWFObject со строгим Doctype - PullRequest
1 голос
/ 06 июня 2011

Возникла проблема при встраивании флеш-чата под доктип, равный строгому, с помощью SWFObject

Без доктрины строгого я теряю маржу: автоматическое использование под IE. При использовании строгого доктайпа флеш-чат не загружается вообще. Я прочитал технику встраивания swfobject для строгого doctype, но не могу его получить. Это то, что у меня есть ниже, но оно сжимает вспышку сверху, вместо того, чтобы расширять ее на 100% в высоту

<!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" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Flashchat</title>
<link href="sitecss.asp" rel="stylesheet" type="text/css" />
</head>

<body>
<div id="flash_swf">
<script type="text/javascript">
//<![CDATA[
var so = new SWFObject("swf.swf", "videochat", "100%", "100%", "8", "#FFFFFF");
so.addVariable("rootPath", "http://www.domain.com/flashchat/");
so.addVariable("roomId", "Room");
so.addVariable("app", "chat/videochat.swf");
so.addVariable("uid", "somename");
so.addVariable("skin", "Lead Grey");
so.addParam("wmode", "opaque");
so.write("flash_chat_swf");
// ]]>
</script>
</div>

</body>
</html>

ОК, я использовал javascript, чтобы изменить размер флэш-памяти при загрузке страницы

<script type="text/javascript"> 
function resize(){  
var frame = document.getElementById("flash_swf");  
var htmlheight = document.body.parentNode.scrollHeight;  
var windowheight = window.innerHeight;  
if ( htmlheight < windowheight ) { document.body.style.height = windowheight + "px"; frame.style.height = windowheight + "px"; }  
else { document.body.style.height = htmlheight + "px"; frame.style.height = htmlheight + "px"; }  
}
</script>

<body onload="resize()" onresize="resize()">

Но у меня сверху есть меню высотой 40 пикселей. Поэтому я должен был установить маржу для поля DIV: 40px 0 0 0 ;. Теперь вспышка отключается на 40 пикселей слишком коротко. Как установить htmlheight и windowheight в javascript, чтобы оно было на 40 пикселей меньше (-40px)?

1 Ответ

1 голос
/ 06 июня 2011

Не думаю, что тип документа имеет какое-либо отношение к вашей проблеме! Используете ли вы последнюю версию SWFObject (я думаю, что используемый вами метод встраивания устарел ...)?

В любом случае, линия

so.write("flash_chat_swf");

следует заменить на

so.write("flash_swf"); // corresponds to the div id the flash should be written in

И, пожалуйста, вставьте код java-скрипта за пределы div.

Вместо ручного изменения размера окна, вы должны реализовать этот скрипт: http://swffit.millermedeiros.com/ Это очень хорошо работает с swfobject.

Надеюсь, это поможет!

...