2012-07-19 163 views
0

我希望每當Fla運行時,焦點都將放在名爲「inputField」的輸入文本上。問題是,這不起作用:AS3設置文本字段

stage.focus = vcam.inputField; 

這是不行的,是的,你可以鍵入A - Z和0 - 9,但例如Backspace鍵不能在野外工作,你必須先點擊它。

此外,我有一個處理箭頭鍵和ENTER鍵的單獨函數,所以它們可能不會被inputField使用。

他們唯一的辦法我知道周圍是每個按鍵使得這樣的函數:

function inputHandle(event:KeyboardEvent):void 
{ 

if (event.keyCode == Keyboard./*keycode here*/) 
    { 
    vcam.inputField.text += "/*letter, number, or space*/"; 
    } 

if (event.keyCode == Keyboard./*another keycode here*/) 
    { 
    vcam.inputField.text += "/* anotherletter, number, or space*/"; 
    } 

/*And so on with every key*/ 
} 

但是,這似乎有點愚蠢的事,他們必須這樣做,更快的方法!

+0

更多的代碼。完整的文本字段實例化代碼以及在文本字段上設置焦點的代碼將是一個好的開始。 – iND 2012-07-20 04:18:55

回答

0

你能否提供你的案例的更多細節?

因爲這個工作對我蠻好:需要

package { 

    import flash.display.MovieClip; 
    import flash.display.Sprite; 
    import flash.events.MouseEvent; 
    import flash.text.TextField; 
    import flash.text.TextFieldType; 

    public class asExample extends Sprite { 

     public var inputTextField : TextField; 

     public var focusButton : MovieClip; 

     public function asExample() { 
      inputTextField = new TextField(); 
      inputTextField.width = 300; 
      inputTextField.height = 50; 
      inputTextField.multiline = true; 
      inputTextField.border = true; 
      inputTextField.type = TextFieldType.INPUT; 
      addChild(inputTextField); 

      focusButton = new MovieClip(); 
      focusButton.x = inputTextField.x; 
      focusButton.y = 60; 
      focusButton.graphics.beginFill(0xFF0000); 
      focusButton.graphics.drawRect(0, 0, 50, 50); 
      focusButton.graphics.endFill(); 
      focusButton.addEventListener(MouseEvent.CLICK, onFocusButtonClick); 
      addChild(focusButton); 
     } 

     private function onFocusButtonClick(event : MouseEvent) : void { 
      stage.focus = inputTextField; 
      inputTextField.setSelection(0, 0); 
     } 
    } 
} 
+0

最大的問題是,如果僅通過「stage.focus」選擇退格,則退格在「inputField」中不起作用。你必須先點擊它,才能讓退格工作。並且因爲焦點在該字段上,所以Keyboard.ENTER的處理程序也不起作用。 – Jers 2012-07-19 17:55:43

+0

你使用命令'inputTextField.setSelection(0,0)'? – iND 2012-07-20 04:16:42

+0

我使用Skovalyov的模擬腳本。並且他的腳本也會發生同樣的情況,如果您單擊該字段本身,則退格不起作用,因此光標位於該字段中。 – Jers 2012-07-21 09:15:45