외부 접근 변수는 swf?param=”~~~~~~”
if(param==null){
param= "swf/link.xml";
}
파라미터명을 스크립트 안에 바로 써주면 SWF에 넘어간다.
중복 소스가 있길래 _global로 함수정의해서 처리했다.
// submenu click
_global.navigateSubmenu = function(mainIdx, subIdx)
{
trace("mainIdx[" + mainIdx + "], subIdx[" + subIdx + "]");
_global.active = mainIdx;
_global.over = _global.active;
_global.subActive = 0;
getURL(subLink[mainIdx][subIdx], subTarget[mainIdx][subIdx]);
}
XML 수정법
참조 : http://www.republicofcode.com/tutorials/flash/xml/
설명 : this랑 myXML이랑 같다. firstChild는 data태그의 자식들이다. childNodes로 내부로 들어가면 자식들에 접근할수있다.
attributes.[속성명]으로 접근가능핟.
//xmlPath는 외부에서 파라미터로 전달
if(naviXmlPath==null){
naviXmlPath = "swf/link.xml";
}
myXML.load(naviXmlPath);
myXML.ignoreWhite = true;
myXML.onLoad = function(success) {
for (i=1; i<=numOfMenu; i++) {
mainLink[i] = this.firstChild.childNodes[i-1].attributes.value;
mainTarget[i] = this.firstChild.childNodes[i-1].attributes.target;
subLink[i] = new Array();
subTarget[i] = new Array();
trace("메인링크 : "+mainLink[i]+" 메인타겟 :"+mainTarget[i]);
if (this.firstChild.childNodes[i-1].hasChildNodes()) {
for (k=1; k<= this.firstChild.childNodes[i-1].childNodes.length; k++) {
subLink[i][k] = this.firstChild.childNodes[i-1].childNodes[k-1].attributes.value;
subTarget[i][k] = this.firstChild.childNodes[i-1].childNodes[k-1].attributes.target;
trace(" 서브링크 : "+subLink[i][k]+" 서브타겟 :"+subTarget[i][k]);
}
}
}
};
