De momento estaba probando poniendo la dirección en el propio código para probar y me he encontrado con un detalle, solo soy capaz de descargar cosas del mismo servidor en el que está colgado el swf.
Si esta en algo.com solo lo que se encuentre ahí, pero del resto no.
Hay alguna limitación respecto a esto en FileReference y URLRequest.
Aquí el código AS3:
Código :
import flash.events.*; import flash.net.FileReference; import flash.net.URLRequest; import flash.text.TextField; var Down:FileReference; var FileReq:URLRequest; this.DownBtn.addEventListener(MouseEvent.CLICK,DownBtnFunc); function DownBtnFunc(evento:MouseEvent):void { Download("http://www.iaitor.es/index.php","El_Index_De_iAitor.html"); } function Download(FileUrl:String,FileName:String=null):void { FileReq = new URLRequest(); FileReq.url = FileUrl; Down = new FileReference(); Handlers(Down); Down.download(FileReq,FileName); } function Handlers(disp:IEventDispatcher):void { disp.addEventListener(Event.OPEN, openHandler); disp.addEventListener(Event.COMPLETE, completeHandler); disp.addEventListener(ProgressEvent.PROGRESS, progressHandler); disp.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler); } function openHandler(evento:Event):void { this.DownBtn.label = "Cancelar"; } function completeHandler(evento:Event):void { this.DownBtn.label = "Descargar"; } function ioErrorHandler(evento:IOErrorEvent):void { this.StatusTxT.text = "Error. Intentelo de nuevo"; Down.cancel(); } function progressHandler(evento:ProgressEvent):void { var loaded = evento.bytesLoaded; var total = evento.bytesTotal; // Hack para que el tamaño descargado no sea mayor que el total if (evento.bytesLoaded > evento.bytesTotal) { loaded = total; } var percent = (loaded * 100) / total; if (loaded >= 1024) { loaded = (loaded / 1024) + " kB"; } else if (loaded >= (1024*1024)) { loaded = (loaded / (1024*1024)) + " MB"; } else { loaded = loaded + " B"; } if (total >= 1024) { total = (total / 1024) + " kB"; } else if (total >= (1024*1024)) { total = (total / (1024*1024)) + " MB"; } else { total = total + " B"; } this.StatusTxt.text = percent + "% / " + Math.round(loaded) + " de " + Math.round(total); }
Ejemplo con un archivo externo a mi servidor (skg.eien-no-ai-net):
Ejemplo con un archivo alojado en mi servidor:
Saludos y gracias por adelantado