Publicado desdeMayo, 2009

FileReference y Clipboard, requieren interacción del usuario

May 07

Flash Player 10 además de sus mejoras de filtros y 3d, ha modificado su seguridad. Entre las cuales destaco que las clases FileReference (Subir o descargar Archivos) y Clipboard (Controlar datos a copiar en el portaPapeles) ahora requieren que sean desencadenados por un evento realizado por el usuario. Ya sea la clase MouseEvent o KeyboardEvent.

Esto trajo como consecuencia que muchos sitios comenzarán a tener problemas. (Entre los cuales me incluyo). El problema surge, cuando se necesita que la descarga sea de varios archivos.

Antes esto se podía realizar lanzando los métodos de Descarga uno detrás de otro a través de nuestro código. Pero esto no es más posible, es necesario que el usuario haga click o presione una tecla, por cada archivo a descargar. Cosa bastante molesta para el usuario final.

Cabe aclarar que este cambio de seguridad solo afecta al Flash Player 10 del navegador. Esto no afecta a una aplicación Air

Admito que lo primero que intente realizar es crear mi propio evento que despache un objeto MouseEvent. Pero esto no funcionó. Ya que el player recorre el historial, y todo debe ser originado por un evento real de usuario.

Entonces Don Adobe, le pido que se solidarice y realice un método para la clase FileReferenceList para que podamos realizar descargas múltiples. Obviamente una vez autorizado por el usuario a través de un Click del ratón o bien presionando una tecla.

Para leer más sobre los cambios en la seguridad de Flash Player 10, les dejo un link interesante.
Understanding the security changes in Flash Player 10