jocamo 0 Denunciar post Postado Novembro 19, 2009 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
Thiago de Oliveira Cruz 21 Denunciar post Postado Novembro 19, 2009 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
jocamo 0 Denunciar post Postado Novembro 19, 2009 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
Thiago de Oliveira Cruz 21 Denunciar post Postado Novembro 20, 2009 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
jocamo 0 Denunciar post Postado Novembro 20, 2009 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
Thiago de Oliveira Cruz 21 Denunciar post Postado Novembro 20, 2009 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