별도의 프레임에 배치 한 메뉴 창은 여러 개 있습니다 (예 : 기본 메뉴는 프레임 1, 옵션 메뉴는 프레임 2, 장 메뉴는 프레임 3, 문자 메뉴 프레임 4, 등). 각 메뉴에는 여러 개의 텍스트 링크 (무비 클립 인스턴스)가 있습니다. 클릭하면 다른 메뉴 페이지로 이동합니다. 동일한 링크 (동일한 인스턴스) 중 일부는 동일한 기능을 수행하므로 여러 페이지에 복제됩니다. 예를 들어 "backToMain"인스턴스를 클릭하면 어떤 페이지를 클릭했는지에 관계없이 주 메뉴 인 프레임 1로 돌아갑니다.서로 연결되는 메뉴 링크 만들기
아무도 내가 이것을 만들 수있는 아이디어가 있습니까? 지금까지는 모든 단일 링크에 리스너를 추가하려고 시도했지만 프레임 1 이외의 다른 프레임에 많은 링크가 있기 때문에 actionscript에 해당 프레임으로 넘겨 줄 때까지 리스너를 추가 할 수 없습니다. 하고 싶지 않아. 나는 처음에 한 번에 모든 링크에 리스너를 추가 전역 할 : 언급 한 바와 같이 나는 다른 프레임에 존재하는 인스턴스에 리스너를 추가 할 수 없기 때문에
는var linksArray:Array = [newStory, continueStory, options, characters, backToMain, backToOptions, ... etc];
for each (var link:MovieClip in linksArray) {
link.addEventListener(MouseEvent.CLICK, onClick);
}
function onClick(e:MouseEvent):void
{
if (e.target.name == "newStoryLink") {
delegate.beginStory();
} else if (e.target.name == "continueStory") {
// do something else
} else if (e.target.name == "chapters") {
// do something else
} else if (e.target.name == "options") {
// do something else
}
위의 코드는 작동하지 않습니다. 이 코드는 기본적으로 AS가 어떤 프레임을 클릭했는지, 어떤 링크의 인스턴스를 클릭했는지에 관계없이 링크를 클릭 할 때 수행 할 작업을 알려줍니다. 감사합니다. .
그래서 무엇이 문제입니까? – Torious
질문을 읽어보십시오. 문제는 코드가 작동하지 않는다는 것입니다. 다른 프레임의 인스턴스에 리스너를 추가 할 수 없습니다. – Windbrand
이벤트 리스너를'stage'에 추가 할 수 있습니다; 모든 CLICK 이벤트는 결국 끝나야합니다. 그런 다음 위에서 설명한 onClick 핸들러와 같은 것을 사용하십시오. – Torious