Ir para conteúdo

POWERED BY:

Arquivado

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

André - Editor

setTimeout aguardando um load. Como fazer?

Recommended Posts

Então galera, o esquema desse swf é o seguinte:

 

Ele é um SWF PAI que carrega 6 SWF filhos, porém um de cada vez, ele remove o anterior e adiciona o novo...

 

Acontece que eu tenho o seguinte problema, o contador de tempo para remover um e adicionar outro automaticamente, ocorre de 10 em 10 segundos... Massss ele inclui o tempo do preload... ou seja, assim que manda carregar o objeto ele comeca a contar os 10 segundos... se demorar mais do que dez segundos para carregar (por exemplo em conexoes mais lentas) ele ja troca pro seguinte...

 

Quero saber como requisitar que ele soh dê start no timer de 10 segundos DEPOIS que já estiver carregado o atual swf.

 

Obrigado desde já galera, segue o código do SWF pai.

 

 

stop();

import flash.events.MouseEvent;
import flash.events.Event;

var contador:uint = 1;
var varMcAtual:String = 'http://www.superfones.com.br/imagens/produtos/banners/home/slide0' + contador + '.swf';
var timerSlide:uint;
var marcador:Boolean = true;

// cria uma instância do Loader
var carregador:Loader = new Loader();

//inicia o slide
mcBotoes.mcBt01.alpha = 1;
mcBotoes.mcBt02.alpha = 0;
mcBotoes.mcBt03.alpha = 0;
mcBotoes.mcBt04.alpha = 0;
mcBotoes.mcBt05.alpha = 0;
mcBotoes.mcBt06.alpha = 0;
chama_movie(varMcAtual);

//adiciona os listeners nos botões
bt01.addEventListener(MouseEvent.CLICK, onBt01Click);
bt02.addEventListener(MouseEvent.CLICK, onBt02Click);
bt03.addEventListener(MouseEvent.CLICK, onBt03Click);
bt04.addEventListener(MouseEvent.CLICK, onBt04Click);
bt05.addEventListener(MouseEvent.CLICK, onBt05Click);
bt06.addEventListener(MouseEvent.CLICK, onBt06Click);

function timer(){
	timerSlide = setTimeout(function(){
			   remove_movie();
			   },10000);
}

function chama_movie(name:String){
	clearTimeout(timerSlide);
	// armazena na variável “arquivo” o nome do swf externo a ser carregado
	var arquivo:String = name;
	// cria uma instância do URLRequest, que carregará o swf armazenado na variável “arquivo”
	var requisicao:URLRequest = new URLRequest(arquivo);;
	// Carrega o swf solicitado
	carregador.load(requisicao);
	// Inclui o swf carregado no Stage
	this.mcLoader.addChild(carregador);
	carregador.x = 0;
	carregador.y = 0;
	//controla os marcadores dos botões de cada slide
	trocaMarca();
	timer();
}

function remove_movie(){
	if (contador <= 5){ //sempre colocar neste valor o número total de slides - 1
		contador++
		varMcAtual = 'http://www.superfones.com.br/imagens/produtos/banners/home/slide0'+contador+'.swf';
	}else{
		contador = 1;
		varMcAtual = 'http://www.superfones.com.br/imagens/produtos/banners/home/slide0'+contador+'.swf';
	}
	chama_movie(varMcAtual);
}

function trocaMarca(){
	//controla os marcadores dos botões de cada slide
	if (contador == 1){
		mcBotoes.mcBt01.alpha = 1;
		mcBotoes.mcBt02.alpha = 0;
		mcBotoes.mcBt03.alpha = 0;
		mcBotoes.mcBt04.alpha = 0;
		mcBotoes.mcBt05.alpha = 0;
		mcBotoes.mcBt06.alpha = 0;
	}
	if (contador == 2){
		mcBotoes.mcBt01.alpha = 0;
		mcBotoes.mcBt02.alpha = 1;
		mcBotoes.mcBt03.alpha = 0;
		mcBotoes.mcBt04.alpha = 0;
		mcBotoes.mcBt05.alpha = 0;
		mcBotoes.mcBt06.alpha = 0;
	}
	if (contador == 3){
		mcBotoes.mcBt01.alpha = 0;
		mcBotoes.mcBt02.alpha = 0;
		mcBotoes.mcBt03.alpha = 1;
		mcBotoes.mcBt04.alpha = 0;
		mcBotoes.mcBt05.alpha = 0;
		mcBotoes.mcBt06.alpha = 0;
	}
	if (contador == 4){
		mcBotoes.mcBt01.alpha = 0;
		mcBotoes.mcBt02.alpha = 0;
		mcBotoes.mcBt03.alpha = 0;
		mcBotoes.mcBt04.alpha = 1;
		mcBotoes.mcBt05.alpha = 0;
		mcBotoes.mcBt06.alpha = 0;
	}
	if (contador == 5){
		mcBotoes.mcBt01.alpha = 0;
		mcBotoes.mcBt02.alpha = 0;
		mcBotoes.mcBt03.alpha = 0;
		mcBotoes.mcBt04.alpha = 0;
		mcBotoes.mcBt05.alpha = 1;
		mcBotoes.mcBt06.alpha = 0;
	}
	if (contador == 6){
		mcBotoes.mcBt01.alpha = 0;
		mcBotoes.mcBt02.alpha = 0;
		mcBotoes.mcBt03.alpha = 0;
		mcBotoes.mcBt04.alpha = 0;
		mcBotoes.mcBt05.alpha = 0;
		mcBotoes.mcBt06.alpha = 1;
	}
}

function onBt01Click(event:MouseEvent){
	chama_movie('http://www.superfones.com.br/imagens/produtos/banners/home/slide01.swf');
	contador = 1;
	trocaMarca();
}

function onBt02Click(event:MouseEvent){
	chama_movie('http://www.superfones.com.br/imagens/produtos/banners/home/slide02.swf');
	contador = 2;
	trocaMarca();
}

function onBt03Click(event:MouseEvent){
	chama_movie('http://www.superfones.com.br/imagens/produtos/banners/home/slide03.swf');
	contador = 3;
	trocaMarca();
}

function onBt04Click(event:MouseEvent){
	chama_movie('http://www.superfones.com.br/imagens/produtos/banners/home/slide04.swf');
	contador = 4;
	trocaMarca();
}

function onBt05Click(event:MouseEvent){
	chama_movie('http://www.superfones.com.br/imagens/produtos/banners/home/slide05.swf');
	contador = 5;
	trocaMarca();
}

function onBt06Click(event:MouseEvent){
	chama_movie('http://www.superfones.com.br/imagens/produtos/banners/home/slide06.swf');
	contador = 6;
	trocaMarca();
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Quando o preloader terminar(100%) você da start no time, eu prefiro usar a classe time. Outra coisa da uma otimizada nesse seu codigo, da pra usar um for ali no inicio para os botoes, para os listeners e usar o Stich case na parte das ações.

 

Abs

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.