Ir para conteúdo

POWERED BY:

Arquivado

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

Andre Cocuroci

[Resolvido] banner randomico.

Recommended Posts

Olá, estou fazendo um banner randomico, está quase pronto, mas tenho algumas dúvidas:

 

1) no banner vai ter os thumbs das imagens. Esses thumbs vão ter a posição marcada ou não. Para marca-los eu preciso percorrer todos os thumbs e com isso efetuar as condições. Ao criar os thumbs eu jogo eles em um array e quando quero marcar um específico utilizo um for each para isso. Está dando certo, mas eu queria fazer isso sem precisar de uma variavel auxiliar como o array.

 

Uso assim o for each

for each(var s:Sprite in arrayThumbs) {
//aqui faço o que preciso.
}

Não tem como fazer isso? onde this pode ser o stage ou algum movieclip que contenha os thumbs.

for each(var s:Sprite in this) {
//aqui faço o que preciso.
}

2) Crie um movieclip que serve como preload da imagem maior. Esse preload aparece quando começa o carregamento e desaparece quando termina. Estou usando um loader e seus eventos como Event.INIT, Event.OPEN e ProgressEvent.Progress. Quando o arquivo não está em cache funciona que é uma bela, mas quando o arquivo está em cache o preload aparece por um segundo e desaparece quando a imagem é carregada. Tem como evitar isso? Exe:

 

var principal:Sprite = new Sprite();
var loader:Loader = new Loader();
var preload:preloadMovie = new preloadMovie(); //este item está na biblioteca.
var pos:int;

addChild(principal);
principal.addChild(loader);

preload.visible = false;
addChild(preload);

loader.contentLoaderInfo.addEventListener(Event.OPEN, loadingOpen);
loader.contentLoaderInfo.addEventListener(Event.INIT, loadingInit);
loader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, loading);

function loadingOpen(e:Event):void {
	preload.visible = true;
};

function loadingInit(e:Event):void {
	preload.visible = false;
};

function loading(e:ProgressEvent):void {
	trace("bytesLoaded=" + e.bytesLoaded + " bytesTotal=" + e.bytesTotal);

};

3) Quando clico parra carregar outra imagem a que estava antes some e fica vazio até que a nova seja carregada. Isso acontece pq estou mandando carregar no mesmo loader, como faço para que quando o usuário escolher a outra imagem, a anterior continue até que a nova sera carregada e dai a anterior saia?

 

Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

vamos por partes

 

 

 

1)uma maneira de fazer seria se esses thumbs estivessem dentro de um movieClip sem nada,

apenas eles, se for assim, você poderia percorrer todos os filhos desse mc

assim:

 

for(var i:int = 0; i < container.numChildren; i++){
	var img:Bitmap = container.getChildAt(i);
}

 

 

 

2) Ou você faz faz uma maneira de saber se a imagem já foi carregada(usando um array por exemplo, se não carregou ele seta uma posição para TRUE, se já carregou ele não mostra o pre-loader)

 

Ou você força para que a imagem sempre seja carregada(não acho uma boa não...), usando um numero aleatório no endereço:

 

loader.load("pasta/imagem.jpg?cache="+(Math.random()*99999))

 

 

3) ué, usa um Loader para cada uma então, :huh:

 

 

 

[]´s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eder, valeu as dicas. Consegui fazer as coisas que eu queria.

 

Sobre o item 3 o problema é se um dia eu tiver uma galeria com 120 imagens, vou ter 120 loader?

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.