Actionscript 3 使用enter键取消选择Flex TextInput

Actionscript 3 使用enter键取消选择Flex TextInput,actionscript-3,flex3,focus,Actionscript 3,Flex3,Focus,在Flex中,如何将TextInput设置为unselected(未选择),这不仅意味着焦点不在,而且意味着如果您在键盘上输入文本,则按Enter键时TextInput不会更改?我知道如何使用FocusManager更改具有焦点的组件,但我不想更改具有焦点的组件,我只想不选择这一个组件。我更像是AS3开发人员,所以我不确定这是否在Flex中100%起作用,但是您可以在密钥处理程序上使用preventDefault并将阶段的焦点设置为null textinput.addEventListener(

在Flex中,如何将TextInput设置为unselected(未选择),这不仅意味着焦点不在,而且意味着如果您在键盘上输入文本,则按Enter键时TextInput不会更改?我知道如何使用FocusManager更改具有焦点的组件,但我不想更改具有焦点的组件,我只想不选择这一个组件。

我更像是AS3开发人员,所以我不确定这是否在Flex中100%起作用,但是您可以在密钥处理程序上使用preventDefault并将阶段的焦点设置为null

textinput.addEventListener(KeyboardEvent.KEY_DOWN, keyDownHandler);

protected function keyDownHandler(event:KeyboardEvent):void {
    if (event.keyCode == Keyboard.ENTER) {
        event.preventDefault();

        stage.focus = null;
    }
}

我更像是一个AS3开发人员,所以我不确定这在Flex中是否100%有效,但您可以在密钥处理程序上使用preventDefault并将阶段的焦点设置为null

textinput.addEventListener(KeyboardEvent.KEY_DOWN, keyDownHandler);

protected function keyDownHandler(event:KeyboardEvent):void {
    if (event.keyCode == Keyboard.ENTER) {
        event.preventDefault();

        stage.focus = null;
    }
}

textinput.setSelection0,0

textinput.setSelection0,0

您可以使用MX textinput和TextArea控件上提供的功能,该功能具有以下功能签名:

public function setSelection(beginIndex:int, endIndex:int):void
并接受两个参数,表示要选择的字符的开始和结束基于零的索引。开始索引字符将包含在选择中,结束索引是选择中最后一个字符之后的索引

使用类似于textinput.setSelection0,0的东西基本上不会在文本输入字段中选择任何内容。这将在Flex3中起作用

但是,如果您使用的是Flex4,那么使用selectRangeanchorIndex:int、activeIndex:int函数更合适,函数也相同。setSelection和selectRange的区别在于后者是立即完成的。如果任一位置为负值,selectRange功能将取消选择文本范围。

您可以使用MX TextInput和TextArea控件上提供的功能,该功能具有以下功能签名:

public function setSelection(beginIndex:int, endIndex:int):void
并接受两个参数,表示要选择的字符的开始和结束基于零的索引。开始索引字符将包含在选择中,结束索引是选择中最后一个字符之后的索引

使用类似于textinput.setSelection0,0的东西基本上不会在文本输入字段中选择任何内容。这将在Flex3中起作用


但是,如果您使用的是Flex4,那么使用selectRangeanchorIndex:int、activeIndex:int函数更合适,函数也相同。setSelection和selectRange的区别在于后者是立即完成的。如果任一位置为负数,selectRange函数将取消选择文本范围。

如果它在非Flex环境中工作,并且仅在纯ActionScript 3中工作,那么它也应该在Flex环境中工作。如果它在非Flex环境中工作,并且仅在纯ActionScript 3中工作,那么它也应该在Flex环境中工作。