2012-10-10 5 views
0

팝업을 트리거 한 LinkButton의 click 이벤트와 충돌하는 팝업에 대해 FlexMouseEvent.MOUSE_DOWN_OUTSIDE 이벤트가 있습니다. 본질적으로, 나는 클릭 할 때마다 스위치처럼 팝업을 열거 나 닫을 수 있도록 내 레이블의 클릭 이벤트를 원합니다. 이 팝업을 닫을 수있는 또 다른 방법은 FlexMouseEvent.MOUSE_DOWN_OUTSIDE입니다.콜백 함수를 시작한 이벤트

특히 FlexMouseEvent.MOUSE_DOWN_OUTSIDE가 팝업 트리거링 LinkButton에서 클릭 될 때 두 충돌이 발생합니다.

내가 생각하는 바는 LinkButton에서 클릭하면 이벤트 전파가 중단된다는 것입니다.하지만 어떻게해야합니까?

element.addEventListener(FlexMouseEvent.MOUSE_DOWN_OUTSIDE, callBackFunction, false, 0, true); 
element.addEventListener(AnotherEvent, callBackFunction, false, 0, true); 
+0

사이드 노트로, FlexMouseEvent 자체가 클릭하여 전파하는 것을 막을 수 있어야합니다. – user1020069

답변

0
: 기본적으로 내 콜백 함수에서 실제로이를 발사 어떤 이벤트를 확인 할 수있는 방법 (이 요소에 대해 여러 이벤트 리스너는, 그래서 안전 장치 없음) 여기

은에 씹을 몇 가지 코드는

이것은 간단합니다. 각 이벤트에는 이벤트를 발생시키는 객체 인 currentTarget 속성이 있습니다. e.currentTarget을 사용하여 사용자가 클릭 한 객체를 파악할 수 있습니다.

private function mouseDownOutside(e:FlexEvent = null):void{ 
    if (e.currentTarget == obj) { 
     //do something 
    } 
} 

당신이 좀 더 일반적이거나 개체가 범위를 벗어난, 당신은 또한 간단한을 할 수있다 할 필요하면

체크 "입니다".

if (e.currentTarget is DataType) { 
    //do something 
} 

루프에 많은 양의 오브젝트를 생성하는 경우에도 유용합니다. 루프를 두 번째로 벗어나면 범위에서 벗어나므로 나중에 실제로 호출 할 수는 없습니다. 따라서 미리보기 이미지가 50 개인 갤러리를 만들고 사용자가 클릭하는 엄지 손가락의 전체 화면 버전을로드하려고한다고 가정 해보십시오. 인스턴스화 루프에서 엄지의 name 속성을 루프 (일반적으로 var i)로 설정 한 다음 (e.currentTarget as DisplayObject).name을 사용하여 더 큰 이미지와 연결할 수 있습니다.

+2

ummm ... currentTarget과 target 이벤트를 모두 검사했습니다. currentTarget은 이벤트 액션이 결과를 가져올 객체입니다. 기본적으로 addEventListener가 추가 된 요소입니다. – user1020069

+0

좋은 토론을 시작하는 +1 : – user1020069

+0

나는 그가 목표를 의미한다고 생각한다; currentTarget이 아닙니다. 많은 Flex 구성 요소는 다른 구성 요소의 캡슐화를 사용하여 만들어집니다. 목표가 항상 당신이 생각하는 구성 요소가 될지 모르겠습니다. – JeffryHouser

관련 문제