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?

¿Fue útil?

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();
}
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top