Ir para conteúdo

Arquivado

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

fabi0cerqueira

[Resolvido] Action 2.0 + XML ( Pequeno Problema )

Recommended Posts

Olá a Todos,

 

Estou com um problema quanto ao carregamento de um xml em act 2.0. Teria como me ajudar?

 

O aplicativo é um Banner que deverá puxar as informações da localização das imagens para que possam ser carregadas em um movie clip e as informações de link para tornar um outro movie clip que esta por cima do primeiro uma forma de getURL.

 

Ou seja eu tenho um banner que trará diferentes imagens e para cada imagem haverá um link especifico, sendo todas as informações trazidas de um xml.

 

Criei o act que segue anexo e ele esta fazendo tudo corretamente, menos a parte do link especifico, esta usando o primeiro link para todas as imagens.

 

 

Aguardo retorno, podendo ou não me ajudar! rsrs

 

 

***************************************************************************************************************

 

 

Codigo ACT 2.0

// Objeto XML e Mc que carrega o link conforme o CampoLink
var oXML:XML=new XML ;

// Ignorando espaços em branco
oXML.ignoreWhite=true;

// Evento onLoad
oXML.onLoad=function(){
 
 // Referência ao primeiro nó do documento.
 var node:XMLNode = this.firstChild;
 qtdTotal = node.childNodes.length;
 
 // funcao que carrega imagens
 function carrega(){
banner.loadMovie(banners[posicao]);
//link_mc.loadMovie(Campolink[posicao]);
 ++posicao;
 if (posicao == qtdTotal){
 posicao = 0;
 }
}


			
var banners=[];
// Loop para cada elemento dentro.
for (var i=0; i<qtdTotal; i++) {
	banners[i]=node.childNodes[i].childNodes[0].firstChild.nodeValue;
	var CampoArquivo:XMLNode=node.childNodes[i].childNodes[0].firstChild;
	var CampoEvento:XMLNode=node.childNodes[i].childNodes[1].firstChild;
	var Campolink:XMLNode=node.childNodes[i].childNodes[2].firstChild;
	
	
	if (Campolink!=null) {
		link_mc._visible=true;
		link_mc.onRelease = function(){ 
		link_mc.getURL(""+Campolink,"_blank");
		trace("Link Escolhido foi "+Campolink);
		}

	} else {
		link_mc._visible=false;
		trace("Não Exite Link!");
	} 

		// Mostra o valor de child na janela de saída.
		trace("Campo Arquivo: "+CampoArquivo);

		// Mostra o valor de child na janela de saída.
		trace("Campo Evento: "+CampoEvento);
		// Próximo Nó
		trace("Campo link: "+Campolink);
		// Nó Anterior
		// trace("Nó Anterior: " + child.previousSibling);
		//arrumando
		trace("----------------------\n");
	}
	posicao=0;
	setInterval(carrega,10000);
	trace("Esta na posicao "+posicao);
}
oXML.load("extranet/banner/banner.xml");

************************************************************************************************************

 

Codigo xml

<?xml version="1.0" encoding="utf-8"?>
<banners>
<banner>
<arquivo>img/4.jpg</arquivo>
<evento>2</evento>
<link>http-~~-//www.nba.com.br</link>
</banner>
<banner>
<arquivo>img/3.jpg</arquivo>
<evento></evento>
<link></link>
</banner>
<banner>
<arquivo>img/2.jpg</arquivo>
<evento>10</evento>
<link>http-~~-//www.paulovaladares.com.br/</link>
</banner>
<banner>
<arquivo>img/1.jpg</arquivo>
<evento></evento>
<link>http-~~-//www.brasil.com.br</link>
</banner>
</banners>

Compartilhar este post


Link para o post
Compartilhar em outros sites

testa fazer isso:

 

 

link_mc.url_img = Campolink
link_mc.onRelease = function(){ 
    link_mc.getURL(""+this.url_img,"_blank");
    trace("Link Escolhido foi "+this.url_img);
}

 

[]´s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ainda continua com o mesmo problema! Se for necessário disponho do .fla, é só me informar como enviar!

 

 

Segue abaixo como ficou o codigo após a alteração! Confirma para mim se foi exatamente isto que imaginou?

 

// Objeto XML e Mc que carrega o link conforme o CampoLink
var oXML:XML=new XML ;
link_mc._visible=false;

// Ignorando espaços em branco
oXML.ignoreWhite=true;

