en mi proyecto, dejo que los usuarios elijan imágenes utilizando la clase FileReference. Luego cargo estas imágenes en sus propiedades .data, usando la función load(). Después de esto, realizo algunas manipulaciones locales y las envío al servidor.Flex: DeepCopy de FileReference
Lo que me gustaría hacer es poder iterar nuevamente sobre las FileReferences elegidas, cargarlas en propiedades .data, realizar una manipulación diferente y enviarlas al servidor una vez más. Sé que debería poder hacer esto desde el evento invocado por el usuario, eso no es un problema aquí.
El problema es que una vez que se carga la FileReference por primera vez, no puedo descargarla de ninguna manera y no puedo guardar los datos de todas las imágenes en la memoria porque son enormes.
Así que supongo que hay una sola cosa que puedo hacer, que es realizar un DeepCopy en FileReference ... Luego podría cargar la primera versión, descartarla y usar la copia para la segunda 'ejecución'.
Intenté utilizar ObjectUtil.copy, pero cuando accedo, p. .name propiedad de la copia, falla con:
Error #2037: Functions called in incorrect sequence, or earlier call was unsuccessful.
en nombre flash.net::FileReference/get()
el fragmento relevante:
registerClassAlias("FileReference",FileReference);
masterFileList.addItem(FileReference(ObjectUtil.copy(fr_load.fileList[i])));
trace(masterFileList[i].name)
no es cierto que Cuáles son algunas propiedades protegidas de la clase FileReference que impiden que se copie? Si es así, ¿puedo eludir esto de alguna manera? ¿O hay alguna otra solución para mi problema general?
¡Agradezco cualquier pista/idea!
Lo mencioné en actionscript.org y elaboré un poco más, pero todavía no hay esperanza. De todos modos aquí está el hilo: http://www.actionscript.org/forums/showthread.php3?t=227441 – supo
Supongo que esto no se puede hacer, ya que es probable que haya algunos identificadores en el objeto FileReference que no son accesibles en absoluto usando ActionScript. No me sorprendería si la clase FileReference ni siquiera se implementara en ActionScript. –