로그인, 회원가입후 더 많은 혜택을 누리세요 회원가입 닫기





<!-- 플래시 플러그인 -->
<object data="hello.swf" type="application/x-shockwave-flash">
  <!-- PNG 이미지 -->

                      <object data="hello.png" type="images/png">
                                        <!-- GIF 이미지 -->
                                        <object data="hello.gif" type="images/gif">
          <!-- 일반 text -->
  <p>Hello!</p>
                                          </object>
                         </object>
</object>
 

위와 같은 방법을 사용해서 플래시를 삽입하면 IE는 data를 참조하여 플래시 플레이어를 로딩하지 못하므로 IE에서는 작동을 하지 않는다.

그래서 param 요소로 무비 경로 정보를 적어주어야 한다.

또한 IE에는 HTML 상에서 조건문을 사용하여 내용을 제어하는 기능이 있다.

이것을 이용하면 표준 코드와 object 대체 기능을 이용해서 플래시 플레이어 뿐만 아니라 다른 object들도 페이지에 삽입 할 수 있다.

 

<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0" width="550" height="400">
<param name="movie" value="flash_movie.swf">
<!--[if !IE]> <-->
<object type="application/x-shockwave-flash" data="flash_movie.swf" width="550" height="400">
<!--> <![endif]-->
<p><img src="flash_movie.png" alt="환영합니다." /></p>
<!--[if !IE]> <-->
</object>
<!--> <![endif]-->
</object>
 

그런데 param 속성중 투명모드 속성(wmode=transparent)은  object를 화면에서 띄우는 성격이 있어 스크린 리더가 읽지 못한다.

따라서 처음부터 사용하지 않거나 wmode를 사용하고자 하는 경우에는 속성값을 window로 제공하는 것이 좋다.

그래도 wmode를 사용해야 한다면 한가지 또다른 주의점이 있다.

param 속성을 바깥 object에만 제공하게되면 안쪽의 코드를 사용하는 파이어폭스, 오페라, 사파리 등에서는 투명모드가 작동하지 않는다.

따라서 param 속성을 양쪽 모두에 동일하게 제공하여야 한다.


 

 

asp오류 해결

 

위와  같은 중첩 오브젝트 삽입 방법은 asp에서는 중첩 오류를 발생시킨다.

이 경우 상위 오브젝트를 아래와 같이 쓰면 오류를 제거할 수 있다.

 <%="<object"%> classid=...>
<object type=...>
</object>
</object>
 

 

 

 

실제 적용사례
  
 

<%="<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="679" height="51">
  <param name="movie" value="../flash/menu.swf?mainNum=<%=moc%>&subNum=<%=loc%>" />/*밑줄 친 부분은 플래시 페이지 인식을 위한 변수 할당부분*/
  <param name="quality" value="high"/>
    <!--[if !IE]> <-->
    <object type="application/x-shockwave-flash" data="../flash/menu.swf?mainNum=<%=moc%>&subNum=<%=loc%>" width="679" height="51">
    <param name="quality" value="high" />
    <!--> <![endif]-->
        <p><img src="/images/menu.jpg" alt="네비게이션" width="679" height="51" border="0" usemap="#menu_link"  /></p><map name="menu_link" id="menu_link">
          <area shape="rect" coords="83,7,146,30" href="해당링크1" alt="학회소개" />
<area shape="rect" coords="198,5,258,30" href="해당링크2" alt="학회지" />
<area shape="rect" coords="308,6,372,30" href="해당링크3" alt="학술대회" />
<area shape="rect" coords="420,6,484,30" href="해당링크4" alt="학회소식" />
<area shape="rect" coords="532,5,593,30" href="해당링크5" alt="회원광장" />
</map> /*네비게이션일 경우 대체 이미지상에 이와 같이 링크를 걸 수 있다.*/
    <!--[if !IE]> <-->
    </object>
    <!--> <![endif]-->
  </object>
  </object>
 

 

*기존에 플래시 삽입시에는 테두리가 생기는 문제를 없애기 위해 이올라스 패치를 적용해야 했기에 <<script>>로 감싸서 해당 플래시 메뉴를 삽입하였다.

그러나 이제는 그 문제가 해결되어 더이상 테두리가 생기지 않으므로 바로 오브젝트방식으로 삽입을 하면 된다.