Ir para conteúdo

POWERED BY:

Arquivado

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

Ericb

Problema c/ Carregamento de Imagens via XML

Recommended Posts

Olá pessoal, eu estou tendo uma dificuldade lidando com ActionScript 3.

 

Estou carregando uma galeria de fotos organizadas em um documento XML. Na maior parte das vezes, elas carregam normalmente, mas às vezes apenas algumas carregam.

 

E elas sempre carregam em ordem aleatória.

 

Procurei alguns outros artigos na web que explicam a solução pra essa questão, algumas sugerindo usos de loops com for e outros armazenando cada variável contendo a imagem em um array.

 

Ainda assim fiquei com dificuldade na compreensão, por isso resolvi reunir algumas sugestões desse problema em bom português num único tópico para futura referência.

 

Vamo lá galera, já escrevi dois tópicos tentando tirar dúvida e ninguém respondeu.

Compartilhar este post


Link para o post
Compartilhar em outros sites

bom dia Erib,

se você está buscando as informações referentes à imagem de um bd, então é só colocar um ORDER BY no seu select que ja vai te dá um result organizado. Mas se você quer organizar seu xml depois de carregado(ou pronto)... pode fazer como no link abaixo:

Link de exemplo

 

se não for essa a dúvida, tente novamente... :P

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

bom dia Erib,

se você está buscando as informações referentes à imagem de um bd, então é só colocar um ORDER BY no seu select que ja vai te dá um result organizado. Mas se você quer organizar seu xml depois de carregado(ou pronto)... pode fazer como no link abaixo:

Link de exemplo

 

se não for essa a dúvida, tente novamente... :P

 

Abraços

 

Opa, milagres acontecem, hehe.

 

Muito obrigado pela resposta e pelo link, Diego, com certeza vou guardá-lo pra futura referência.

 

Mas pelo que pude ler naquele tópico, ele só oferece soluções em PHP, do qual sem dúvida nada domino. Teria alguma sugestão de como eu resolveria a lógica de carregamento ordenado da galeria em AS3?

 

Abraços e obrigado novamente.

Compartilhar este post


Link para o post
Compartilhar em outros sites

package mvc.br.com.holosdesign.produtos
{
 import flash.display. Sprite;
 import flash.display. Stage;
 import flash.events. Event;
 import flash.events. MouseEvent;
 import flash.events. ProgressEvent;
 import mvc. *;
 
 public class ProdutosThumbs extends Sprite
 {
 private var _xmlThumbs: XML;
 private var _xmlFotos: XML;
 private var _tamanhoXMLThumbs: uint;
 
 public function ProdutosThumbs(xmlThumbs:XML, xmlFotos:XML)
 {
 _xmlThumbs = xmlThumbs;
 _xmlFotos = xmlFotos;
 _tamanhoXMLThumbs = xmlThumbs.children().length();
 
 this.name = "produtosThumbs";
 this._geraThumbs();
 }
 
 private function _geraThumbs()
 {
 var preloader: Preloader = new Preloader();
 var i: uint = 0;
 
 for (i; i < _tamanhoXMLThumbs; i++)
 {
 var urlThumb: String = _xmlThumbs.thumb[i].@url;
 var thumb: DadosImagem = new DadosImagem(urlThumb);
 thumb.name = "galeriaThumb" + i;
 thumb.addEventListener(Event.COMPLETE, this._aoCarregarThumb);
if(i <= 1)
				{
					thumb.x = 167 * i;
				}
				else if(i > 1 && i <= 3)
				{
					thumb.x = (167 * i) + 165;
				}
				else if(i > 3 && i <= 7)
				{
					thumb.x = (167 * i) - 500;
					thumb.y = 120;
				}
				else if(i > 7 && i <= 10)
				{
					thumb.x = (167 * i) - 1330;
					thumb.y = 120 * 2;
				}
				else if(i > 10 && i <= 11)
				{
					thumb.x = (167 * i) - 1170;
					thumb.y = 120 * 2;
				}
				else if(i > 11 && i <= 15)
				{
					thumb.x = (167 * i) - 1995;
					thumb.y = 120 * 3;
				}
				else if(i > 15 && i <= 16)
				{
					thumb.x = (167 * i) - 2650;
					thumb.y = 120 * 4;
				}
				else if(i > 16 && i <= 19)
				{
					thumb.x = (167 * i) - 2495;
					thumb.y = 120 * 4;
				}
				else if(i > 19 && i <= 21)
				{
					thumb.x = (167 * i) - 3330;
					thumb.y = 120 * 5;
				}
				else if(i > 21 && i <= 23)
				{
					thumb.x = (167 * i) - 3160;
					thumb.y = 120 * 5;
				}
				else if(i < _tamanhoXMLThumbs)
				{
					thumb.x = (167 * i) - 3820;
					thumb.y = 120 * 6;
				}
			}
		}
		
		private function _aoCarregarThumb(e:Event):void
		{
			var thumb:DadosImagem = DadosImagem(e.target);
				thumb.buttonMode = true;
				thumb.scaleX	 = 
				thumb.scaleY	 = .4;
				thumb.addEventListener(MouseEvent.CLICK, this._aoClicarThumb);
			
			this.dispatchEvent(e);
			this.addChild(thumb);
		}
		
		private function _aoClicarThumb(e:MouseEvent):void
		{
			this._iniciaFoto(e.target.name);
		}
		
		private function _iniciaFoto(nomeThumb:String):void
		{
			var palco:		Stage		 = Stage(this.parent.parent.parent);
			var inicio:		uint		 = nomeThumb.indexOf("b");
			var indiceThumb:String		 = nomeThumb.substr(inicio + 1);
			var urlFoto:	String		 = _xmlFotos.foto[indiceThumb].@url;
			var foto:		ProdutosFotos = new ProdutosFotos(urlFoto);
			
				palco.addChild(foto);
		}
	}
}

 

Perdoem o cálculo matemático destrinchado dos thumbnails. Sei que deixou o código imenso, mas foi a única maneira que encontrei de compreender minha própria lógica, rs.

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.