flex - como - portapapeles windows 10
No se pueden obtener datos de archivo del portapapeles con Flex (1)
Supongo que esto es parte de una aplicación de AIR. (No es posible acceder al portapapeles desde una aplicación simple de Flex).
No tengo experiencia con AIR, pero su segundo bloque de código es claramente incorrecto. Una instancia de URLRequest
no hace nada en sí misma, no es más que un objeto estático que almacena los detalles de la solicitud. Para obtener los datos de esa URL, debe crear un Loader
y pasar la solicitud a ese cargador de esta manera:
var req:URLRequest = new URLRequest(value.file.url); // this is a local file (e.g. file:///C:/somefile.jpg)
var ldr:Loader = new Loader();
ldr.addEventListener(Event.COMPLETE, function(event:Event):void {
var b:Bitmap = event.target.content as Bitmap;
});
ldr.load(req);
Por supuesto, debe completar el controlador Event.COMPLETE
. Tenga en cuenta que la clase Loader
se puede usar para cargar SWF y objetos de imagen, para todo lo demás, debe usar URLLoader
y analizar los datos usted mismo.
Con respecto al bloque nativeDragDrop
, aquí hay un fragmento de la documentación :
Normalmente, un controlador para el evento nativeDragEnter o nativeDragOver evalúa los datos que se arrastran, junto con las acciones de arrastre permitidas, para determinar si un objeto interactivo puede aceptar una caída. Para especificar que un objeto interactivo es un objetivo elegible, el controlador de eventos debe llamar a la función NativeDragManager.acceptDrop (), pasando una referencia al objeto. Si el usuario suelta el botón del mouse sobre el objeto designado, el objeto se convierte en el destino y envía el evento nativeDragDrop.
¿Estás llamando NativeDragManager.acceptDrop()
correctamente?
Dado: Un Flex TileList con el siguiente evento:
<mx:nativeDragDrop>
<![CDATA[
if(event.clipboard.hasFormat(ClipboardFormats.FILE_LIST_FORMAT)) {
var files:Array = event.clipboard.getData(ClipboardFormats.FILE_LIST_FORMAT) as Array;
for each(var file:File in files)
{
// file.data is null here!
}
this.listData.refresh();
}
]]>
</mx:nativeDragDrop>
Estoy tratando de crear una lista de miniaturas de jpegs que arrastre a esta TileList. Image.source puede usar la url para mostrar la imagen, pero necesito escalar la imagen primero (fotos hi rez) Ya tengo la parte de escalado lista, excepto que necesito BitmapData del archivo y tiene nulo para file.data.
TAMBIÉN, he intentado esto:
var x:URLRequest = new URLRequest(value.file.url); // this is a local file (e.g. file:///C:/somefile.jpg)
var b:Bitmap = new Bitmap(x.data as BitmapData);
¡la información también es nula! Muy frustrante. Cualquier ayuda sería apreciada.