使用带有严格Doctype的SWFObject嵌入Flash

时间:2011-06-06 13:47:40

标签: flash html doctype swfobject

使用SWFObject

在doctype equaling strict下嵌入flash聊天室时遇到问题

如果没有严格的doctype我会失去保证金:IE下的自动使用。使用严格的doctype flash聊天室根本没有正确加载。我阅读了严格的doctype的swfobject嵌入技术,但实际上并没有得到它。这就是我在下面的内容,但它在顶部拼凑闪光而不是将它扩展到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在页面加载时调整flash大小

<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()">

但是,我的顶部菜单高度为40px。所以我不得不设置DIV边距的余量:40px 0 0 0;。现在闪光灯的截止时间太短了40px。如何在javascript中设置htmlheight和windowheight,使其减少40像素(-40px)?

1 个答案:

答案 0 :(得分:1)

我认为文档类型与您的问题无关! 您使用的是SWFObject的最新版本(我认为您使用的嵌入方法已经过时了......)

无论如何,这条线

so.write("flash_chat_swf");

应替换为

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

请在div之外插入java脚本代码。

您应该实现此脚本,而不是手动调整窗口大小:http://swffit.millermedeiros.com/这适用于swfobject。

希望这有帮助!