2011-08-16 42 views
0

我有一個Popup皮膚TitleWindow,我用作一個彈出窗口,但它後面的項目是接收鼠標懸停和點擊事件。有沒有一個選項可以讓我阻止在窗口的主要內容組後面發生鼠標事件?如何防止彈出式標題窗口後面的項目接收鼠標事件?

編輯:澄清 - 我不問如何使窗口模態。在用戶點擊contentGroup皮膚部分區域時,彈出框後面的項目(不是主窗體,而是側面,但後面和隱藏)正在接收鼠標事件。如果用戶點擊該組內的項目,則不會發生這種情況,但輕微未中可能會觸發意外的後臺按鈕。

回答

1

我解決了這個替換此:

<s:SparkSkin ...> 
<s:Rect height="{hostComponent.height}" radiusX="10" width="{hostComponent.width}"> 
    <s:fill> 
     <s:SolidColor color="#F5F4EB"/> 
    </s:fill> 
</s:Rect> 

<!-- header, move area, close button and other details --> 
<s:Group id="contentGroup" 
    top="40" 
    left="10" 
    right="10" 
    bottom="10"> 

</s:Group> 
</s:SparkSkin> 

有了這個:

<s:SparkSkin ...> 
<s:Rect height="{hostComponent.height}" radiusX="10" width="{hostComponent.width}"> 
    <s:fill> 
     <s:SolidColor color="#F5F4EB"/> 
    </s:fill> 
</s:Rect> 
<!-- header, move area, close button and other details --> 
<s:Group top="40" 
    left="10" 
    right="10" 
    bottom="10"> 
    <s:Rect top="0" 
     left="0" 
     right="0" 
     bottom="0"> 
     <s:fill> 
      <s:SolidColor color="0xF5F4EB" /> 
     </s:fill> 
    </s:Rect> 
    <s:Group id="contentGroup" 
      top="0" 
      left="0" 
      right="0" 
      bottom="0"> 

    </s:Group> 
</s:Group> 
</s:SparkSkin> 

創建,使其接受單擊事件通常組後面的矩形對象已經做到了。

2

當您創建彈出設置modal=true。喜歡的東西:

var pop:MyPopUpClass = PopUpManager.createPopUp(parent, MyPopUpClass, true) as MyPopUpClass;

1

你需要讓你的彈出窗口模式窗口。當你做出某種模態時,它意味着窗口(Alert,popup,titleWindow等)將保持在頂部,屏幕的其餘部分將凍結,直到頂部窗口關閉。

「PopUpManager還提供了模式,以便彈出窗口下面的窗口不能接收鼠標事件,並且如果用戶在窗口外單擊鼠標,則會提供事件,以便開發人員可以選擇關閉窗口或警告用戶。 「

模態的默認值爲false。您可以通過考取其設置爲true trueaddPopupcreatePopup

public static function addPopUp(window:IFlexDisplayObject, parent:DisplayObject, modal:Boolean = false, childList:String = null):void 

public static function createPopUp(parent:DisplayObject, className:Classe, modal:Boolean = false, childList:String = null):IFlexDisplayObject 
0

如果你是不是在找的modal答案,那麼我可以推薦被刪除時,彈出打開所有相關的偵聽器,並加入他們當彈出窗口被移除時返回。

x.removeEventListener(MouseEvent.CLICK... 
PopUpManager.addPopup(... 


onClose(... 
x.addEventListener(MouseEvent.CLICK... 
相關問題