ActionScript 를 컴파일하면 SWF (흔히 보는 flash 포맷) 형식으로 실행(?) 가능한 형태로 변환된다.
이걸 실행시키는데,
- 로컬에 띄운 서버에 접속하게 했다
- Adobe Flash Player 실행
- Internet-enabled location: 127.0.0.1에 접근하려한다는 경고 팝업 + 설정 변경으로 가는 버튼을 띄움
- 설정 변경을 누른다
- www.macromedia.com 으로 접속 시도
하지만 내가 작업하는 곳은 폐쇄망인데 (외부 네트웍 연결 없음)
…
생각해보니 Flash CS3 체험판으로 작업할 때는 되었던 것 같은데 -_-;; 아마 그냥 FlashPlayer 만으론 보안 설정에 걸려서 안되는듯. 하지만 그렇다고 매크로미디어 홈페이지에 접근시키는건 무슨 쌩쑈.
이건 뭐 FlashCS3 무조건 사서 개발해야되나 -_-;;;
하지만, 로컬에서 실행시키지 않는 방법으로 하면 되는 것 같아서 다음과 같은 과정을 거침 (그리고 해결)
- Python의 BaseHTTPServer ((python 내장 라이브러리에 있는 녀석인데, 간단한 핸들러 몇 개(필요한 것만) override 해주면 바로 사용가능한 웹 서버가 만들어진다. 대충 코드 20줄이면 import 포함해서 html, swf만 처리하는게 나오더군)) 로 flash 파일과 HTML 만 처리하는 웹서버를 작성
- (로컬에서 띄운) 웹서버에서 flash를 embed한 웹 페이지를 제공
- (역시 로컬에서) 연결한 서버를 띄우고
- 2에서 띄운 flash로 연결
…
뭔가 무지 삽스럽구만 + 내 사랑 파이썬(…)
플래시 소켓 사용시 필요한 설정은 정확히 모르지만, swf 파일이 위치한 디렉토리를 trust directory에 추가하는 건, FlashPlayerTrust라는 간단한 설정 파일 생성으로 해결 가능할꺼에요.
http://www.adobe.com/devnet/flash/articles/fplayer8_security_04.html
뭐 애초에 짜증나긴 비슷하지만요. 소켓은 특히 그렇고 애초에 Flash에 네트워크 기능을 넣는 것을 굉장히 꺼려한다는 느낌이 들죠. 보안 문제 생기면 난리 나니까. [그래봤자 Flash 버그 이용해서 브라우저 죽이는 일은 매우 쉬운듯]
해수 / 저 부분은 Flash Player 9에서 업데이트되면서 그 것만으로 안되는듯. 그리고 내가 원했던 것은 swf를 바로 Flash Player에서 실행했으면하는 (AIR?) 기능이었는데, 덕분에 웹서버만들고 난리좀 쳤다 -_-;
Added: 트러스트 설정은 회사가면 해봐야겠군… 웹서버 띄우는 단계만 줄여도;