2012-10-25 1 views
0

나는 플래시로 시퀀서를 만들고 있습니다. 각 8 개의 심볼 트랙 인스턴스가 재생 버튼과 함께 있습니다. 단일 이벤트 리스너를 사용하여 각 샘플을 자체적으로 재생하는 것을 처리하려고합니다. 내가 가지고있는 문제는 트랙 무비 클립 안에있는 것처럼 각 버튼에 고유 한 인스턴스 이름을 지정할 수 없다는 것입니다.액션 스크립트 3의 자손 확인

masterContainer.addEventListener(MouseEvent.CLICK, clickHandler); 
function clickHandler(event:MouseEvent):void{ 
if(event.target.name == "masterPlay"){ 
    trace("master play was clicked"); 
} 
if(event.target.name == "silglePlay1"){ 
    trace("track 1 play button"); 
} 
if(event.target.name == "silglePlay2"){ 
    trace("track 2 play button"); 
} 
} 

모든 트랙 마스터 컨테이너 플러스 마스터 컨트롤 내부에 : 여기 내 코드입니다. 단일 재생 버튼이 트랙 기호 옆에 있습니다. 코드가 도움이되는지 확실하지 않지만 8 개의 별도 트랙 심볼을 만들지 않고도이 작업을 수행 할 수 있습니까?

답변

0

track1, track2이, ..., track8는 모든 트랙 안쪽에 당신이 가지고있는 트랙과 재생 버튼이 playBtn입니다 가정했다. 그런 다음 트랙의 재생 버튼에 다른 이름을 사용하지 않고도 모두의 단일 리스너를 만들 수 있습니다. 그것은 당신을 도울 것 같아요

masterContainer.addEventListener(MouseEvent.CLICK, clickHandler); 

function clickHandler(event:MouseEvent):void{ 
    var tapped = e.target; 

    if(tapped.name == "masterPlay"){ 
     trace("master play was clicked"); 
    } 

    if(tapped.name == "playBtn"){ 
     switch(tapped.parent.name){ 
      case "track1": 
       trace("track 1 play button"); 
       break; 
      case "track2": 
       trace("track 2 play button"); 
       break; 
      case "track3": 
       trace("track 3 play button"); 
       break; 
      case "track4": 
       trace("track 4 play button"); 
       break; 
      case "track5": 
       trace("track 5 play button"); 
       break; 
      case "track6": 
       trace("track 6 play button"); 
       break; 
      case "track7": 
       trace("track 7 play button"); 
       break; 
      case "track8": 
       trace("track 8 play button"); 
       break; 
     } 
    } 
} 

(당신이했던 것처럼 나는 masterContainer에 대한 리스너를 추가).

+0

그게 내가 고마워 할려고했던 것입니다 – Lonergan6275

+0

행운을 빕니다 @ Lonergan6275 – Moorthy

0

트랙 내에서 이벤트를 처리하면 이벤트 핸들러에서 event.target을 처리하고 버릴 수있는 버블 링을 사용하여 사용자 정의 이벤트를 전달할 수 있습니다.이 이벤트는 고유 할 수있는 트랙 인스턴스 이름과 비교할 수 있습니다. 즉, 트랙 구성 요소는 자체 완비해야하며이 경우 재생 버튼 클릭 처리 인 자체 논리를 캡슐화해야합니다.

+0

나는 당신의 말을 이해합니다. 그게 내가 무엇을 제안하는 경우 movieclip (강사에 의해) 안에 코드를 퍼팅에서 금지되었습니다 – Lonergan6275

관련 문제