Inflamación: addEventListener no detectar eventos Pegar en cuadros de texto de entrada
-
21-08-2019 - |
Pregunta
Soy nuevo en Flash, y me parece que no puede hacer esta simple acción.
(estoy usando ActionScript 3.0)
He creado un cuadro de texto de entrada en mi editor. El nombre de la instancia es "prueba". En mi editor de Acción tengo esto:
import flash.events.Event;
this.test.addEventListener(Event.PASTE, pasteHandler);
function pasteHandler(e:Event)
{
trace("blaaaaaaaaaagh");
}
Cuando lo ejecuto, que no detecta ninguna de mis eventos de pasta, si estoy haciendo Ctrl + V o haga clic + pasta. Si utilizo otro evento, como MouseEvent.CLICK, lo detecta bien. De hecho, no creo que se detectan eventos Event.XXX (como copiar, INIT, etc.) (al menos de los que yo probé). Todos los eventos MouseEvent y KeyboardEvent parecen funcionar bien.
¿Qué estoy haciendo mal?
Solución
Los objetos TextField no distribuyen eventos clara, copiar, cortar, pegar o selectAll. Lo siento por la mala noticia!
Tyler.
Otros consejos
Me escucho Event.CHANGE ya pegar va a cambiar el campo.
La solución a esto es para escuchar TextEvent.TEXT_INPUT y prevenir el comportamiento por defecto:
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();
}