Ir para conteúdo

POWERED BY:

Arquivado

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

Celso Design

Banner com Array

Recommended Posts

Salve galerinha do forum bem to tentando fazer o seguinte!

 

Tenho varios banner e ele a cada atualizado ele carrega um banner diferente e tenho 10 banner diferentes!

Ate ai tudo bem!

 

Gostaria de fazer o seguinte!

 

Colocar um menu de escolha com 3 opções!

 

E que o usuriao visualiza-se qual ele tenha escolhido!

 

O Problema eh o seguinte a cada reflesh ele tras um banner e eu tento 3 opções de escolha ele teria q sortear um para ir para o 2 e qdo eu clicase no 2 ele aparece o mesmo naum sortease ele novamente nuam sei se deu para entender !

 

 

Bem o cosigo eu to dando uma estudada!

Se algume puder me ajudar fico grato!

 

/* Peço desculpas aos leitores do imasters, por causa da demora. Estou envolvido com vários projetos o que me toma um tempo considerável. Sem mais nem longa vamos lá. Nessa matéria irei mostrar como cria um sistema de carregamento de imagens aleatórias, sem repetição. usando sharedobject, recebi vários emails, pedindo mais explicações sobre sharedobject. Neles algumas perguntas como essas, e aí vão suas respectivas respostas:  O que é sharedObject?  Re: Podemos caracterizar como um cockie do flash, onde podem ser salvos. Dados complexos e nativos do flash.  É salvo no servidor ou na maquina do usuário?  Re: Usando o sharedobject a partir do método getLocal, o arquivo é salvo na maquina do cliente. Você pode salvar sharedobject no servidor usando o Flash Communication Server  Qual a extensão do arquivo? Re: Sua extensão é .SOL  Se eu limpar o cache do meu browser os sharedobject existentes serão excluidos? Re: Não, pois os arquivos não são salvos nos arquivos temporarios do seu Browser.   Acho que agora ficou claro o que é um sharedobject.  Podemos continuar com nosso exemplo   Aqui usarei um array, passando a url das imagens, mais você pode ir mais alem, e receber esses dados de um XML ou de outra fonte de dados externa que preferir. *///Aqui vou criar um array, com 4 elementos que são os nomes das imagens que irei carregar.stop();var banners:Array = ["banner1.swf", "banner2.swf", "banner3.swf", "banner4.swf", "banner5.swf", "banner6.swf", "banner7.swf", "banner8.swf", "banner9.swf", "banner10.swf"];//Definindo o sharedObject, chamando ele a partir do método getLocal, o arquivo nesse caso ainda não é criado só quando executamos o método flush para gravar alguma coisa nele. Caso o mesmo já exista, podemos acessar os valores inseridos, e altera-los e adicionar novos valores.var arquivo:SharedObject = SharedObject.getLocal("imagens");/*Crie uma função chamada aleatório. E função vai receber dois argumentos:(qtd) -> Que é do tipo number e vai receber a quantidade de imagens que existem no array banners(ultima) -> Também é do tipo number, esse argumento vai receber o valor da última imagem que foi exibida.Para que ela quando o sorteio de qual imagem será exibida for finalizado, ele não mostre a mesma que ja estava.*/ function aleatório(qtd:Number,ultima:Number,anterior:Number){	//A variável proxima, vai receber o resultado do sorteio. Usando o método estático da classe Math o random multiplicando pelo argumento qtd.	//E arredondo o valor com o outro método também estático da classe Math chamado round. Que arredonda o valor para o número inteiro mais próximo	var proxima:Number = Math.round(Math.random()*qtd);	//A condicional if abaixo verifica, se a variável proxima é igual a ultima, caso a condição seja verdadeira ela executa a função aleatoria novamente, para buscar um novo valor	if(proxima == ultima){		//Executando a função aleatório, para até que a variável proxima seja diferente da ultima		aleatório(qtd,ultima);	//O else abaixo quer dizer que a variável, proxima é diferente da ultima, por tanto execute a condição carregar passando como argumento a variável proxima, sendo assim uma imagem difente será carregada.	}else{		//Executando a função carregar e passando a variável proxima como argumento		carregar(proxima);	};};//Instanciando um objeto da classe MovieClipLoader que vamos usar para carregar as imagens.var foto_mcl = new MovieClipLoader();//Criando a função carregar, que será responsável por receber o número que será usado como indice do array banners, para saber qual imagem deve ser carregada. E enviar para o sharedObject.Para que essa imagem não se repita.function carregar(id:Number){	//Use o método loadClip da classe MovieClipLoader, passando a url da imagem no primeiro argumento, e o movieclip, onde será carregada a imagem no segundo argumento do método	foto_mcl.loadClip(banners[id],carregue);	//Exibindo o número do banner que está sendo exibido.	info_txt.text ="Banner carregado: " + parseInt(id+1)	//Eviando para a variável última do sharedObject, o número correspondente da imagem que foi exibida.	arquivo.data.ultima = id;	arquivo.data.anterior = id;		//Enviando para o sharedObject as informações com o método send	arquivo.flush();};//Execute a função aleatório, passando como primeiro argumento, o valor da propriedade length do array de banners menos 1.// E o valor da variável ultima do sharedObjectaleatório(banners.length - 1, arquivo.data.ultima);//Defina o evento clickHandler do componente button sortear. Esse evento é executado, quando o componente é clicadosortear.clickHandler = function(){//Execute a função aleatório, passando como primeiro argumento, o valor da propriedade length do array de banners menos 1.// E o valor da variável ultima do sharedObject	aleatório(banners.length - 1, arquivo.data.ultima);};

 

