본문 바로가기

Local Oriented/HTML CSS JS

크롬 Chrome 웹브라우저에서 플래시 Flash 를 2개 이상 사용시 정상적으로 보이려면..

iframe 을 사용하는 방법 밖에는 없네요..

투명한 플래시를 겹쳐 사용하는 경우, iframe 도 투명하게 세팅하면 됩니다. ~.


그런데, 황당한 것은.. 크롬도 어떤 때는 iframe 없이 한 화면에 여러개의 플래시를 사용해도 멀쩡히 잘 나올 때가 있다는 겁니다.

그리고, 어느 순간 또 제대로 안 나오고.. 이거 PC 가 이상한 것인지, 크롬 마이너 업데이트를 통해 코드가 약간씩 바뀌는 것인지.. ㅠ.


기본이 되는 플래시는 a.jsp 에 담고,

a.jsp 안에 iframe 코드를 b.jsp, c.jsp 등으로 포함시켜서,

b.jsp 나 c.jsp 에는 다시 플래시 코드를 넣고.. 이렇게 하면 2개 이상도 크롬에서 정상적으로 보입니다. ~.


플래시에 링크가 걸리는 경우, top.location.href 을 사용하면 쉽게 해결되겠네요.

플래시에서 자바스크립트를 호출하게 하면 되잖아요.. ~.


iframe 을 투명하게 하려면, iframe 속성에 allowTransparency="true" 추가한다는데..

false 라고 세팅해도 그냥 그렇네요.

아무튼, 크롬에선 그냥 투명모드가 되는데, IE 에서는 아래와 같이 추가 처리.

iframe 으로 불려지는 쪽의 body style="background-color:transparent" 세팅.


플래시를 투명하게 레이어 작업하는 거라면..

function actFlash(Url,Width,Height){

  var str = '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,28,0" width="' +Width+ '" height="' +Height+ '">' +

              '<param name="allowScriptAccess" value="always">' +

              '<param name="movie" value="' +Url+ '">' +

              '<param name="menu" value="false" />' +

              '<param name="quality" value="best" />' +

              '<param name="wmode" value="transparent" />' +

              '<embed src="' +Url+ '" quality="high" pluginspage="http://www.adobe.com/shockwave/download/download.cgi?P1_Prod_Version=ShockwaveFlash" type="application/x-shockwave-flash" width="' +Width+ '"  height="' +Height+ '" wmode="transparent" />';

  document.writeln(str);

}