簡體   English   中英

指示常規Flex(非AIR)應用程序中的窗口處於“活動”狀態

[英]Indicating that a window is “active” inside a regular Flex (not AIR) application

我有一個Flex 4應用程序(不是AIR),該應用程序具有一些浮動窗口,這些窗口實際上充當無模式對話框。

現在,如果其中兩個同時打開,則它們將充當活動的兄弟姐妹,並且它們的控件已啟用以進行用戶交互。

現在,我需要維護應用程序中哪個是“活動的”概念。 我不想/禁用/非活動的,以使它們模糊或阻止其控件上的輸入。

我基本上想復制基本的OS窗口管理:當您單擊或在一個窗口中鍵入控件時,它位於最前面,並且其標題欄看起來是“活動的”,而其他標題欄看起來是“不活動的”。 就像在Windows中使用一堆資源管理器一樣。

有人可以幫我找尋方法嗎?

假設您的彈出窗口擴展了UIComponent,則您應該能夠偵聽FocusIn事件以使窗口處於活動狀態,而focusOut則可以使窗口處於非活動狀態。

現在,容器通常不調度焦點事件。 但是容器的孩子會。 而且自焦點事件泡泡起,您可以在彈出窗口中收聽它們。

就我個人而言,我將使用我們稱為介體的介面來處理這個問題……本質上是單例UI控制器,以及稍微自定義的組件和自定義外觀。 在Popup上,每個窗口都向中介程序注冊自己,因此,中介程序知道所有打開的窗口,在關閉時每個窗口都會自行注銷,OnFocusIn在通知此事件的每個組件上通知中介程序,中介程序彼此調用一個方法面板進行模糊處理或其他操作。

自定義組件可以擴展TitleWindow並添加屬性IsActiveWindow,然后自定義外觀可以基於此屬性更改其外觀。

對於專業點,請使用RobotLegs將對中介的引用注入到組件中。

祝好運!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM