2012-11-01 23 views
0

如何以編程方式獲取應用程序當前正在使用的遊標類型?我想檢查它是否爲MouseCursor.HANDFlex鼠標光標類型 - 或者 - 確定組件是否爲控件

我的原因是我在應用程序級別有一個掩模,當該組件中的數據正在被在線編輯時(例如DataGrid),我放置了一個掩模。如果用戶在編輯時單擊組件外部,則會顯示一條警告,警告他們在編輯過程中無法離開。

我想僅在用戶點擊「可點擊」組件時才顯示警報和preventDefault();即可能導致它們離開或打開另一個窗口的一個。但是,當點擊不可點擊的組件時允許點擊;例如空白空間或他們想要複製的文本。

任何答案我的原始問題或替代解決方案是最受歡迎的。

+0

如果什麼手形光標被關閉? –

+0

使用getObjectsUnderPoint組合並檢查(對象是InteractiveObject)是否可以告訴您某些點下的對象是否「可點擊」(不一定如果它們具有註冊的點擊處理程序,則需要使用hasEventListener來獲取該信息)。我覺得像傑森下面提出的那樣的東西可能是更好的方法。 – shaunhusain

+0

謝謝@shaunhusain。我在下面解釋了爲什麼我選擇不採用JasonReeves的方法。我已經嘗試過InteractiveObject和hasEventListener,發現它們都沒有涵蓋我感興趣的所有控件,或者覆蓋了太多。這就是我對手形光標理論的看法。 –

回答

2

爲什麼不設置一個布爾值:

private var _isEditing:Boolean = false; 

然後當他們開始編輯設置_isEditing = TRUE;當他們保存或退出時_isEditing = false;

然後在可操作的組件的點擊處理程序檢查標誌:

if (_isEditing){ 
    Alert.show("hey you can't do this"); 
} else { 
    do whatever else here 
} 
+0

謝謝,但我的方法允許您在應用程序級別管理開始/結束編輯時分派事件,而不是在每個可能的可單擊控件上放置點擊監聽器。它更易於維護。 –

相關問題