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

Responder a