본문 바로가기

fla/액션&자바스크립

플래쉬 네비게이션 메뉴 페이지 활성화? 페이지 유지? 상태 유지 소스 질문 입니다

안녕하세요? ChrisXP입니다.

흔히들 말들하는 페이지인식을 얘기하시네요. 뭐 용어라 갖다 붙이기 나름이니 페이지활성화도 말이 된다고 할 수 있겠습니다. 액션들을 쭉 훓어 봤습니다.

 

//mainNum = 1; //임시 지정 변수(선택된 메인메뉴)
//subNum =3;

이렇게 주석이 된부분이 눈에 띄는데요.. 이 부분을 풀게 되면 1번메뉴와 그의 서브 3메뉴가 정확히 활성화가 된상태로 시작되는게 맞다면 액션에서는(메뉴의 액션) 더 이상 손볼 필요는 없을것 같습니다.

 

이제 html에서 해당 페이지가 메뉴2의 서브3을 열리게 해야 하는 html이라면 그에 맞게 플래시로 값을 전달해주어야 할것 같습니다. 여러가지 방법이 있습니다. <object ..... <embed> .. </object>로 구성된 플래시 삽입 태그에 파라미터를 넘기는것도 하나의 벙법이겠죠.. 가장 쉬운 방법입니다.. 위 태그에 src를 지정하는곳이 두개 있습니다.

 

..생략..

<param name="movie" value="/swf/logo.swf" />

<embed src="/swf/logo.swf"  ...

..생략...

 

위와 같이 object태그에 param속성 하나, embed속성입니다. 두가지다 쓰이게 됩니다.(브라우저에 따라서..)

이때 swf의 이름뒤에 GET방식으로 변수를 넣어줄 수 있습니다..

 

logo.swf?mainNum=1&subNum=3

 

위와 같이 해당 무비이름(swf명) 뒤에 값을 보내면 플래시에서 인식을 할 수 있습니다. 물론 저 값(mainNum, subNum)은 각 페이지마다 알맞은 값으로 변경이 되어야 하겠지요.

 

2번째는 자바스크립트를 이용한 방법입니다.. 요즘 제가 즐겨 쓰고 있는 방법인데요.. ExternalInterface를 통해서 html상호간의 데이터를 간편하게 주고 받을 수 있습니다..

 

JavaScript In HTML
<SCRIPT LANGUAGE="JavaScript">
<!--
function getMainIndex() {
 return 3;
}


function getSubIndex() {
 return 2;
}
//-->
</SCRIPT>

 

이렇게 HTML안에 자바스크립트 함수를 선언하겠습니다.

getMainIndex는 메인 메뉴에 대한 인덱스를 돌려줍니다.. 3을 돌려주네요.. 그리고 마찬가지로 getSubIndex는 2를 돌려주게 됩니다..

쉽게 얘기해서 플래시에서 저 함수를 호출해서 값을 가져온다고 생각하시면됩니다..

ExternalInterface로 HTML <--> Flash가 가능하다는 얘기죠.

 

ActionScript
//ExternalInterface를 사용하기 위해서 임포트를 합니다..
import flash.external.ExternalInterface;



mainNum = Number(ExternalInterface.call("getMainIndex"));
subNum = Number(ExternalInterface.call("getSubIndex"))

 

위와 같은 코드로 값을 받아올수 있습니다..

출처:네이버지식인

근데 그래도 모르겠따..젠장..ㅡㅡ;