xShacka 0 Denunciar post Postado Maio 10, 2010 Seguinte povo !!! tenhu um swf normal com um load pra frame 2 porem na segunda parte terão imagens grandes q precisam de um pre-load como faço isso ?! Att. Eros Grato desde já Compartilhar este post Link para o post Compartilhar em outros sites
Thiago de Oliveira Cruz 21 Denunciar post Postado Maio 10, 2010 Do mesmo jeito que se faz um pre load para arquivos Soh que para imagens você tem que usar a classe MovieClipLoader se estiver usando AS 2 e contentLoaderInfo para pegar o ProgressEvent se estiver usando AS 3 Abraços Compartilhar este post Link para o post Compartilhar em outros sites
Elektra 102 Denunciar post Postado Maio 11, 2010 Do mesmo jeito que se faz um pre load para arquivos Soh que para imagens você tem que usar a classe MovieClipLoader se estiver usando AS 2 e contentLoaderInfo para pegar o ProgressEvent se estiver usando AS 3 Abraços berseck, a imagem seria convertida em um swf que receberia no frame 1 o preloader com o contentLoaderInfo (AS3)? ou é usado de forma diferente? Agradeço se puder dar um toque. Compartilhar este post Link para o post Compartilhar em outros sites
Thiago de Oliveira Cruz 21 Denunciar post Postado Maio 11, 2010 Bom quando você ta carregando uma imagem, você simplesmente puxa os dados de algum lugar e joga na tela correto? Pois bem que o contentLoaderInfo faz é durante o processo você pode pegar os dados que estão sendo carregados utilizando diferentes ouvintes, ouvintes são mais conhecidos como listeners. E o contentLoaderInfo em conjunto com ProgressEvent.PROGRESS faz, é que com isso você vai estar disponibilizando os dados de carregamento dessa image, swf, ou whatever que você esteja carregando. Um exemplo do código é isso aqui: import flash.display.Loader; var loader:Loader = new Loader(); loader.load(new URLRequest('http://forum.imasters.com.br/public/style_images/imasters2010/logo.png')); loader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, progressHandler); function progressHandler(e:ProgressEvent):void{ var carregado = e.bytesLoaded; var total = e.bytesTotal; var perc = Math.round((carregado/total)*100); trace("Total carregado: "+perc+"%"); } addChild(loader); Com esse código ele vai carregar a logo do iMasters e vai lhe mostrar no output o percentual carregado dessa imagem durante o processo de carregamento. Ou seja ele não vai converter sua imagem em SWF nem nada disso ele apenas vai verificar o percentual de carregamento da mesma. Simples, fácil e prático. Agora seria só questão de aplicar isso ai a um objeto todo ou apenas a sua image ou o que você quer carregar. Abraços Compartilhar este post Link para o post Compartilhar em outros sites
Elektra 102 Denunciar post Postado Maio 11, 2010 @berseck (away), obrigada! Observo em alguns sites com galerias de imagens situações distintas. Em alguns 1 preloader carrega todas as imagens de cada sessão da galeria, por exemplo, natureza, urbano, nude, etc. Penso que através de array (ainda não aprendi a usar). No caso, seria 1 preloader para cada sessão. Em outros, cada imagem é carregada individualmente, no primeiro acesso todas exibem 1 carregador. Isso também é comum de se ver em alguns slideshows. Sugere outra forma de declarar no action. Se for usado 4 imagens (gigantescas) como background randômico em uma página com layout líquido o que sugere para o carregamento? Para diversas imagens com tween exibidas em sequência como background, e em outros casos, usando várias animações randômicas, naturalmente seja mais indicado o carregamento direto com a página inicial. Como fica o preloader nesse caso? ps: se eu estiver em desacordo com a necessidade do autor do tópico, por favor me informe que abro um novo. Abraços Compartilhar este post Link para o post Compartilhar em outros sites
Thiago de Oliveira Cruz 21 Denunciar post Postado Maio 11, 2010 Bom não sei se ficou completinho... mas basicamente é isso aqui: Bom para começar você vai realmente precisar de um array esse pode vir de um XML ou de um array pré criado por você mesma. Isso vai depender de como você quer fazer a estrutura de seu código. Para carregar uma sequência de imagens, você tem algumas opções, mas eu vou dar apenas 2: 1 - Colocar todas os nomes de imagens que quer carregar em um array e ai chamar esse arras e fazer um loop. 2 - Criar vários carregadores separados para cada imagem. Como você pode ver não é nenhum absurdo nem nada complicado fazer um loop por uma arras. então o que podemos fazer para facilitar nossas vidas? criar um XML onde vai ter todos esses dados. E ai ao chamar clicando em um combobox da vida ou alguma coisa que sirva para selecionar a galeria que você deseja. Você vai passar esse parâmetro para o loader que por sua vez vai carregar o novo XML ou o novo valor de uma array bi dimensional. Após ter carregado todos esses dados você simplesmente vai loopar essa array passando por todos os dados dela e carregando 1 por 1. Um exemplo bem porco ok? segue abaixo: import flash.display.Loader; //Crio minha array com os arquivos que quero carregar, poderia chamar um XML para alimentar essa array var arquivos:Array = new Array('lampada.jpg', 'carro.swf','meia.gif','janela.swf'); //Contador, inicia no zero para pegar o primeiro elemento da array var cont = 0; //Crio o minha função que inicia tudo para poder fazer em sequencia os loads function loopLoad(){ //Crio um loader a cada loop para que ele crie mais um objeto e não re utilize o que ja existe no stage var loader:Loader = new Loader(); //Aqui vo passar o elemento que vai ser carregado loader.load(new URLRequest(arquivos[cont])); //Coloco aqui um listener para carregar o elemento desejado loader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, progressHandler); } //Aqui eu crio minha função referente ao ouvinte, que vai cuidar de verificar o progresso do download de cada arquivo function progressHandler(e:ProgressEvent):void{ //Aqui pego os bytes carregados var carregado = e.bytesLoaded; //Aqui pego os bytes totais do arquivo var total = e.bytesTotal; //Aqui calculo o percentual carregado que vai de 0 a 100% var perc = Math.round((carregado/total)*100); //Aqui mostro no output quanto ja foi carregado trace("Total carregado: "+perc+"%"); //Aqui eu verifico se o percentual já chegou a 100% if(perc == 100){ //Se ja chegou a 100% verifico se meu contador ainda é menor que o numero total da array //Lembrando que a array vai de 0 ao numero total e o lenght vai sempre de 1 ao numero total //Se o numero for menor adiciono 1 ao meu contador para ele passar ao proximo numero if(cont < arquivos.length) cont++; //Adiciono o arquivo carregado ao stage addChild(loader); //Aqui eu chamo novamente minha função de carregar arquivos loopLoad(); } } Espero que de para entender o que eu fiz. Lembrando que os codigos acima não são aplicaveis ao AS 2.0, apenas ao AS 3.0. Abraços Compartilhar este post Link para o post Compartilhar em outros sites
Elektra 102 Denunciar post Postado Maio 11, 2010 @berseck Um exemplo bem porco ok? segue abaixo: Adorei, rachei de rir!!! ... http://forum.imasters.com.br/public/style_emoticons/default/grin.gif ... (Anotei assim mesmo) Não precisava complicar minha vida, já tão difícil pela falta de conhecimento, com o array bidimensional, mas tudo bem, sou osso duro de roer, sei que vou aprender isso também. Vou acompanhar este tópico, tá chovendo peixe. Muito obrigada Grande abraço Compartilhar este post Link para o post Compartilhar em outros sites
Thiago de Oliveira Cruz 21 Denunciar post Postado Maio 12, 2010 Array normal var arr:Array = new Array(1,2,3,4) for(var i = 0; i < arr.length; i++){ trace(arr[i]); } Array bi dimensional var arr:Array = new Array(Array(1,2,3,4,5),2); trace(arr[0]);// output 1,2,3,4,5 trace(arr[1]); // output 2 trace(arr[0][1]);//output 2 Normalmente a gente faz isso com XML e nem sabe pra que serve muito menos o nome rs Abraços ;) Compartilhar este post Link para o post Compartilhar em outros sites
Elektra 102 Denunciar post Postado Maio 13, 2010 @berseck http://forum.imasters.com.br/public/style_emoticons/default/clap.gif Isso já nem é pescaria é milagre da multiplicação. Obrigadíssima querido amigo. ps: fico lhe devendo mais essa, por enquanto (tomara que o troço funcione). Compartilhar este post Link para o post Compartilhar em outros sites