2013-09-30 87 views
3

我正在開發具有ColorPicker組件的Flash Builder應用程序。當ColorPicker具有焦點並且我從鍵盤按左右箭頭時,顏色會改變。從there有沒有辦法禁用ColorPicker的左/右鍵盤箭頭?

文檔中說,這是ColorPicker中默認行爲:

當樣本面板關閉,但具有焦點時,按向上和向下箭頭鍵沒有任何效果。左箭頭鍵和右箭頭鍵改變顏色選擇器的選擇,像面板打開一樣在顏色中移動。

不幸的是,將焦點設置爲false並沒有幫助。 有沒有辦法避免使用鍵盤箭頭改變顏色?

謝謝。

回答

2

支持鍵盤導航的Flex組件覆蓋名爲keyDownHandler()的受保護方法,該方法由UIComponent定義。還有一個keyUpHandler()方法,但通常只需要使用其中一個。在這種情況下,ColorPicker組件覆蓋keyDownHandler()。這是相當長的,你可以看到它在Apache Flex github repo上線1436

您創建覆蓋此方法,如果按下方向鍵不調用父類方法的自定義顏色選擇器類:

override protected function keyDownHandler(event:KeyboardEvent):void 
{ 
    var keyCode:uint = event.keyCode; 
    // don't call the super class for these keys 
    if (!(keyCode == Keyboard.LEFT || keyCode == Keyboard.RIGHT)) 
    { 
     super.keyDownHandler(event); 
    } 
} 

請注意,這是未經測試的,您可能需要更多的邏輯才能使其正常工作。我建議檢查超級方法;)

相關問題