比如在一个用flash做的聊天室中, 用回车键来发送聊天消息. 一般都是侦听回车键, 侦听到回车键被按下后就把消息发送出去. 但是如果碰到一些输入法是使用回车键来选字的, 这个时候flash侦听到回车键被按下, 就把还没打完的消息发送出去了.
造成这个问题是因为flash中只是单纯的侦听回车键而已, 所以无论当前是否在输入消息, 只要回车键按下, 都会触发 发送消息的程序.
解决这个问题只要在侦听回车键的代码中加入一个判断就可以了.
因为当我们使用那些需要回车来选字的输入法时, 鼠标焦点已经转移到输入法的面版上了.
所以只要判断当前鼠标焦点是否在输入框内. 就能避免这个问题出现了.
程序代码
var enterKeyListener:Object = new Object ();
enterKeyListener.onKeyDown = function ()
{
if (Key.getCode () == Key.ENTER)
{
//判断当前鼠标焦点是否在输入框内
if (String (Text_InstanceName) == Selection.getFocus ())
{
send ();
}
}
};
Key.addListener (enterKeyListener);