[問題] 如何判斷輸入的文字訊息中的"ENTER"或是輸入法使用中????
下面這段程式碼 只有兩個物件
一個是 inputTxt 是使用者用來輸入文字
另一個 msgTxt 用來顯示使用者輸入的文字
當使用者在 inputTxt中輸入完文字後按"ENTER"
就會將 inputTxt貼到 msgTxt 然後將 inputTxt清空
當 inputTxt 中沒有輸入文字時 按下"ENTER" 也不能送出訊息
我是用 KeyboardEvent.KEY_DOWN 來判斷 是否按下 "ENTER"
在訊息確定不是"" 送到 msgTxt後 就將訊息清空
但出現一個問題
就是 "ENTER"會在 KeyboardEvent.KEY_DOWN 訊息結束後 才塞給inputTxt
所以等於 inputTxt.text='' 並沒有完全把訊息清空
所以我又加了一個 addEventListener( KeyboardEvent.KEY_UP,KeyUpEnter );
在 "ENTER" 放開後 再清一次 inputTxt.text=''
這樣就可以把訊息完全清空了
但是 當要輸入中文時 就會失敗 因為中文輸入法選完字後要按"ENTER"
結果"ENTER" 按下後 中文訊息還來不及送給 msgTxt 就已經被 inputTxt.text=''
就變成不能打中文 = =
而當我一直按著 "ENTER" 不放時 "ENTER"的訊息最後還是會不對的被送出 完全檔不掉
想請問大家的意見 謝謝了
package
{
import flash.display.MovieClip;
import flash.events.KeyboardEvent;
import flash.ui.Keyboard;
public class test extends MovieClip
{
public function test():void
{
inputTxt.text='';
msgTxt.text='';
addEventListener( KeyboardEvent.KEY_DOWN,KeyDownEnter );
addEventListener( KeyboardEvent.KEY_UP,KeyUpEnter );
}
private function KeyDownEnter( evt:KeyboardEvent ):void
{
if( evt.keyCode == Keyboard.ENTER )
{
if( inputTxt.text!='' )
{
msgTxt.appendText('AAA:'+inputTxt.text+'\n');
inputTxt.text='';
}
}
}
private function KeyUpEnter( evt:KeyboardEvent ):void
{
if( evt.keyCode == Keyboard.ENTER )
{
inputTxt.text='';
}
}
}
}
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.32.126.69
推
01/23 14:00, , 1F
01/23 14:00, 1F
→
01/23 14:06, , 2F
01/23 14:06, 2F
→
01/23 14:06, , 3F
01/23 14:06, 3F
推
01/23 14:10, , 4F
01/23 14:10, 4F
→
01/24 15:57, , 5F
01/24 15:57, 5F
→
01/24 15:57, , 6F
01/24 15:57, 6F
→
01/24 15:58, , 7F
01/24 15:58, 7F
推
01/24 21:47, , 8F
01/24 21:47, 8F