2012-09-06 93 views
0

我不知道如何在標題中解釋這一點,但我有一個textArea在我的應用程序的另一個textArea中生成文本。它生成文本就好了:如何從textArea中的textArea中刪除文本,從另一個文本區域生成

gallery.txtArea1.addEventListener(TextEvent.TEXT_INPUT, displayEvent); 

function displayEvent(event:TextEvent):void { 
     picArea1.text = gallery.txtArea1.text + event.text; 
} 

但是,當我想刪除從動態文本區域picArea1文本,它並沒有反映出密鑰號碼。所以我又增加了另一個事件監聽器:

gallery.txtArea1.addEventListener(KeyboardEvent.KEY_DOWN, onKeyPressed); 

function onKeyPressed(event:KeyboardEvent):void { 
     if (event.keyCode == Keyboard.DELETE) { 
      picArea1.text = gallery.txtArea1.text; 
     } 
} 

只是爲了刷新它。但是它也沒有選擇刪除。我錯過了什麼?

+0

嘗試使用KEY_UP而不是在你的第二個聽衆。 – BadFeelingAboutThis

回答

0

好的。奇怪的問題。當我改變:

event.keyCode == Keyboard.DELETE 

event.keyCode == 8 

它開始工作。我不知道爲什麼這樣做是因爲我導入了Keyboard類和其他所有東西。我不得不做一點小小的詭計,只取出從字符串中刪除的最後一個字符,因爲我編寫它的方式是,取整個字符串並將最後一個字符添加到最後,然後重新採樣整個事物並再次執行:

picArea1.text = gallery.txtArea1.text + event.text; 

所以這是我最後的功能:

gallery.txtArea1.addEventListener(KeyboardEvent.KEY_DOWN, onKeyPressed); 

function onKeyPressed(event:KeyboardEvent):void { 
     if (event.keyCode == 8) { 
      var newString:String = gallery.txtArea1.text; 
      picArea1.text = newString.substring(0, newString.length - 1); 
     } 

} 
1

TextEvent.TEXT_INPUT方法不派發不添加到文本輸入的東西。

您的頭向正確方向是添加一個關鍵聽衆。如果您使用KEY_UP而不是KEY_DOWN,它應該按照您期望的方式工作。

原因是,在文本輸入被系統改變之前,KEY_DOWN被調度/處理。或者,您可以使用Timer並在KEY_DOWN和KEY_UP事件之間進行更新,如果您希望在按住刪除/退格鍵以刪除多個字母時獲得即時結果。

+0

Naw,當我做KEY_UP時它也不起作用。我不知道發生了什麼事。 –

相關問題