스타플(http://starpl.com)에서 제공하는 위젯중에 아래와 같은 “내별정보위젯”이 있다.
마우스를 올리면 내 별에 방문하거나 별받기를 할 수 있다.
스타플의 방문페이지와 별받기페이지에 접속시키기 위해 ExternalInterface.call()과 navigateToURL()을 아래와 같이 사용했다.
새창띄워 방문하기
ExternalInterface.call("window.open", 경로, "_blank", "");
방문하기
var request:URLRequest = new URLRequest( 경로 );
flash.net.navigateToURL( request, "_parent");
하지만 이러한 것들도 flash 컨텐츠를 웹페이지에 추가할때 쓰는 <object>태그와 <embed> 태그의 allowScriptAccess 속성과 allowNetworking 속성을 어떻게 지정하느냐에 따라 사용가능여부가 달라진다.
가령 이들 속성은 아래와 같은 방법으로 쓰여질 수 있다.
<object width="425" height="344"> <param name="allowScriptAccess" value="never" /> <param name="allowNetworking" value="internal" /> <param name="movie" value="swf경로"></param> <param name="allowFullScreen" value="true"></param> <embed src="swf경로" invokeURLs="false" autostart="false" allowScriptAccess="never" allowNetworking="internal" type="application/x-shockwave-flash" allowfullscreen="true" width="425" height="344"></embed> </object>
각 속성에 대해서 자세히 설명하자면 다음과 같다.
allowScriptAccess 속성
이 속성은 SWF의 ExternalInterface을 통해 Javascript와 통신가능여부를 결정지어주는 속성이다. 이 속성은 다음 3가지 값중 하나가 된다.
- never : SWF에서 ExternalInterface를 이용해 Javascript통신을 할 수 없다.
- always : SWF에서 ExternalInterface를 이용해 Javascript통신이 언제든지 가능하다.
- sameDomain : 같은 도메인에 있는 SWF일때 Javascript 통신이 가능하다.(기본)
allowNetworking 속성
이 속성은 SWF에서 네트워크 기능 API 사용을 제한하는 옵션이다. 다음과 같은 3가지 값중 하나를 가진다.
- all : 모든 네트워크 API 허용(기본)
- internal : 브라우저 네비게시션이나 브라우저 상호작용 API 사용 제한
- none : 모든 네크워크 API 제한
internal인 경우 제한 API
- navigateToURL()
- fscommand()
- ExternalInterface.call()
none인 경우 제한 API (internal 포함)
- sendToURL()
- FileReference.download()
- FileReference.upload()
- Loader.load()
- LocalConnection.connect()
- LocalConnection.send()
- NetConnection.connect()
- NetStream.play()
- Security.loadPolicyFile()
- SharedObject.getLocal()
- SharedObject.getRemote()
- Socket.connect()
- Sound.load()
- URLLoader.load()
- URLStream.load()
- XMLSocket.connect()
이제 네이버에서 스타플 위젯을 통해 스타플에 방문할 수 없는 이유를 보자.
<EMBED invokeURLs="false" autostart="false" allowScriptAccess="never" allowNetworking="internal" src="경로" width="54" height="96" type="application/x-shockwave-flash" allowfullscreen="true"> </EMBED>
몇몇 분들이 이런 제한정책때문에 네이버 블로그에 있기를 꺼려하시는 분들이 계시다. 물론 보안상 어떻게 할 수 없다고는 할 수 있지만…
참고글
'비공개 > Adobe Flex, ActionScript 3.0' 카테고리의 다른 글
[Flex,AIR,ActionScript 3.0]Matrix를 이용해 이동,스케일링,회전,거울효과 적용 (16) | 2009.05.13 |
---|---|
멀티 파일 업로더 (Multi-file uploader) – “업로드 금지 파일” 등록 기능 추가 (7) | 2009.05.13 |
[Flex/AIR] Custom Event를 만들 때 clone() 함수를 override 해야하는 이유 (0) | 2009.05.13 |
Actionscript 3.0 Event에 대한 질문/답변 (0) | 2009.05.13 |
ActionScript 3.0 만으로 쿠키를 제어 - Actionscript Cookie Util 소개 (4) | 2009.05.13 |