Ir para conteúdo

POWERED BY:

Arquivado

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

Evandro.S Eisinger

Buscar fotos randomicamente

Recommended Posts

Oi Pessoal, estou tento um problema com puxar e mostrar fotos rondomicamente.

 

Seguinte, tenho Movie Clips, neles eu chamo as fotos aleatoriamente. Até aqui tudo bem.

 

Usando este código:

 

imagens = new Array();
imagens2 = new Array();
imagens = ["1.jpg", "2.jpg", "3.jpg"];
imagens2 = ["1.jpg", "2.jpg", "3.jpg"];
img = imagens[random(imagens.length)];
img2 = imagens[random(imagens2.length)];
alvo1_mc.loadMovie(img);
alvo2_mc.loadMovie(img2);

Mas usando o meu código como esta, ele tem chance de chamar as fotos repitidas, chamar duas iguais.(Essa seria minha primeira duvida.) Como eu faço para chamar fotos diferentes?

 

Segunda duvida: Como eu faria para buscar o nome das fotos utilizando um xml? pelo código que eu fiz ele chama as fotos citadas no array como eu poderia fazer para ele buscar os nomes das fotos pelo xml ou txt?

 

Ficarei muitooooooo agradecido se alguem poder me tirar essas duvidas que estâo me matando...

 

Um abraço!

 

Agradecido desde entâo!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mas usando o meu código como esta, ele tem chance de chamar as fotos repetidas, chamar duas iguais.(Essa seria minha primeira duvida.) Como eu faço para chamar fotos diferentes?

o que você poderia fazer é guardar numa variável o ultimo numero sorteado, assim quando ele sortear de novo você compara se o novo numero é igual ao anterior, se for sorteia de novo

 

 

Segunda duvida: Como eu faria para buscar o nome das fotos utilizando um xml? pelo código que eu fiz ele chama as fotos citadas no array como eu poderia fazer para ele buscar os nomes das fotos pelo xml ou txt?

 

primeiro você carrega o XML e guarda num array todos os nomes das imagens, ai você usa o mesmo esquema que você usou acima para sortear

 

 

[]´s

Compartilhar este post


Link para o post
Compartilhar em outros sites

OI Eder!

 

Brigado por me ajudar novament...^^

 

Seguinte, sobre a primeira duvida eu tentei assim mas nâo deu certo, as fotos nao carregam:

 

imagens = new Array();
imagens2 = new Array();
imagens = ["1.jpg", "2.jpg", "3.jpg"];
imagens2 = ["1.jpg", "2.jpg", "3.jpg"];
img = imagens[random(imagens.length)];
img2 = imagens[random(imagens2.length)];
if(img==img2){
	img2 = imagens[random(imagens2.length)];
}
else
{
alvo1_mc.loadMovie(img);
alvo2_mc.loadMovie(img2);
}

Acho que o meu if ta errado, nao sei mais como compara variaveis.... Eu to estudando mais php^^

 

Poderia me dar uma forcinha

 

Abraços!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tentei agora buscando os dados pelo XML e nâo deu....

 

Fico assim:

 

var meuXML:XML = new XML();
meuXML.load("dados.xml");
imagens = new Array();
imagens2 = new Array();
imagens = meuXML;
imagens2 = meuXML;
img = imagens[random(imagens.length)];
img2 = imagens[random(imagens2.length)];
if(img==img2){
	img2 = imagens[random(imagens2.length)];
}
else
{
alvo1_mc.loadMovie(img);
alvo2_mc.loadMovie(img2);
}

Meu XML:

 

<?xml version=\"1.0\" encoding=\"utf-8\"?>

<foto>

1.jpg

</foto>

<foto>

2.jpg

</foto>

<foto>

3.jpg

</foto>

 

Vo fica tentando aqui, dei uma pesquisada mas nao achei oque queria.

 

Abraços!

Compartilhar este post


Link para o post
Compartilhar em outros sites

no 1º caso seria assim:

 

imagens = new Array();
imagens2 = new Array();
imagens = ["1.jpg", "2.jpg", "3.jpg"];
imagens2 = ["1.jpg", "2.jpg", "3.jpg"];
img = imagens[random(imagens.length)];
img2 = imagens[random(imagens2.length)];
while(img == img2){
	 img = imagens[random(imagens.length)];
	 img2 = imagens2[random(imagens2.length)];
}
alvo1_mc.loadMovie(img);
alvo2_mc.loadMovie(img2);

 

 

no 2º, você tem que colocar o codigo dentro do evento onLoad do XMl, e lá dentro ler os nós do XML e colocar as imagens num array

 

 

 

[]´s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Oi Eder!

 

Acho que estou tendo um progresso^^

 

Seguinte meu codio ficou assim: (Eu peguei num dos meus tutorias o onload e acho que consigui adaptar, mas nao funciona...)

 

var xml:XML = new XML();
  xml.load("dados.xml");
  xml.onLoad = function(){
	imagens = new Array();
	imagens2 = new Array();
	imagens3 = new Array();
	imagens = xml.childNodes[0].firstChild.nodeValue;
	imagens2 = xml.childNodes[0].firstChild.nodeValue;
	imagens3 = xml.childNodes[0].firstChild.nodeValue;
	img = imagens[random(imagens.length)];
	img2 = imagens[random(imagens2.length)];
	img3 = imagens[random(imagens3.length)];
	while(img == img2 and img == img3 and img2 == im3){
	 	img = imagens[random(imagens.length)];
	 	img2 = imagens2[random(imagens2.length)];
		img3 = imagens3[random(imagens3.length)];
}
	alvo1_mc.loadMovie(img);
	alvo2_mc.loadMovie(img2);  
	alvo3_mc.loadMovie(img3); 
}

