AS : 네비게이션 수정기

외부 접근 변수는 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]);
			}
		}
		
		
	}
	
};

Leave a Reply

Your email address will not be published.