예전에 개발을 할 때 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.변수명 으로 접근을 하면 된다.


그러면 성공적으로 이용할 수 있다.



Posted by TY
,