Corrected trả lời
Bạn có thể dễ dàng nghe cho các sự kiện bàn phím xảy ra khi textfield là tập trung.
Chỉ cần thêm sự kiện KEY_DOWN trực tiếp vào trường văn bản và sau đó thực hiện bất cứ điều gì bạn muốn.
// get key presses only when the textfield is being edited
inputText.addEventListener(KeyboardEvent.KEY_DOWN,handler);
function handler(event:KeyboardEvent){
// if the key is ENTER
if(event.charCode == 13){
// your code here
doSomething();
}
}
Trên một lưu ý riêng, textfields cũng gửi các sự kiện hữu ích khác:
- Khi sửa đổi bởi người sử dụng (nếu là textfield đầu vào) - Event.CHANGE
- Khi văn bản được gõ bằng người dùng (nếu đó là trường văn bản đầu vào) - TextEvent.TEXT_INPUT
- Khi liên kết được nhấp (nếu văn bản HTML của nó) - TextEvent.LINK
- Khi được người dùng cuộn (nếu có nhiều nội dung và nội dung don ' t fi t) - Event.SCROLL
Trước sai Trả lời:
Tôi nghĩ rằng cách duy nhất để thực sự làm những gì bạn muốn là một chút phức tạp.
Về cơ bản, bạn không thể nhận bất kỳ sự kiện nào từ TextField thông thường sẽ được kích hoạt khi nhấn phím Enter. Bạn phải làm việc xung quanh ...
Một ý tưởng sẽ là lắng nghe trường văn bản cho các sự kiện trọng tâm. Khi nó có tiêu điểm, bạn thêm một người nghe vào vùng hiển thị cho các sự kiện bàn phím và kiểm tra xem phím đã nhấn có được nhập hay không, nếu có thể kích hoạt hành động của bạn, hãy bỏ qua.
Mẫu mã:
inputText.addEventListener(FocusEvent.FOCUS_IN,textInputHandler);
inputText.addEventListener(FocusEvent.FOCUS_OUT,textInputHandlerOut);
function textInputHandler(event:FocusEvent):void {
//our textfield has focus, we want to listen for keyboard events.
stage.addEventListener(KeyboardEvent.KEY_DOWN, keyDownHandler);
}
function textInputHandlerOut(event:FocusEvent):void {
//our textfield lost focus, remove our listener.
stage.removeEventListener(KeyboardEvent.KEY_DOWN, keyDownHandler);
}
function keyDownHandler(e:KeyboardEvent):void{
//a key was pressed, check if it was Enter => charCode 13.
if(e.charCode == 13){
//ok, enter was pressed. Do your thing.
trace("We pressed enter, doSomething")
}
}
Tôi đã sử dụng: inputText.addEventListener (KeyboardEvent.KEY_DOWN, handler); chức năng xử lý (sự kiện: KeyboardEvent) { nếu (event.charCode == 13) { doSomething(); } } Và nó hoạt động. Cảm ơn. –
@ Jonathan - Tôi đã chỉnh sửa câu trả lời để phản ánh sự thật. –
Hãy kiểm tra sự thật của bạn trước khi xuất bản những điều vô nghĩa như vậy, câu hỏi này đã hơn một tuổi, và hơn 4000 người đã bị lừa khi tin rằng những điều đơn giản như vậy rất khó. –