看板 Flash 關於我們 聯絡資訊
下面這段程式碼  只有兩個物件 一個是 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
peacedove:不用加keyup吧 我可以正常運作耶 01/23 14:00
yhn0tgb60:沒有 up 按"ENTER" 會一直送空的出去吧 01/23 14:06
yhn0tgb60:而且下一筆會多換一行 01/23 14:06
peacedove:我測試不會耶 01/23 14:10
yhn0tgb60:= = 見鬼了 你可以多試試幾種方法 01/24 15:57
yhn0tgb60:像是一開始就直接按著 enter 01/24 15:57
yhn0tgb60:或事先傳過一兩筆資料後 再把 ENTER長按住 01/24 15:58
peacedove:我都試過 該不會是版本的問題吧?? 01/24 21:47