AS3:TextField的焦点 [英] AS3: TextField Focus

查看:655
本文介绍了AS3:TextField的焦点的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我试图来处理一个文本字段焦点事件,所以我可以对焦时选择所有文本(标签,或单击)。好像我做错了什么吗?

  txtTextField.addEventListener(FocusEvent.FOCUS_IN,handleFocusIn);
功能handleFocusIn(){
 //在这里选择的所有文本
}
 

解决方案

我需要同样的事情,要选择一个文本框的内容,当它接收焦点。

我想:

A)一个FocusEvent后,只需选择。这似乎并没有工作(我的猜测是,FocusEvents被解雇的鼠标点击被处理之前,这反过来将撤销选择)。

b)选择在每次鼠标点击。这工作,但这是非常恼人谁愿意后来选择的文本中只有一部分用户,因为这样的尝试总是导致-all-内容被选中。

下面的解决方法似乎虽然工作:

  myTextField.addEventListener(MouseEvent.CLICK,selectAllOnce);

    功能selectAllOnce(E:的MouseEvent){
        e.target.removeEventListener(MouseEvent.CLICK,selectAllOnce);
        e.target.addEventListener(FocusEvent.FOCUS_OUT,addSelectListener);
        全选(E);
    }

    功能addSelectListener(E:FocusEvent)方法{
        e.target.addEventListener(MouseEvent.CLICK,selectAllOnce);
        e.target.removeEventListener(FocusEvent.FOCUS_OUT,addSelectListener);
    }

    功能全选(五:事件){
        e.target.setSelection(0,e.target.getLineLength(0));
    }
 

希望有所帮助。我个人认为如果没有Adobe只是增加了一个选项,这对于TextField对象这将是最合理的。

I'm trying to handle a focus event on a TextField so I can select all the text when focusing (tab or click). Seems like I'm doing something wrong here ?

txtTextField.addEventListener(FocusEvent.FOCUS_IN, handleFocusIn);
function handleFocusIn() {
 //select all text here
}

解决方案

I needed the same thing, to select the contents of a textfield when it receives focus.

I tried:

A) Simply selecting after a FocusEvent. This doesn't seem to work (my guess is that FocusEvents are fired before the mouse click is being processed, which in turn will undo the selection).

B) Selecting on every mouse click. This works, but this is very annoying for a user who wants to select only a part of the text later, since this attempt will always result in -all- the content being selected.

The following workaround seems to work though:

    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));
    }

Hope that helps. I personally think it would be most logical if adobe simply added an option for this for the TextField object.

这篇关于AS3:TextField的焦点的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