Ir para conteúdo

POWERED BY:

Arquivado

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

lampiao_muléstia

Flash + XML = Não Consigo programar uma ação se o valor do nó for null

Recommended Posts

Olá Galera,

A parada é a seguinte:

 

Tenho um arquivo SWF que servirá como um slideshow de Logomarcas, essas logomarcas são cotas de patrocínio de um evento. Temos Cotas do Tipo Ouro, prata e Bronze. Para cada tipo de cota, a logomarca deve ser carregada em um ALVO específico, ou seja, dentro do SWF temos 3 Alvos um para tipo cada cota. Existe apenas um arquivo XML contendo as informações das logomarcas como, ID, URL para que possamos carregar dentro dos alvos. Bom, depois da explicação meu problema é o seguinte:

 

Pode ocorrer que eu só tenha Cotas tipo Ouro ou Prata e nenhuma Bronze. Neste caso, quando meu actscript for processar os nós em meu arquivo XML com a função caminhabronze(); o SWF TRAVA, O PC TRAVA, O navegador Trava, resumindo tudo trava. Pois ocorre que ele nao acha condição para sair do looping.

 

no meu SWF tem a seguinte ação no primeiro quadro

//CARREGANDO ARQUIVO XML EXTERNO:
var publi:XML = new XML();
publi.load("patrocinadores/patrocinadores.xml");
preloader(publi);
publi.ignoreWhite = true;
varidd = 0;

//FUNÇÃO PRELOADER ARQUIVO EXTERNO
function preloader(obj){
	carregando._alpha=100;
	porc._visible = true;
	onEnterFrame = function(){
	bcarregados = obj.getBytesLoaded();
	btotal = obj.getBytesTotal();
	bPct = Math.floor((bcarregados/btotal)*100);
	carregando._alpha = 100;
	porc.text = bPct;
		if(bcarregados == btotal){
			carregando._alpha = 0;
			porc._visible = false;
			delete onEnterFrame;
		}
	}
}

//ONLOAD EXECUTA QUANDO O ARQUIVO TERMINA DE SER CARREGADO TOTALMENTE.
publi.onLoad = function(){
	caminhaouro();
	setInterval(caminhaouro,5000);
	caminhaprata();
	setInterval(caminhaprata,4000);	
	caminhabronze();
	setInterval(caminhabronze,3000);	
}

//DECLARAÇÃO DE VARIÁVEL GLOBAL CONTADORA
var i = 0;
var j = 0;
var k = 0;


//CAMINHAOURO
function caminhaouro(){	

	nodeouro = publi.firstChild;
	cnouro = nodeouro.childNodes[i];
	
	if(cnouro.attributes.id_cta==1){
		alvoouro.loadMovie("patrocinadores/storedImages/"+cnouro.attributes.urll);
		preloader(alvoouro);
		i++;
		cnouro = nodeouro.childNodes[i];
	}
	
	else{
		while((cnouro.attributes.id_cta <> 1)and(i<=15)){
			
			if(cnouro.attributes.id_cta == undefined){
				i=0;
				cnouro=nodeouro.childNodes[i];
			}else{
				i++;
				cnouro=nodeouro.childNodes[i];
			}
		}
		alvoouro.loadMovie("patrocinadores/storedImages/"+cnouro.attributes.urll);
		preloader(alvoouro);
		i++;
		cnouro=nodeouro.childNodes[i];
	}
}
//CAMINHAPRATA
function caminhaprata(){	

	nodeprata = publi.firstChild;
	cnprata = nodeprata.childNodes[j];
	
	if(cnprata.attributes.id_cta == 2){
		alvoprata.loadMovie("patrocinadores/storedImages/"+cnprata.attributes.urll);
		preloader(alvoprata);
		j++;
		cnprata = nodeprata.childNodes[j];
	}
	else{
		while((cnprata.attributes.id_cta <> 2)and(j<=15)){
			
			if(cnprata.attributes.id_cta == undefined){
				j=0;
				cnprata=nodeprata.childNodes[j];
			}else{
				j++;
				cnprata=nodeprata.childNodes[j];
			}
		}
		alvoprata.loadMovie("patrocinadores/storedImages/"+cnprata.attributes.urll);
		preloader(alvoprata);
		j++;
		cnprata=nodeprata.childNodes[j];
	}
}

//CAMINHA BRONZE
function caminhabronze(){

	nodebronze = publi.firstChild;
	cnbronze = nodebronze.childNodes[k];
	
	if(cnbronze.attributes.id_cta == 3){
		alvobronze.loadMovie("patrocinadores/storedImages/"+cnbronze.attributes.urll);
		preloader(alvobronze);
		k++;
		cnbronze = nodebronze.childNodes[k];
	}	
	else{
		while((cnbronze.attributes.id_cta <> 3)and(k<=15)){
			
			if(cnbronze.attributes.id_cta == undefined){
				k=0;
				cnbronze=nodebronze.childNodes[k];
			}else{
				k++;
				cnbronze=nodebronze.childNodes[k];
			}
		}
		alvobronze.loadMovie("patrocinadores/storedImages/"+cnbronze.attributes.urll);
		preloader(alvobronze);
		k++;
		cnbronze=nodebronze.childNodes[k];
	}
}

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.