如何将焦点设置在TLFTextField上

时间:2013-06-10 15:35:34

标签: actionscript-3 flash air tlf

像标题所说的那样。如何在运行时设置焦点TLFTextField?

我已经做了一些研究,并在SO中回答了一些问题,例如How to set focus to a TLFTextfield object

在少数论坛上,他们说要使用这段代码

stage.focus = txt;

txt.stage.focus = txt;

txt.textFlow.interactionManager.setFocus();

但是没有一个对我有用..我会尝试简单的项目但仍然失败..

我需要显示一个带有MovieClip的{​​{1}}并专注于它。所以用户只需键入即可编辑TLFTextfield。

我的代码:

TLFTextField

2 个答案:

答案 0 :(得分:5)

如果有一个名为TLFTextField的可编辑tf,您可以通过以下方式启用焦点:

import flashx.textLayout.edit.EditManager;

tf.textFlow.interactionManager = new EditManager();
tf.textFlow.interactionManager.selectRange(0, 0);
tf.textFlow.interactionManager.setFocus();

使用此方法,文本字段可以准备好从键盘接收输入;但是,光标不会闪烁。因此,没有焦点的视觉指示。

TLFTextFields不是用户输入的最佳选择。请考虑改为使用TextFieldTextArea

答案 1 :(得分:0)

感谢Jason Sturges,现在我有了简化的答案。在测试了他的代码之后,我决定进一步进行实验,并且我只需要2行代码就可以实现这个功能。

    tf.textFlow.interactionManager.setFocus();
    tf.setSelection(tf.text.length, tf.text.length);.

无需导入flashx.textLayout.edit.EditManager。很奇怪,因为interactionManager实际上需要EditManager才能运作。

但是这段代码对我来说很好。我用FlashDevelop编译它。我的事件没有将textLayout.swc添加到我的libs