2009-07-18 5 views

답변

6

FlexMouseEvent.MOUSE_DOWN_OUTSIDE 이벤트를 사용할 수 있습니다. 예를 들어 :

myPopup.addEventListener(
    FlexMouseEvent.MOUSE_DOWN_OUTSIDE, 
    function(mouseEvt:FlexMouseEvent):void 
    { 
     PopUpManager.removePopUp(myPopup); 
    } 
); 
+3

에 avaiable이다입니다 : //www.mail -archive.com/[email protected]/msg14875.html 내 머리카락을 잡는 마지막 시간을보십시오) – iddqd

2
stage.addEventListener(MouseEvent.CLICK, stgMouseListener, false, 0, true); 

... 

private function stgMouseListener(evt:MouseEvent):void 
{ 
    trace("click on stage"); 
} 


private function yourComponentListener(evt:MouseEvent):void 
{ 
    trace("do your thing"); 
    evt.stopPropagation(); 
} 
0

는 Senocular에서이있어. 나는 그것이이 주제에 적용된다고 생각한다. 적어도 그것은 나를 위해 트릭을했다. jedierikb가 제안한 것은 동일하지만 약간 불완전한 것으로 보입니다. 당신이 더 전파 이벤트를 방지하려면 이벤트 전파

방지

, 당신은 인 stopPropagation() (flash.events.Event.stopPropagation()) 또는 stopImmediatePropagation를 사용하여 이벤트 리스너 내에서 그렇게을 중지 할 수 있습니다() (flash.events.Event.stopImmediatePropagation()). 이러한 메서드는 이벤트 리스너로 전달 된 Event 객체에서 호출되며 적어도 그 시점을 지나서 이벤트가 발생하지 않도록합니다.

stopPropagation은 현재 범위를 벗어나는 개체가 이벤트를 수신하지 못하도록 방지하며 이벤트의 모든 단계에있을 수 있습니다. stopImmediatePropagation은 동일한 작업을 수행하지만 현재 대상에서 발생하는 추가 이벤트가 발생하는 것을 방지하는 추가 단계도 수행합니다. 따라서 stopPropagation이 스프라이트 A의 부모가 이벤트를 수신하는 것을 막는 경우 stopImmediatePropagation은 스프라이트 A의 부모뿐만 아니라 스프라이트 A를 수신하는 다른 리스너가 이벤트를 수신하는 것을 방지합니다.

예 : 인 stopPropagation 및 stopImmediatePropagation 액션 스크립트 코드를 사용하여 사이의 전환 :

var circle:Sprite = new Sprite(); 
circle.graphics.beginFill(0x4080A0); 
circle.graphics.drawCircle(50, 50, 25); 
addChild(circle); 

circle.addEventListener(MouseEvent.CLICK, clickCircle1); 
circle.addEventListener(MouseEvent.CLICK, clickCircle2); 
stage.addEventListener(MouseEvent.CLICK, clickStage); 

function clickCircle1(evt:MouseEvent):void { 
    evt.stopPropagation(); 
    // evt.stopImmediatePropagation(); 
    trace("clickCircle1"); 
} 
function clickCircle2(evt:MouseEvent):void { 
    trace("clickCircle2"); 
} 
function clickStage(evt:MouseEvent):void { 
    trace("clickStage"); 
} 

이 원을 클릭하고 이벤트가 각각의 방법으로 중지하는 방법을 참조하십시오. stopImmediatePropagation 또한 이벤트를

정상 출력을 인식하는 clickCircle2을 방지하면서 인 stopPropagation 이벤트를 수신하는 단계를 방지

clickCircle1 
clickCircle2 
clickStage 

인 stopPropagation 출력

clickCircle1 
clickCircle2 

stopImmediatePropagation 출력

clickCircle1 
-1

플렉스/액션 태평양 표준시 3 - 마우스에 근접 popupanchor이 시도 팝업 앵커

4.6 SDK에 대한 외부의 아무 곳이나 클릭 ..

frmPUA.popUp.addEventListener (FlexMouseEvent.MOUSE_DOWN_OUTSIDE, menuPopOutside, 거짓, 0, TRUE);

전체 코드는, PopUpManager에와 구성 요소를 추가하려면 수동로 addChild 할 경우 (HTTP를 볼 경우 FlexMouseEvent.MOUSE_DOWN_OUTSIDE 그러나 단지 방송

http://saravanakumargn.wordpress.com/2013/12/14/flexactionscript-3-close-popupanchor-on-mouse-clicked-anywhere-outside-popup-anchor-2/

관련 문제