자바스크립트에서 플래시로 변수 저장하기....

[Flash/script]

이번에 진행중인 프로젝트에서 두개의 swf파일이 통신을 해야 하는 경우가 있어서 자바스크립트에서 변수를 플래시로 넘기는걸 사용하게 되었습니다.

swf끼리 통신을 하면 2004에서 새로 추가된 기능인 LocalConnection을 이용을 하게 됩니다.

그런데 이 LocalConnection은 약간의 문제점이 있습니다.

만약...두개의 swf파일이 있는 페이지가 한번또 생성이 된다면 동일한 아이디 값을 같고 있는 swf파일이 생성이 됩니다 이럴때 문제가 발생을 합니다.

동일한 아이디 값을 같기 때문에 한쪽만 반응을 하고 다른 쪽은 반응을 하지 않게 됩니다.

이러한 점이..8버전에서는 개선이 되었는지 확인을 하지 않았고 이러한 겹치는 아이디값을 동적으로 변화를 주기 위해서 자바스크립트에서 플래시에 변수를 넣는 방식으로 작업이 진행되었습니다.

//

<script language=javascript>

function SendDataToFlashMovie()
{
today = new Date()
today.getHours()
window.document.productSubMain.setVariable('count', today.getTime());
window.document.productSubMainMenu.setVariable('count', today.getTime());
}

</script>

//이런식으로 html페이지에 함수를 삽입하고

이 함수는 시스템에 있는 날자및 시간값을 받아내서 서로 통신을 해야 하는 swf파일에 녹색부분은

swf의 아이디 값입니다.

count라는 변수에 시스템의 시간및 날자 정보를 보냅니다.

//

//html페이지가 로드 될때 함수를 실행하게 합니다.

//

<body onLoad="SendDataToFlashMovie();">
<table width="200" border="0" cellspacing="0" cellpadding="0">
  <tr>
  <td><object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0" width="635" height="628" id="productSubMain">
     <param name="movie" value="productSubMain.swf">
     <param name="quality" value="high">
     <embed src="productSubMain.swf" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="635" height="628"></embed>
  </object></td>
  </tr>
</table>
<div id="Layer1" style="position:absolute; left:660px; top:65px; width:82px; height:151px; z-index:1">
  <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0" width="885" height="288" id="productSubMainMenu">
  <param name="movie" value="productSubMainMenu.swf">
  <param name="quality" value="high">
  <embed src="productSubMainMenu.swf" quality="high"

pluginspage="http://www.macromedia.com/go/getflashplayer"

type="application/x-shockwave-flash" width="885" height="288"></embed>
  </object>
</div>
</body>

키가 되는 부분은 swf에 아이디 값을 넣어 주는것입니다.

그러면 swf에 count라는 변수에 저장되는 값 자체를 LocalConnection의 아이디 값으로 이용을 하는 것입니다.

2006/07/21 15:40 2006/07/21 15:40
TAG.

이 글의 트랙백 주소 :: 이 글에는 트랙백을 보낼 수 없습니다

::: 사람과 사람의 교감! 人터넷의 첫 시작! 댓글을 달아주세요! :::