[인터돌™] 공부 해보자!! 열심히~~~

반응형
지금까지 Flash Lite 3.1 기반으로 Stand Alone 프로그램만 보다가 업무상 브라우져에서 swf를 불러서 변수 전달 및 함수 호출을 해야 할 일이 생겼다. 이전에 Flash Lite 3.1 에서 파라미터 전달하는걸 며칠간 시도하다가 포기했던 안좋은 기억이 있어서 선뜻 손은 안가지만.... 그래도 하라니 찾아봐야 -_-;;;

관련 자료를 열심히 검색해보니 나오는건 몇개 있는데 거의가 다 비슷한 소스를 비슷하게 수정하거나 한 것들이다. 중요한건 옛날꺼라서 링크도 깨진게 많고 정확한 첨부된 소스가 없다;;;; 몇시간 삽질한 끝에 성공.


첨부된 파일을 풀어보면 html, fla, swf 이렇게 3개가 있는데 swf는 fla로 만든 실행파일이고 html을 열어서 버튼늘 눌러보면 된다.


#1 버튼 클릭 전





#2 버튼 클릭 후





※ 소스코드

<!-- JsToFlash.html -->
<!-- Environment : Action Script 2.0 -->

<HTML>
<HEAD>
<meta http-equiv=Content-Type content="text/html;  charset=">

<SCRIPT LANGUAGE="JavaScript">
    function SetFlashVariable() {
        var movie = window.document.JsToFlash;
        movie.SetVariable("inputTextA", form1.inputVal.value);
        movie.SetVariable("inputTextB", "B text hard coding");
    }
    //-->
</SCRIPT>

</HEAD>
<BODY>
<OBJECT classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" WIDTH="300" HEIGHT="200" id="JsToFlash" ALIGN="">
    <PARAM NAME=movie VALUE="JsToFlash.swf">
    <EMBED autostart="true" src="JsToFlash.swf" WIDTH="300" HEIGHT="200" name="JsToFlash" ALIGN=""></EMBED>
</OBJECT>

<br><br>

<form id="form1"><input name="inputVal" type="input" value="input here"><br />
    <input type="button" value="set to flash" onClick= SetFlashVariable();>
</form>

</BODY>
</HTML>

// JsToFlash.fla 의 액션스크립트 부분
// Dynamic Text 속성을 가진 inputTexta, inputTextb, inputTextCheck 텍스트가 그려져있어야 한다(첨부파일 참고)

/*
Action Script 2.0
자바스크립트로부터 변수를 전달 받아서 특정 함수를 호출하는 예제
*/

// 사용자 정의 함수
function runActionA(arg){
    inputTexta.text = arg;
    inputTextCheck.text = "Yes";
}

// 사용자 정의 함수
function runActionB(arg){
    b(arg);
}

// 사용자 정의 함수
function b(arg){
    inputTextb.text = arg;
}


_root.addProperty("inputTextA", function(){}, runActionA);    // 자바스크립트로부터 inputTextA 라는 인자를 받게되면 runActionA 함수를 실행한다.
_root.addProperty("inputTextB", function(){}, runActionB);    // 자바스크립트로부터 inputTextB 라는 인자를 받게되면 runActionB 함수를 실행한다.






덤으로 이 테스트를 할 때의 환경은

이클립스의 플러그인으로 톰캣 6.0 실행
html은 이클립스에서 편집
플래시는 Adobe Flash CS4


이렇게 사용을 했다. swf가 변경되어도 웹페이지에서 해당 swf가 변경된 것을 인식하지 못하는 문제가 있는데 이 때는 이클립스에서 해당 html(또는 jsp)가 들어있는 프로젝트를 새로고침(F5) 해주면 톰캣이 재시작 되면서 변경된 swf가 반영이 된다.

이거 알아내는데 2시간 걸렸다 -_-+




이 글을 공유합시다

facebook twitter googleplus kakaoTalk kakaostory naver band