AS3在文本字段中设置光标

时间:2012-07-19 14:54:58

标签: actionscript-3 focus

我想要在Fla运行时,焦点将放在名为“inputField”的输入文本上。问题是,这不起作用:

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*/
}

但这似乎有点愚蠢,他们必须以更快的方式做到这一点!

1 个答案:

答案 0 :(得分: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);
        }
    }
}