2009-07-18 4 views

答えて

6

FlexMouseEvent.MOUSE_DOWN_OUTSIDEイベントを使用できます。たとえば:

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

で下盛です://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 の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"); 
} 

円をクリックして、イベントがそれぞれの方法で停止する方法を参照してください。 stopImmediatePropagationもイベントを

正常出力を認識からclickCircle2を防止しながらのstopPropagationがイベントを受信することからステージを防止

clickCircle1 
clickCircle2 
clickStage 

のstopPropagation出力

clickCircle1 
clickCircle2 

stopImmediatePropagation出力

clickCircle1 
-1

フレックス/ Actionscri PT 3は - マウスの近くのpopupanchorはこれを試して、ポップアップアンカー

4.6 SDKのための外側の任意の場所をクリックした..

frmPUA.popUp.addEventListener(FlexMouseEvent.MOUSE_DOWN_OUTSIDE、menuPopOutside、偽、0、真の);

完全なコードは、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/

関連する問題