2009-12-11 4 views
0

다음 HTML 코드가 있습니다. 원하는 것은 페이지를 두 div로 나누고 왼쪽에 객체를 배치하는 것입니다. 그러나 swf 파일은 왼쪽면뿐만 아니라 모든 페이지를 포함합니다. 무엇이 문제 일 수 있습니까?SWFObject 및 크기 조정 부분

감사의 SWF의 기본 크기는 무엇

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html> 
<head> 
<title>test</title> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<meta name="language" content="en" /> 
<meta name="description" content="" /> 
<meta name="keywords" content="" /> 

<script src="js/swfobject.js" type="text/javascript"></script> 
<script type="text/javascript"> 
    var flashvars = { 
    }; 
    var params = { 
    menu: "false", 
    scale: "noScale", 
    allowFullscreen: "true", 
    allowScriptAccess: "always", 
    bgcolor: "#FFFFFF" 
    }; 
    var attributes = { 
    id:"player" 
    }; 

    swfobject.embedSWF("player.swf", "left", "100%", "100%", "9.0.0", "expressInstall.swf", flashvars, params, attributes); 

</script> 
<style> 
    html, body { height:100%; width:100%; } 
    body { margin:0; padding:0; } 
    #left { 
    float: left; 
    width: 50%; 
    } 

    #right { 
    float: right; 
    width: 50%; 
    } 
</style> 
</head> 
<body> 
<div id="container" > 
<div id="left"> 

    <p><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></p> 
</div> 
<div id="right">Test</div> 
</div> 
</body> 
</html> 

답변

1

변경 당신의 스타일을 : 당신이 당신의 왼쪽에 '상자'내부 사업부를 교체 할 수 있도록

<style type="text/css"> 
    html, body { height:100%; width:100%; } 
    body { margin:0; padding:0; } 
    .box { 
     float:left; 
     width:50%; 
    } 
</style> 

다음 (이에 몸 HTML을 변경 : 난 당신이 어쨌든 나를 위해 파이어 폭스에서

+0

와우, 내가 얼마나 고맙다고 말할 수는 없다. 당신은 나를 믿지 않을 것이지만 나는이 코드를 고치기 위해 5 시간 이상을 보냈습니다. 나는 초보자 자바 스크립트 및 HTML 코더 (다른 언어로 경험이 있음)입니다. BTW,이 줄 html, body, {height : 100 %; 너비 : 100 %; }이 html, body, #container {height : 100 %; 너비 : 100 %; }. 그것은 swf 파일을 보여주지 않았다. 다시 한번 감사드립니다 .. 정말로 .. – deniz

0

? %는 파일의 상속 차원의 %를 나타내며 컨테이너 요소의 사용 가능한 공간은 아닙니다.

다른 점은 swf가 "객체"이고 객체 렌더링이 시스템에서 수행 되었기 때문에 컨테이너 요소가 아닌보기 포트의 크기를 사용한다는 것입니다.

요컨대 동적 치수가 필요한 경우 필요한 치수를 계산합니다. 당신은 아주 쉽게 jQuery를 함께 그렇게 할 수있는이에

<script src="js/swfobject.js" type="text/javascript"></script> 
<script type="text/javascript"> 
    var left = $('#left'); 


    var flashvars = { 
    }; 
    var params = { 
    menu: "false", 
    scale: "noScale", 
    allowFullscreen: "true", 
    allowScriptAccess: "always", 
    bgcolor: "#FFFFFF" 
    }; 
    var attributes = { 
    id:"player" 
    }; 

    swfobject.embedSWF("player.swf", "left", ceil(left.width())+'px', ceil(left.height())+'px', "9.0.0", "expressInstall.swf", flashvars, params, attributes); 

</script> 
+0

답해 주셔서 감사합니다. 이것은 잘 작동 할 것입니다, 나는 그것을 시도 할 것입니다, 고마워요. swf 파일에 대한 네이티브 차원이 없기 때문에 그것을 유동 CSS 파일에 넣어야합니다. 동적 인 크기가됩니다. 다시 고마워, – deniz

2

생각으로 상상했던

<div id="container" > 

<div class="box"> 

    <div id="left"> 
     <p> 
      <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> 
     </p> 
    </div> 

</div> 

<div class="box"> 
    Test 
</div> 

</div> 

이 일 SWFObject의 attributes 변수에 ID를 지정하면 SWFObject에 의해 생성 된 <object>은 대상 div (이 경우)를 지정한 ID (이 경우 #player)를 사용하는 개체로 바꿉니다. 따라서 ID가 더 이상없는 요소가 없으므로 #left에 대한 CSS가 작동하지 않습니다.

<div class="box"> 
    <div id="left"> 
     <p> ... </p> 
    </div> 
</div> 

이 솔루션은 객체가 대상 사업부에서 사용하는 ID를 상속하는 경우에 속성의 ID를 지정하거나 인식하는 당신의 CSS를 변경하지 않는 중 하나입니다

<div class="box"> 
    <object id="player" ... > 
     <param ... /> 
    </object> 
</div> 

된다 개체는 ID #player을 사용하지만 #left