html에만 삽입하면 링크가 동작하지 않아요 - allowScriptAccess 를 설정합니다 | |
가끔 스크립트는 보안을 이유로 제한적 동작을 하게 됩니다. fscommand, ExternalInterface, getURL, navigateToURL 등이 대표적인 예입니다. 컨테이너 페이지(대표적으론 HTML)의 도메인과 swf의 도메인이 서로 다를 경우가 있습니다. 이유는 여러가지가 있을 수 있겠죠. 이 경우 보안의 권한은 플래시를 삽입하는 HTML쪽에 좀 더 권한이 있으므로, HTML에서 스크립트 실행 권한을 설정해야 합니다. 다음과 같이 권한을 제어할 수 있습니다. always 어떤 swf가 로드되든 스크립트를 실행하도록 권한을 허락합니다. sameDomain 같은 도메인상의 swf만 권한을 허락합니다. never 어떤 경우에도 권한을 허락하지 않습니다. * 일부 게시판 프로그램의 경우 이 권한을 무조건 never로 설정하기도 합니다. (대표적으로 네이버) |
플래시를 삽입하다보면 allowScriptAccess, wmode, FlashVars 등의 많은 부가 설정이 필요할 수 있습니다.
param 태그를 추가해서 해결할 수 있습니다. 다음 코드는 예시입니다.
==============================================================================================================
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=10,0,0,0" width="550" height="400" id="flash_obj">
<param name="movie" value="flash_movie.swf" />
<param name="wmode" value="transparent" />
<param name="allowScriptAccess" value="sameDomain" />
<param name="FlashVars" value="var1=1&var2=page_id" />
<!--[if !IE]> <-->
<object type="application/x-shockwave-flash" data="flash_movie.swf" width="550" height="400" id="flash_obj">
<param name="wmode" value="transparent" />
<param name="allowScriptAccess" value="sameDomain" />
<param name="FlashVars" value="var1=1&var2=page_id" />
<p>Flash 로드를 실패했거나 Flash를 지원하는 브라우저가 아닙니다.</p>
</object>
<!--> <![endif]-->
</object>
==============================================================================================================