2012-04-15 3 views
0

별도의 프레임에 배치 한 메뉴 창은 여러 개 있습니다 (예 : 기본 메뉴는 프레임 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가 어떤 프레임을 클릭했는지, 어떤 링크의 인스턴스를 클릭했는지에 관계없이 링크를 클릭 할 때 수행 할 작업을 알려줍니다. 감사합니다. .

+0

그래서 무엇이 문제입니까? – Torious

+0

질문을 읽어보십시오. 문제는 코드가 작동하지 않는다는 것입니다. 다른 프레임의 인스턴스에 리스너를 추가 할 수 없습니다. – Windbrand

+0

이벤트 리스너를'stage'에 추가 할 수 있습니다; 모든 CLICK 이벤트는 결국 끝나야합니다. 그런 다음 위에서 설명한 onClick 핸들러와 같은 것을 사용하십시오. – Torious

답변

0

위의 설명과 관련된 내용은 다음과 같습니다.

  • 프레임 1 : 난 그냥 빈 플래시 파일에 다음을 시도했습니다 빈 키 프레임/일부 콘텐츠
  • 프레임 (10) : "someButton"라는 이름의 버튼 키 프레임

  • 프레임 1 : 다음 코드를입니다

     import flash.events.MouseEvent; 
    
         stage.addEventListener(MouseEvent.CLICK, onClick); 
    
         function onClick(e:MouseEvent):void { 
    
          if (e.target.name == "someButton") 
           trace("Button clicked"); 
    
         } 
    

. 프레임 10의 버튼을 클릭하면 메시지가 나타납니다.

Flash는 버블 링 이벤트 모델을 사용하므로 표시 객체 (예 : 버튼)의 대부분 (모든?) 이벤트가 부모와 부모에게 전달되기 때문에 작동합니다. 결국 결국 CLICK 버튼의 이벤트가 스테이지에 도착하고 onClick 이벤트 핸들러에서 처리합니다. 여기에서 우리는 객체가 (Event.target)에서으로 시작하여 namesomeButton과 같은지 확인합니다.

여기에 trace을 넣으면 메뉴 항목을 클릭했을 때의 논리를 입력하기 만하면됩니다. 이 기능이 원하는 기능입니까?

buttonMode, mouseChildren 등과 같이 stage 속성을 사용하지 않아도됩니다. 위 코드를 시작점으로 사용하십시오.

관련 문제