개발자의 길

플래시에서 ExternalInterface로 자바스크립트 호출 하기 본문

11. FLASH

플래시에서 ExternalInterface로 자바스크립트 호출 하기

자르르 2010. 4. 9. 15:10



플래시로 자바스크립트를 호출할 수 있는 방법은 두가지가 있습니다.

첫번째는, getURL("javascript:goURL()") 로 호출하는 방법과

두번째는, ExternalInterface.call("goURL"); 로 호출하는 방법입니다.

 

이번 포스트에서는 두번째의 ExternalInterface로 자바스크립트를 호출하여 페이지 이동하는 방법에 대해서 설명 해 보겠습니다.

 

1. ExternalInterface.(methodName:String, [parameter1:Object]) : Object

2. 지원 버전: ActionScript 1.0, Flash Player 8

 


 

step1 - FLA파일에 메뉴버튼 만들기

 

1. 새로운 fla파일을 생성해서 메뉴버튼을 무비클립 심볼로 4개를 만듭니다.

2. 그리고 무비클립의 인스턴스 네임을 bt1, bt2, bt3, bt4 로 각각 정해줍니다.

3. 액션 패널을 열고 프레임상에 아래와 같이 스크립트를 작성합니다.

 

  import flash.external.*;

  // 버튼개수
  var btNum = 4;

  for(var i = 1; i<=btNum; i++)
  {
       // 버튼마다 고유의 값을 만들어준다(ex bt1.idx=1, bt2.idx=2, ...)
       this["bt"+i].idx = i;
    
       // 버튼을 눌렀을때
       this["bt"+i].onRelease = function()
       {
            // goURL 이라는 함수를 가진 자바스크립트 호출하면서 this.idx를 파라미터값으로 전송
            ExternalInterface.call("goURL", this.idx);
       }
  }

 

 

 


step2 - HTML 페이지에 자바스크립트 함수 넣어주기

 

1. 위의 플래시가 들어가 있는 페이지의 <head></head>에 호출 될 자바스크립트를 넣어줍니다.

 

  <script language="JavaScript" type="text/javascript">
  <!--
  function goURL(num)
  {
       if(num==1) // num에 1이 넘어오면 daum.com 으로
       {
            window.location.href = 'http://www.daum.com';
       }
       else if(num==2) // num에 2가 넘어오면 naver.com 로
       {
            window.location.href = 'http://www.naver.com';
       }
       else if(num==3) // num에 3이 넘어오면 paran.com 으로
       {
            window.location.href = 'http://www.paran.com';
       }
       else // num이 4가 넘어오면 korea.com 으로
       {
            window.location.href = 'http://www.korea.com';
       }

  return true;
  }
  // -->
  </script>

 

 

 

플래시의 버튼을 누르면 ExternalInterface.call("goURL", this.idx); 에 의해서 같은 페이지의 goURL(num)이라는 함수의

자바스크립트를 호출하게 됩니다. 자바스크립트의 goURL 괄호 안에 들어있는 num은 자신을 호출하는 녀석이 뭔가 줄 것이 있다는

의미이고 플래시에서는 "goURL" 다음에 적혀있는 this.idx 를 던져 주는 것입니다.

 

예를 들어,

bt1을 누르면 bt1의 idx가 1 이므로 자바스크립트의 goURL함수를 호출하면서 idx값 1을 던져줍니다 = goURL(1)

자바스크립트 함수안에는 num이 1로 들어올 경우에 daum.com으로 이동하도록 되어있어서 daum 페이지로 이동하게 됩니다.

 

bt2를 누르면 bt2의 idx가 2 이므로 자바스크립트의 goURL함수를 호출하면서 idx값 2를 던져줍니다 = goURL(2)

자바스크립트 함수안에는 num이 2로 들어올 경우에는 naver.com으로 이동하도록 되어있어서 naver 페이지로 이동하게 됩니다.

 

이렇듯 플래시는 getURL로 액션스크립트 내부에 링크 주소를 적을 수도 있지만 자바스크립트로 호출하여 링크를 걸 수도 있습니다.

자바스크립트를 호출하여 링크를 걸게되면 나중에 링크 주소가 바뀌었을때 굳이 플래시를 열어서 수정할 필요가 없다는 장점도

있습니다.



이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.
공유하기 링크
Comments