Hola, estaba haciendo una pequeña aplicación donde me permira 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:
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() {
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");
}