我也做了標準TextInput組件
在此組件的重寫,我有:避免focusOut事件trigerred當apllication失去焦點
addEventListener(FocusEvent.FOCUS_OUT, handleFocusOut);
- 我的方法時觸發字段失去焦點的另一場(NICE)
- 問題:它也觸發時整個Flex應用程序失去焦點(在我的領域具有當前焦點我的表單中)
問題:
- 我做了什麼錯了?
- 有沒有辦法避免做的東西,當它是一個應用程序專注事件?
問候
我也做了標準TextInput組件
在此組件的重寫,我有:避免focusOut事件trigerred當apllication失去焦點
addEventListener(FocusEvent.FOCUS_OUT, handleFocusOut);
問題:
問候
我不知道這是爲什麼表現這種方式。但是,一種解決方案可能是在應用程序級別爲事件監聽器FOCUS_OUT
事件並致電stopImmediatePropagation().
感謝您的幫助!
以下是我已經在我的組件(孩子的TextInput)來完成
添加兩個事件處理程序:
- 的addEventListener(Event.ACTIVATE,handleEventActivate);
- addEventListener(Event.DEACTIVATE,handleEventDeActivate);
他們更新內部場_isApplicationActive
我處理focusOut事件:
的addEventListener(FocusEvent.FOCUS_OUT,handleFocusOut);
在方法中我有
if(!_isApplicationActive){event.stopImmediatePropagation(); }
當我的focusOut處理函數在應用程序被停用時不會調用 因爲=>在FocusOut事件之前調用DECACTIVATE事件!
簡單的答案是檢查event.relatedObject
(接收焦點的對象)是否爲空。 Flex的FocusManager
嘗試真的很難確保一些 flex對象具有(flex)焦點,所以它不應該爲空,否則。
如果您需要,還可以檢查isRelatedObjectInaccessible
。
stopImmediatePropagation會在輸入文本上產生小問題:您需要點擊它才能重新獲得藍色的焦點邊界(切換回應用程序是不夠的) – 2010-09-23 07:50:14