2009-05-14 4 views
2

Я новичок в Flash, и я не могу сделать это простое действие.Flash: addEventListener не обнаруживает события вставки в поле ввода Текстовые поля

(я использую ActionScript 3.0)

Я создал текстовое поле ввода в моем редакторе. Имя экземпляра - «тест». В моем редакторе действий у меня есть это:

import flash.events.Event; 
this.test.addEventListener(Event.PASTE, pasteHandler); 

function pasteHandler(e:Event) 
{ 
    trace("blaaaaaaaaaagh"); 
} 

Когда я запускаю его, он не обнаруживает какой-либо из моих пастообразных событий, правильно ли я делаю Ctrl + V или щелкните правой кнопкой мыши + паста. Если я использую другое событие, такое как MouseEvent.CLICK, оно обнаруживает его в порядке. На самом деле, я не думаю, что какие-либо события Event.XXX (например, COPY, INIT и т. Д.) Обнаруживаются (по крайней мере, из тех, которые я пробовал). Все события MouseEvent и KeyboardEvent работают нормально.

Что я делаю неправильно?

+0

возможно дубликат [диспетчерским Paste Event в AS3] (http://stackoverflow.com/questions/16559409/ dispatch-paste-event-in-as3) –

ответ

2

Объекты TextField не отправляют ясные, копировать, вырезать, вставлять или выбиратьВсе события. Извините за плохие новости!

Тайлер.

+0

Aw. Наверное, я могу обойти это. – user107312

+0

Вы можете расширить его и добавить эту функциональность в себя (вам нужно будет контролировать, какие клавиши нажаты), но предложение ниже тоже хорошо. –

0

Я бы прослушивал Event.CHANGE, так как вставка изменит поле.

+0

Событие.CHANGE не срабатывает при установке myField.text = "foo". Есть ли альтернативный способ добавления текста в поле, которое провоцирует событие CHANGE? –

0

Решение это для прослушивания TextEvent.TEXT_INPUT и поведение по умолчанию:

textField.addEventListener(TextEvent.TEXT_INPUT, onTextInput); 

function onTextInput(e:TextEvent) : void 
{ 
    // this takes place of PASTE because Event.PASTE is not triggered on a textfield 
    var t:TextField = TextField(e.currentTarget); 
    t.replaceSelectedText(e.text); 
    e.preventDefault(); 
} 

 Смежные вопросы

  • Нет связанных вопросов^_^