예전에 개발을 할 때 flash를 개발할 때 arguments같은 기능이 있지 않을까 해서 많이 찾아 헤매었던 기억이 있다. 왜 찾았었냐하면 특정 폰트에 이펙트를 입힌 swf를 많이 그려줘야 하는데 하나하나 만들기 도저히 귀찮아서 못하겠던 것. 그래서 나는 결국 글자를 동적으로 바꿀 수 있는 방법을 구상했고, 그래서 찾아 낸 방법은 FlashVars였다.
FlashVars는 Flash에 특정 인자를 전달하여, 로딩할 때 구동되게 하는 방식이다. 상당힌 간결하게 이용이 가능한데, flash에서는 어떻게 받아왔었는지 기억조차 나지 않지만 어쨌든 쉽게 받아왔었다.
그래서 Flex(Flash Builder)에서 이용하려고 하는데 기억이 안나서 잠시 기억 좀 더듬고 인터넷좀 찾아서 기억해냈다. 하하.
* 보고 따라하실 분들은 맨 아래부터 보시면 되겠다. 위에부터 따라하면 패망함.
우선 FlashVars를 이용하려면 플래시를 불러오는 HTML파일을 수정할 필요가 있다. 기본적으로 Flex를 컴파일하면 생성되는 파일인 Project명.html을 열어보면 아래 두 개의 부분을 주의깊게 봐주자.
우선 첫 번째 소스코드이다. JS에서 swf를 불러오는 것을 생성해주는 부분이다. 여기서 원래 일반 소스에는
var flashvars = {};
var params = {};
와 같은 방식으로 되어있다. 그러나 flashvars에 새 내용을 추가하고 싶다면 저 두 줄 사이에
flashvars.변수명 = 값
으로 작성할 수 있다(물론 꼭 두 번째 줄이어야하는 것은 아니고 swfobject.embedSWF 전에만 하면 될 것 같지만 저게 더 예쁠 것 같다)
예를 들자면
var flashvars = {};
flashvars.id = 3;
var params = {};
으로 하면 된다.
그리고 또 다음 소스에도 비슷한 방향으로 변경해주어야 한다.
원래는 param에
<param name="FlashVars" value="name=idiot!" />
이 행은 아예 존재하지도 않는다. 그러므로 새롭게 추가하여 value에 key=value쌍으로 추가해주면 된다. 중복적으로 추가해주고 싶을 경우 get request를 설정하듯 key1=value1&key2=value2 와 같은 방식으로 설정할 수 있다.
그리고 소스코드를 수정한다.
root.loaderInfo.parameters.변수명 으로 접근을 하면 된다.
그러면 성공적으로 이용할 수 있다.
'study > as3' 카테고리의 다른 글
재귀적 방식을 이용한 Movieclip 의 정지와 재생 (0) | 2012.06.07 |
---|---|
Movieclip 여러개를 띄우기(duplicate movieclip, movieclip deepcopy) (0) | 2012.05.31 |
Action Script에서의 Deep copy (0) | 2012.05.30 |
BulkLoader사용시 중북된 로더 이용 및 weak reference에 대해서 (0) | 2012.05.16 |
[AS3]머리 아파서 쓰는 몇 가지 정리들 (0) | 2012.04.12 |