我已经做了一些研究,并在SO中回答了一些问题,例如How to set focus to a TLFTextfield object
在少数论坛上,他们说要使用这段代码
stage.focus = txt;
或
txt.stage.focus = txt;
或
txt.textFlow.interactionManager.setFocus();
但是没有一个对我有用..我会尝试简单的项目但仍然失败..
我需要显示一个带有MovieClip
的{{1}}并专注于它。所以用户只需键入即可编辑TLFTextfield。
我的代码:
TLFTextField
答案 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
不是用户输入的最佳选择。请考虑改为使用TextField
或TextArea
。
答案 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