AS3:TextField Focus

Yen*_*ens 2 focus actionscript-3 textfield

我正在尝试在TextField上处理焦点事件,因此我可以在聚焦时选择所有文本(制表符或单击).好像我在这里做错了什么?

txtTextField.addEventListener(FocusEvent.FOCUS_IN, handleFocusIn);
function handleFocusIn() {
 //select all text here
}
Run Code Online (Sandbox Code Playgroud)

Mat*_*ijs 6

我需要相同的东西,当它获得焦点时选择文本字段的内容.

我试过了:

A)只需在FocusEvent之后选择.这似乎不起作用(我的猜测是在处理鼠标点击之前会激发FocusEvents,这反过来会撤消选择).

B)每次点击鼠标时选择.这是有效的,但是对于想要稍后仅选择文本的一部分的用户来说这非常烦人,因为这种尝试将始终导致 - 所有内容被选择.

以下解决方法似乎有效:

    myTextField.addEventListener(MouseEvent.CLICK, selectAllOnce);

    function selectAllOnce(e:MouseEvent) {
        e.target.removeEventListener(MouseEvent.CLICK, selectAllOnce);
        e.target.addEventListener(FocusEvent.FOCUS_OUT, addSelectListener);
        selectAll(e);
    }

    function addSelectListener(e:FocusEvent) {
        e.target.addEventListener(MouseEvent.CLICK, selectAllOnce);
        e.target.removeEventListener(FocusEvent.FOCUS_OUT, addSelectListener);
    }

    function selectAll(e:Event) {
        e.target.setSelection(0, e.target.getLineLength(0));
    }
Run Code Online (Sandbox Code Playgroud)

希望有所帮助.我个人认为,如果adobe只是为TextField对象添加了一个选项,那将是最符合逻辑的.