2009-12-01 21 views
5

tengo botones de la barra de control de copiar, cortar y pegar, y que supongo que copiar/pegar algunos objetos de texto/desde y hacia el portapapeles.Pegar texto desde el portapapeles con el botón

Copiar/Cortar funciona bien. Pegar usando CTRL + V y el menú contextual funciona bien también.

Pero cuando estoy tratando de acceder a través de control portapapeles botón de la barra de controlador click arroja error

SecurityError: Error #2179: The Clipboard.generalClipboard object may only be read while processing a flash.events.Event.PASTE event. 
at flash.desktop::Clipboard/getObjectReference() 
at flash.desktop::Clipboard/convertNativeFormat() 
at flash.desktop::Clipboard/getOriginal() 
at flash.desktop::Clipboard/getData() 
... 2 more 

Sé que esto es problema de seguridad.

Método Clipboard.generalClipboard.getData() se pueden utilizar para leer el contenido de el portapapeles del sistema, pero sólo cuando se llama desde dentro de un controlador de eventos procesar una flash.events.Event. PASTE evento.

Pero tengo que implementar el botón de barra de control de pegado. ¿Había hecho eso?

Respuesta

1

La única cosa que he podido encontrar es la capacidad de pegar utilizando un menú contextual personalizado. Puede encontrar un example on how to do that here. Intenté despachar eventos "pegar" y el reproductor parece detectar de alguna manera que la pegada proviene del menú contextual o del teclado, no del todo seguro de cómo lo hace o por qué. Espero que alguien más pueda proporcionar más aclaraciones, pero mientras tanto, ¿funcionaría un menú contextual?

ACTUALIZACIÓN: No creo que haya ninguna manera de forzar un evento paste. He estado ejecutando algunas pruebas y parece que la única forma de llamar a este evento y permitir que se llame al método Clipboard.generalClipboard.setContents sin el error de seguridad es responder a un evento global de pegado, que solo se puede despachar ". de forma segura "desde un menú contextual o evento de teclado (ctrl + V o el equivalente de la plataforma). Lo siento.

0

En otro entorno de programación, he encontrado que la activación de una acción de pasta de portapapeles desde un botón no funciona porque el propio botón recibe el foco, lejos del control de edición de destino, antes de la acción se lleva a cabo la pasta. ¿Podría ser este el caso?

-1

el fin de evitar la seguridad excepción, el destino del evento debe ser objeto etapa de la aplicación. No encontré esta información en ninguna documentación, es de mi propia experiencia. Espero que funcione.

+0

Parece que entendió mal la pregunta o descubrió un agujero de seguridad en Flash Player. ¿Podría darnos un código de ejemplo? –

Cuestiones relacionadas