Tá aqui parceiro... Fiz um negócio bem grosso-modo... usando URLStream....
que é mais interessante porque baixa a app byte a byte... então não pesa
tanto...
import flash.events.IOErrorEvent;
import flash.events.ProgressEvent;
import flash.filesystem.*;
import flash.net.URLRequest;
import flash.net.URLStream;
import flash.utils.ByteArray;
var urlStream:URLStream;
private function baixaArquivo():void{
var request:URLRequest;
urlStream = new URLStream();
request = new URLRequest( 'www.seudominio.com.br/arquivo.extensao' );
urlStream.addEventListener( ProgressEvent.PROGRESS, downloadProgresso );
urlStream.addEventListener( Event.COMPLETE, downloadCompleto );
urlStream.addEventListener( IOErrorEvent.IO_ERROR, downloadErro );
urlStream.load( request );
}
private function downloadProgresso(event:ProgressEvent):void{
var percent:uint = event.bytesLoaded / event.bytesTotal * 100;
trace('Bytes Baixados: ' + event.bytesLoaded + ' de ' + event.bytesTotal
+ ' - ' + percent + '%');
}
private function downloadErro(event:IOErrorEvent):void{
// Erro no download da mídia... adiciona ocorrência no log.
logErros( );
}
private function downloadCompleto(event:Event):void{
var byteArray = new ByteArray();
var arquivoStream:FileStream;
var file:File;
event.target.readBytes(byteArray);
// para gravar dentro da pasta da aplicação
file = new File( File.applicationDirectory.resolvePath(
'arquivo.extensao' ).nativePath );
// Para gravar dentro de uma pasta interna da aplicação
file = new File( File.applicationDirectory.resolvePath(
'pasta/arquivo.extensao' ).nativePath );
// Para gravar no desktop
//file = new File( File.desktopDirectory.resolvePath( 'arquivo.extensao'
).nativePath );
// Para gravar na pasta de documentos
//file = new File( File.documentsDirectory.resolvePath(
'arquivo.extensao' ).nativePath );
arquivoStream = new FileStream();
arquivoStream.open(file, FileMode.WRITE);
arquivoStream.writeBytes(byteArray);
arquivoStream.close();
urlStream.close();
}
Abraço
--
*Wemerson Guimarães*
Rio Verde - Go
--
Você recebeu esta mensagem porque está inscrito na lista "flexdev"
Para enviar uma mensagem, envie um e-mail para [email protected]
Para sair da lista, envie um email em branco para
[email protected]
Mais opções estão disponíveis em http://groups.google.com/group/flexdev