Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

jocamo

Preloader em pdf

Recommended Posts

Tem como colocar um preloader para abrir um pdf no browser?

Coloquei um botão que chama via getURL um arquivo PDF, mas ele está um pouco pesado e queria que entrasse um preloader para o usuário sentir o tempo que faltasse para baixar.

Tem como?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Que eu saiba não tem não.

 

Afinal ai já passa a ser uma função executada no computador da pessoa... download

 

Talvez usando a função do fileReference você consiga fazer com que o flash faça o download para a pessoa... e ai mostre a porcentagem

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ok, Berseck

Metade do problema eu já resolvi. Usei o FlashPaper e transformei o arquivo.pdf num arquivo.swf.

Mas e aí ....de novo tenho que ter o preloader. Se o arquivo fosse um fla. colocaria o preloader no frame 1 e tudo bem ....

Como faço uma action para colocar num botão que estará num arquivo index e que ao ser clicado surja um preloader que "chamará este

arquivo.swf( que antes era um pdf)??

Compartilhar este post


Link para o post
Compartilhar em outros sites

Utiliza isso aqui:

//Crio a classe do MovieClipLoader
var mcl:MovieClipLoader = new MovieClipLoader;
//Crio o clip que vai carregar um arquivo externo dentro dele
var mc:MovieClip = this.createEmptyMovieClip('mc', this.getNextHighestDepth());
//Crio o objeto listener para fazer a classe MovieClipLoader funcionar corretamente
var obj:Object = new Object;
//Adiciono o listener a classe
mcl.addListener(obj);

//Carrego um arquivo externo qualquer
mcl.loadClip("arquivoExterno.swf", mc);
//Primeiramente cria-se um clip no qual vou preencher para quando carregar ele formar uma linha de um lado a outro da tela
var campo:TextField = this.createTextField('campo', this.getNextHighestDepth(), 0, Stage.height/2, 0, 5);
campo.border = true;
campo.background = true;
campo.backgroundColor = 0x888888;

//Crio o campo de texto que vai mostrar a porcentagem;
var texto:TextField = this.createTextField('texto', this.getNextHighestDepth(), Stage.width/2 - 20, Stage.height/2 - 20, 40, 20);

//Agora vamos calcular o tamanho de arquivo e colocar sua porcentagem
obj.onloadProgress = function(){
 var total = this.getBytesTotal();
 var loaded = this.getBytesLoaded();
 var carregado = Math.round((loaded/total)*100);
 texto.text = carregado + "%";
 campo._width = Math.round((loaded/total)*Stage.width);
 if(carregado == 100){
 //Removo os capos de texto usados no loader
 texto.removeTextField();
 campo.removeTextField();
 //Passo para o proximo frame
 }
}

Só que em vez de carregar uma imagem, você vai mandar carregar o swf

Como mostra o exemplo ;)

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Talvez eu esteja fazendo errado...

Para testar este seu code, fiz assim:

1-Botei um botão no stage , transformei ele em Movie clip e instanciei de "mc1"

2-Coloquei a sua Action exemplo no frame1

3- Coloquei o arquivo "arquivoExterno.swf" na mesma pasta e publiquei

 

Só que quando testo arquivoExterno.swf abre imediantamente.

O que quero é que ele abra só quando eu clicar no botão e venha precedido do preloader.

 

Tentei colocar sua action no botão , mas dá erro.

 

Se tiveres paciência.....agradeceria.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom você pode colocar só a ação

 

mcl.loadClip("arquivoExterno.swf", mc);

 

Dentro de um botão

 

por exemplo:

bt.onPress = funciton(){
mcl.loadClip("arquivoExterno.swf", mc);
}

Ai vai fazer só depois que clicar no botão e não antes ;)

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.