(flash) FileReference browser dentro de un ExternalInterface

Iniciado por WHK, 17 Abril 2011, 22:10 PM

0 Miembros y 1 Visitante están viendo este tema.

WHK

Hola, estaba haciendo una pequeña aplicación donde me permita subir archivos con progreso pero manipulado completamente desde javascript utilizando ExternalInterface y hasta el momento todo va bién pero al intentar llamar browser() no me funciona.

Intenté debuggearlo y si se ejecuta bién la función llamada desde el exterior pero esa función en particular no hace nada.

Si lo llamo desde una función interna haciendole click a lo que sea ahi si funciona bién.

Será algún metodo de seguridad nativa o algo por el estilo?

por lo menos si me deja enviar el archivo desde ExternalInterface.

Código (actionscript) [Seleccionar]
import flash.net.FileReference;
import flash.external.ExternalInterface;

var arrTypes:Array = new Array();
var objTypes:Object = new Object();
objTypes.description = "Todos los archivos";
objTypes.extension = "*";

arrTypes.push(objTypes);

var listUpload:Object = new Object();
var fileUpload:FileReference = new FileReference();
fileUpload.addListener(listUpload);

function buscarFL(){
/* No funciona */
fileUpload.browse(arrTypes);
}

function subirFL(){
fileUpload.upload(_root.uploadfile);
}

ExternalInterface.addCallback("buscarFL", this, buscarFL);
ExternalInterface.addCallback("subirFL", this, subirFL);

btbrowse.onRelease = function() {
/* Si funciona */
fileUpload.browse(arrTypes);
}

listUpload.onSelect = function(file) {
ExternalInterface.call("seleccionado", file.name);
}

listUpload.onProgress = function(file, bytesLoaded, bytesTotal):Void {
if(Math.round(bytesLoaded*100/bytesTotal) == 100){
ExternalInterface.call("estado", "Moviendo archivo ...");
}else{
ExternalInterface.call("estado", "Subiendo archivo " + Math.round(bytesLoaded*100/bytesTotal) + "%");
}
}

listUpload.onComplete = function(file:FileReference):Void {
ExternalInterface.call("estado", "Archivo subido correctamente");
}