// Evento onload
oXML.onload=function(){
 
 // Referência ao primeiro nó do documento.
 var node:XMLNode = this.firstChild;
 qtdTotal = node.childNodes.length;
 
 // funcao que carrega imagens
 function carrega(){
banner.loadMovie(banners[posicao]);

 ++posicao;
 if (posicao == qtdTotal){
 posicao = 0;
 }
}


var banners=[];

// Loop para cada elemento dentro.
for (var i=0; i<qtdTotal; i++) {
	banners[i]=node.childNodes[i].childNodes[0].firstChild.nodeValue;
 
	var CampoArquivo:XMLNode=node.childNodes[i].childNodes[0].firstChild;
	var CampoEvento:XMLNode=node.childNodes[i].childNodes[1].firstChild;
	var Campolink:XMLNode=node.childNodes[i].childNodes[2].firstChild;

	// If que habilita o MC com o Link e carrega a o link conforme o CampoLink
	if (Campolink!=null) {
		link_mc._visible=true;		
 link_mc.url_img = Campolink;
 link_mc.onRelease = function(){ 
 link_mc.getURL(""+this.url_img,"_blank");
 trace("Link Escolhido foi "+this.url_img);
}
	} else {
		link_mc._visible=false;
		trace("Não Exite Link!");
	}

		// Mostra o valor de child na janela de saída.
		trace("Campo Arquivo: "+CampoArquivo);

		// Mostra o valor de child na janela de saída.
		trace("Campo Evento: "+CampoEvento);
		// Próximo Nó
		trace("Campo link: "+Campolink);
		// Nó Anterior
		// trace("Nó Anterior: " + child.previousSibling);
		//arrumando
		trace("----------------------\n");
	}
	posicao=0;
	setInterval(carrega,10000);
	trace("Esta na posicao "+posicao);
}
oXML.load("xml/banner.xml");

********************************************************************************

 

Veja como fica o output

 

Campo Arquivo: img/4.jpg

Campo Evento: 2

Campo link: http://www.nba.com.br

----------------------

 

Não Exite Link!

Campo Arquivo: img/3.jpg

Campo Evento: null

Campo link: null

----------------------

 

Campo Arquivo: img/2.jpg

Campo Evento: 10

Campo link: http://www.paulovaladares.com.br/

----------------------

 

Campo Arquivo: img/1.jpg

Campo Evento: null

Campo link: http://www.brasil.com.br

----------------------

 

Esta na posicao 0

Link Escolhido foi http://www.brasil.com.br

Link Escolhido foi http://www.brasil.com.br

Link Escolhido foi http://www.brasil.com.br

Link Escolhido foi http://www.brasil.com.br

Compartilhar este post


Link para o post
Compartilhar em outros sites

reparando melhor no código, deu pra ver que só tem um movieCLip de botão não é?

 

nesse caso, deixa assim

 

 

 

function carrega(){
        banner.loadMovie(banners[posicao]);
        link_mc.url_img = urls_banner[posicao];
        link_mc.onRelease = function(){ 
                getURL(""+this.url_img,"_blank");
                trace("Link Escolhido foi "+this.url_img);
        }

        ++posicao;
        if (posicao == qtdTotal){
                posicao = 0;
        }
}




var banners=[];
var urls_banner=[];

// Loop para cada elemento dentro.
for (var i=0; i<qtdTotal; i++) {
        banners[i]=node.childNodes[i].childNodes[0].firstChild.nodeValue;
        urls_banner =  node.childNodes[i].childNodes[2].firstChild.nodeValue;
        // resto do código

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pronto Fera, consegui!

 

A solução foi exatamente a segunda que me deu, no entanto coloquei uma pequena informação que faltava, talvez digitando na correria você deixou passar! Mas vai ai a resolução do problema!

 

 

**************************************************************************************************************

 // funcao que carrega imagens
 function carrega(){
banner.loadMovie(banners[posicao]);
link_mc.url_img = urls_banner[posicao];
 link_mc.onRelease = function(){ 
 getURL(""+this.url_img,"_blank");
 trace("Link Escolhido foi "+this.url_img);

		}


for (var i=0; i<qtdTotal; i++) {
	banners[i]=node.childNodes[i].childNodes[0].firstChild.nodeValue;
	/* A mudança que fiz foi aqui você tinha colocado urls_banner =node.childNodes[i]... faltou só o [i] rsrsrs, muito obrigado mesmo */
 urls_banner[i]=node.childNodes[i].childNodes[2].firstChild.nodeValue;

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.