2012-03-31 2 views
0

하나의 수신기에서 다른 개체의 클릭 마우스 이벤트를 작성하는 방법을 알고 싶습니다. 가능한 경우 가능합니다. 이 작업을 수행 할 수있는 방법은 무엇하나의 수신기에서 모든 클릭 마우스 이벤트 가져 오기

stage.addEventListener(MouseEvent.CLICK,clicker); 

function clicker (e:MouseEvent):void{ 

if (frame2_btn is clicked){ 
gotoAndPlay(3); 
stage.removeEventListener(MouseEvent.CLICK,clicker); 
} 

if (frame3_btn is clicked){ 
gotoAndPlay(4); 
stage.removeEventListener(MouseEvent.CLICK,clicker); 
} 

} 

: 내가하고 싶었던 무엇

같은 모든 버튼 클릭이 리스너가 보편적하게입니까?

답변

2

모든 이벤트가 계층 구조 (위쪽 방향)를 통해 버블 링되는 것과 같은 기능을 작성할 수 있습니다. 그리고 target 속성을 사용하여 해당 이벤트를 생성하는 객체를 가져올 수 있습니다. 여기

는 만든다 (스프라이트, 모양, ... 그들 중 많은 사람들이 있습니다) (액션 스크립트와 Haxe의 경우) 참조

stage.addEventListener(MouseEvent.CLICK,clicker); 

function clicker (e:MouseEvent):void{ 

    if (e.target.name == "frame2_btn") { 
     gotoAndPlay(3); 
     stage.removeEventListener(MouseEvent.CLICK,clicker); 
    } 

    if (e.target.name == "frame3_btn"){ 
     gotoAndPlay(4); 
     stage.removeEventListener(MouseEvent.CLICK,clicker); 
    } 
} 

는 그냥 모든 객체의 추가 속성 이름을위한 데모 코드입니다 그들의 신원은 조금 더 쉬웠다.

희망이 당신을 도울

최고의 디팍

+0

을하려고 할 때

당신은 무엇을 어떻게해야합니까. 나는 추적을 시도하고 아무 것도 나타나지 않습니다. 여기서 내가 뭘 잘못하고 있니? – Helixfate

0

간단한 버튼이있는 경우, 그것은 아무 문제가 작동하지해야 그것이 버튼 역할을하는 무비 클립을의 경우, 아이들이 당신에게 다른를 줄 것이다 이름. 당신은 내가 당신의 코드를 붙여 복사하지만 개체를 ​​감지 할 수없는 것

stage.addEventListener(MouseEvent.CLICK,clicker); 

function clicker (e:MouseEvent):void{ 
    trace(e.target.name); 
} 
관련 문제