2012-01-26 99 views
0

當另一個鍵被按下時,可以模擬一個Tab鍵?我期待做的完全一樣,但與DOWN & ENTER Key.模擬Tab鍵在Flex上按下?

我知道onKeyDown函數。我正在嘗試,但它不起作用。

private function onKeyDown(e:KeyboardEvent) :void 
      { 
       if(e.keyCode == Keyboard.DOWN) 
       { 
        (e.currentTarget as TextInput).dispatchEvent(new KeyboardEvent(KeyboardEvent.KEY_DOWN, true, false, 0, Keyboard.TAB)); 
       } 
      } 

我知道標籤的工作方式不同,我看到它在Here但仍然沒有想法。

任何幫助,將不勝感激。

在此先感謝。

+0

你有沒有在keyup事件中試過它。 Keydown首先發射,然後最後發射。 – ShaunOReilly 2012-01-27 06:33:44

+0

是的。沒有不同。謝謝。 – 2012-01-27 16:13:11

回答

3

我解決像這樣。希望以後能幫助別人。

private function onKeyDown(e:KeyboardEvent) :void 
      { 
       if(e.keyCode == Keyboard.DOWN || e.keyCode == Keyboard.ENTER) 
       {     
        focusManager.getNextFocusManagerComponent().setFocus(); 

       } 
       if(e.keyCode == Keyboard.UP) 
       { 
        focusManager.getNextFocusManagerComponent(true).setFocus(); 
       } 
      } 

在Flash中,focusManager本身可能在該上下文中未定義。更改爲: evt.currentTarget.focusManager.getNextFocusManagerComponent()。setFocus();

+1

好的答案,謝謝你的提出。 – Ryan 2013-06-13 11:13:33

+0

不客氣,很高興它有幫助 – 2013-06-13 13:59:07

-1

嘗試手動把互聯組件陣列,然後改變焦點用:

stage.focus = myComp; 

stage.focus = myComps[currentCompOrderNumber+1]; 
+0

非常接近,無論如何感謝 – 2012-01-27 16:11:58