tenho o link do banner online

 

 

Link

Compartilhar este post


Link para o post
Compartilhar em outros sites

Uma vez postaram aqui o codigo e não lembro que foi, dá pra melhorar bastante o codigo, leia os cometários na actions:

 

 

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

 

loadMovie("images/img1.jpg", carrega_mc);//carrega a 1ª img de cara em um mc vazio estaciado de carrega_mc

fotosArray = new Array("images/img1.jpg", "images/img2.jpg", "images/img3.jpg");//das imagens

linksArray = new Array("http://www.globo.com.br", "http://www.uol.com.br", "http://www.terra.com.br");//dos links

i = 1;//se colocar 0 irá repetir o load da 1ª imagm de novo

function fotosRotativas() {

clearInterval(intervalo);//coloquei este clear pois estava somando o tempo de outra foto em uma troca

intervalo = setInterval(fotosRotativas, 5000);//a cada 5 segundos troca a imagem

loadMovie(fotosArray, carrega_mc);

trace(fotosArray);//vai aparecer no output a sequencia da imagens

i++;

if (i == fotosArray.length) {

i = 0;

}

}

/////Botões/////////crie os botões e estacie de menos, mais, um, dois e tres

menos.onPress = function() {

i++;

if (i == fotosArray.length) {

i = 0;

}

fotosRotativas();

};

mais.onPress = function() {

if (i<0) {

i++;

}

fotosRotativas();

};

//////////

um.onPress = function() {

i = 0;

loadMovie(fotosArray, carrega_mc);

fotosRotativas();

};

dois.onPress = function() {

i = 1;

loadMovie(fotosArray, carrega_mc);

fotosRotativas();

};

tres.onPress = function() {

i = 2;

loadMovie(fotosArray, carrega_mc);

fotosRotativas();

};

link_btn.onPress = function() {/////btn tranparente que servirá de link ESTÁ DANDO PAU, O ULTIMO ESTÁ INDO COMO 1º

//i++;

getURL(linksArray, "_blank");

};

//////////////////////////

intervalo = setInterval(fotosRotativas, 5000);//chama a função

 

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

 

Como falei, dá pra melhorar legal o codigo, que estiver disposta a ajudar, só responder aqui.

 

 

Abraços

Fabio

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.