Pessoal, bom dia!

Tenho um arquivo cujos bytes são gerados por um RemoteObject.
A parte java e a chegada dos dados do arquivo estão ok mas estou tendo
um problema com o FileReference e o evento de result do RemoteObject.
O código AS3 está mais ou menos assim:
[code]
//Evento do botão               
public function onClickArquivoButton ( event:MouseEvent ):void
{
      remoteObject.recuperarArquivo();
}

//Result do RemoteObject
public function recuperarArquivoResult(e:ResultEvent):void
{
      var fileReference:FileReference = new FileReference();
      fileReference.save(e.result, null);
}
[/code]

Este código dá o erro que se segue:
[code]
Error: Error #2176: Certas ações, como aquelas que exigem uma janela
pop-up, só podem ser invocadas com interação do usuário, por exemplo,
clicar com o mouse ou pressionar um botão.
        at flash.net::FileReference/_save()
        at flash.net::FileReference/save()
        ...
[/code]

O que acontece é que para utilizar o FileReference é necessário que o
método que utiliza-o seja invocado por uma ação do usuário e pelo que
eu entendo o Flex não entende o evento de resultado do RemoteObject
como sendo uma ação invocada com interação do usuário, mesmo que a
chamada do RemoteObject tenha sido originada por uma ação do
usuário(no caso o acionamento do botão).
Pesquisando na internet vi que o pessoal tende a carregar os bytes do
arquivo assim que listam ou mostram os arquivos mas no meu caso é
inviável essa opção pois o usuário deve alterar alguns dados no
sistema e depois gerar o arquivo (fiquei também pensando no tráfego
desnecessário de dados caso o usuário nunca venha a precisar do
arquivo).
Já consegui implementar com duas ações do usuário (algo como "Preparar
Arquivo" e "Salvar Arquivo") mas gostaria de saber se há alguma
maneira de fazer com apenas uma ação do usuário sem pré-carregar os
dados do arquivo.

Desde já agradeço!

--~--~---------~--~----~------------~-------~--~----~
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