Tambem, coloquei mais um alvo(alvo3_mc), pois meu cliente me pediu para botar mais que 2 alvos entâo estou tentando...

Mas Nao consigui fazer oque você fez nos outros 2 alvos que um nao pode ser igual ao outro.

 

Fico muito agradecido por estar dando essa força=D Desculpe a demora para responder pois tive problemas familiares ai sabe né....

 

Abraços!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

criei uma função para gerar números aleatórios, sem repeti-los, fica mais fácil

 

 

function geraAleatorio(limit:Number):Array {
	var lista:Array = new Array()
	var novo:Array = new Array()
	var ale:Number
	for(var i = 0; i < limit; i++)
		lista.push(i)

	while(lista.length > 0){
		ale = Math.round(Math.random() * (lista.length - 1))
		novo.push(lista.splice(ale, 1))
	}
	return novo
}


xml.onLoad = function(){
	var imagens = new Array();
	var rd:Array = geraAleatorio(3);
	
	imagens[0] = xml.childNodes[0].firstChild.nodeValue;
	imagens[1] = xml.childNodes[1].firstChild.nodeValue;
	imagens[2] = xml.childNodes[2].firstChild.nodeValue;
	
	img =  imagens[rd[0]];
	img2 = imagens[rd[1]];
	img3 = imagens[rd[2]];
	
	alvo1_mc.loadMovie(img);
	alvo2_mc.loadMovie(img2);  
	alvo3_mc.loadMovie(img3);
}

 

vai usando o trace() para saber se os valores estão corretos

 

 

 

 

[]´s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vlw! Eder

 

Eu mas nao consigui fazer com que as imagens carreguem...

 

Eu coloquei acho que falta colocar o "dados.xml": (Tentei assim, mas nao obtive sucesso...)

 

 

function geraAleatorio(limit:Number):Array {

var lista:Array = new Array()

var novo:Array = new Array()

var ale:Number

for(var i = 0; i < limit; i++)

lista.push(i)

 

while(lista.length > 0){

ale = Math.round(Math.random() * (lista.length - 1))

novo.push(lista.splice(ale, 1))

}

return novo

}

 

xml.load("dados.xml");

xml.onLoad = function(){

var imagens = new Array();

var rd:Array = geraAleatorio(3);

 

imagens[0] = xml.childNodes[0].firstChild.nodeValue;

imagens[1] = xml.childNodes[1].firstChild.nodeValue;

imagens[2] = xml.childNodes[2].firstChild.nodeValue;

 

img = imagens[rd[0]];

img2 = imagens[rd[1]];

img3 = imagens[rd[2]];

 

alvo1_mc.loadMovie(img);

alvo2_mc.loadMovie(img2);

alvo3_mc.loadMovie(img3);

}

 

Nao teria que criar uma variavel xml?

 

Obrigado desde entâo!

 

Abraços!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Brigado Eder!

O estranho é que ele somente lê uma imagem, e carrega somente esta imagem.

Ocorreu um erro...:

 

Error opening URL "file:///C|/Documents%20and%20Settings/admin/Desktop/Nova%20pasta/

 

1.jpg

 

"

Error opening URL "file:///C|/Documents%20and%20Settings/admin/Desktop/Nova%20pasta/undefined"

Error opening URL "file:///C|/Documents%20and%20Settings/admin/Desktop/Nova%20pasta/undefined"

 

Nâo entendi porque ouve isso, pois ele acha o 1.jpg do xml..., e as fotos estâo no mesmo lugar e com mesmo nome...

 

Fico assim o código:

 

function geraAleatorio(limit:Number):Array {
	var lista:Array = new Array()
	var novo:Array = new Array()
	var ale:Number
	for(var i = 0; i < limit; i++)
		lista.push(i)

	while(lista.length > 0){
		ale = Math.round(Math.random() * (lista.length - 1))
		novo.push(lista.splice(ale, 1))
	}
	return novo
}

var xml = new  XML()
xml.load("dados.xml");
xml.onLoad = function(){
	var imagens = new Array();
	var rd:Array = geraAleatorio(3);
	imagens[0] = xml.childNodes[0].firstChild.nodeValue;
	imagens[1] = xml.childNodes[1].firstChild.nodeValue;
	imagens[2] = xml.childNodes[2].firstChild.nodeValue;
	img =  imagens[rd[0]];
	img2 = imagens[rd[1]];
	img3 = imagens[rd[2]];   
	alvo1_mc.loadMovie(img);
	alvo2_mc.loadMovie(img2);  
	alvo3_mc.loadMovie(img3);
}

E assim o XML:

 

<?xml version="1.0" encoding="UTF-8"?>

<foto>

1.jpg

</foto>

<foto>

2.jpg

</foto>

<foto>

3.jpg

</foto

 

 

Muito obrigado por estar me dando essa força novamente!

Aguardo ansiosamente!

Abraços!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Resolvi o problema!^^

Consigui fiz essa alteração e funcionou:

 

xml.ignoreWhite = true;

 

Para ignorar os espaços em branco^^

 

MUITO OBRIGADO EDER !! PELA AJUDA!!

 

ESPERO UM DIA PODER TE AJUDAR

 

ABRAÇOS!!!!!!!!!!!!!111

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.