Click-out event for custom components in flex

Is there a way to write a custom event that fires when a user clicks outside of this instance of a custom component? Basically somewhere else in the main flex application. Thanks.

+3
source share
4 answers

You can use the event FlexMouseEvent.MOUSE_DOWN_OUTSIDE. For example:

myPopup.addEventListener(
   FlexMouseEvent.MOUSE_DOWN_OUTSIDE,
   function(mouseEvt:FlexMouseEvent):void
   {
       PopUpManager.removePopUp(myPopup);
   }
);
+6
source
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();
}
+2
source

. , , , . , jedierikb , .

, , , stopPropagation() (flash.events.Event.stopPropagation()) stopImmediatePropagation() (flash.events.Event.stopImmediatePropagation()). Event, , , , .

stopPropagation , . stopImmediatePropagation , , . , stopPropagation A parent, stopImmediatePropagation - A, , A .

: stopPropagation stopImmediatePropagation ActionScript:

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");
}

, . stopPropagation , stopImmediatePropagation clickCircle2

clickCircle1
clickCircle2
clickStage

stopPropagation output

clickCircle1
clickCircle2

stopImmediatePropagation output

clickCircle1 
0
source

Flex / Actionscript 3 - close the popup on the mouse by clicking anywhere outside the popup

for 4.6 SDK try this.

frmPUA.popUp.addEventListener (FlexMouseEvent.MOUSE_DOWN_OUTSIDE, menuPopOutside, false, 0, true);

Full code is available at

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

-1
source

Source: https://habr.com/ru/post/1712936/


All Articles