Ir para conteúdo

POWERED BY:

Arquivado

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

Davoglio

XML + Flash

Recommended Posts

pessoal, to com mais problemas...preciso de um swf que puxe as imagens e algumas frases de um XML, porém, para cada imagem tem sua respectiva frase.... tipo aquele esqueminha de notícias do uol, é exatamente aquilo que eu preciso. se alguém puder me ajudar, ficarei grato.HELPA EEEEUUUUU

Compartilhar este post


Link para o post
Compartilhar em outros sites

estou ogrulhoso de mim mesmo agora kk... ta prontinho Davoglio.

Essa eu acho que pode ir pros tutoriais kk

_global.path = "http://server/folder/";var i:Number = 0;function goData() {	// cria o objeto xml	var xData:XML = new XML();	xData.ignoreWhite = true;	xData.load(_global.path + "data.xml");	xData.onLoad = function() {		// cria as variaveis de cada no do xml		nome = this.childNodes[0].childNodes[i].childNodes[0].firstChild;		dia = this.childNodes[0].childNodes[i].childNodes[1].firstChild;		texto = this.childNodes[0].childNodes[i].childNodes[2].firstChild;		image = this.childNodes[0].childNodes[i].childNodes[3].firstChild;		// aplica as variaveis de texto no campo 'info' e carrega a imagem no clip 'image'		info.htmlText = "<font color='#99cc00'>Materia: </font><font>" + nome + "</font><br><font color='#CC6600'>Data: </font><font>" + dia + "</font><br><font color='#99ccff'>Texto: </font><font>" + texto + "</p>";		// as imagens vao estar dentro do path e ainda dentro da pasta imagens		image.loadMovie(_global.path + "imagens/" + image);		// verifica se acabaram as noticias e se acabou elas voltam ao inicio		if ( i > this.childNodes.length ) {			i = 0;		} else {			i++;		}	}};/**/goData(); // executa a funcao goAgain = setInterval(goData,10000); // defina os segundos a ficar a noticia no ar sendo que voce tm que levar em considerecao o tempo de carregamento da foto.

Compartilhar este post


Link para o post
Compartilhar em outros sites

no caso pra link um endereco pra parecer junto com a img e talz. ai clica pra abri o edenreco noticia.html no caso, eu teria que criar um novo campo no xml .endereco. ai colocar o link no caso noticia.htmle na parte do flash como fica pra parecer ja como botaum esse link ? opaa de novo p.d dandu uma força =)vote p.d moderador kkkkkkkkopa animei aki com o ano de eleicoes

Compartilhar este post


Link para o post
Compartilhar em outros sites

voce pode definir por exemplo a foto para ser o botao ou criar um clip separado para ter essa funcao. no caso da foto deve-se add mais esse code baixo do "image.loadMovie(_global.path + "imagens/" + image);"

image.onRelease = function() {	 getURL(link,"BLANK")}
E criar a variavel link para o xml

link = this.childNodes[0].childNodes[i].childNodes[4].firstChild;

eeeeeeeeeeeeee... pronto.

:D

Compartilhar este post


Link para o post
Compartilhar em outros sites

p.d,Tenho uma dúvida sobre esta sua programação, eu fiz um teste e achei show de bola, porém se eu quizesse em vez de fazer esta mudança, desejasse que aparece a listagem por completa, como funcionaria? Desculpe a pergunta, é que eu não tenho muita noção de programação em Flash.Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

marinho.. tm duas formas que pode fazer ... tipo pode criar um campo de texto como no exemplo acima e nele colocar ao inves de info.htmlText = bla bla bla .. entao colocaria info.htmlText += bla bla bla .. esse sinal de soma faiz com que adicione mais valores do xml ... para isso acontecer certinho toda esse codigo deve estar dentro de um 'for' dentro do xData.onLoad, mais ou menos assim:

_global.path = "http://server/folder/";var i:Number = 0;function goData() {	// cria o objeto xml	var xData:XML = new XML();	xData.ignoreWhite = true;	xData.load(_global.path + "data.xml");	xData.onLoad = function() {		qnt = this.childNodes.length;		for ( i = 0; i < qnt; i++ ) {			// cria as variaveis de cada no do xml			nome = this.childNodes[0].childNodes[i].childNodes[0].firstChild;			dia = this.childNodes[0].childNodes[i].childNodes[1].firstChild;			texto = this.childNodes[0].childNodes[i].childNodes[2].firstChild;			image = this.childNodes[0].childNodes[i].childNodes[3].firstChild;			link = this.childNodes[0].childNodes[i].childNodes[4].firstChild;			// aplica as variaveis de texto no campo 'info' e carrega a imagem no clip 'image'			info.htmlText = "<font color='#99cc00'>Materia: </font><font>" + nome + "</font><br><font color='#CC6600'>Data: </font><font>" + dia + "</font><br><font color='#99ccff'>Texto: </font><font>" + texto + "<br><a href='"+ link +"'><img src='"+ _global.path + image +"'></a></p>";			// verifica se acabaram as noticias e se acabou elas voltam ao inicio		}	}};

Assim vai aparecer tudo dentro desse campo de texto dinamico, inclusive as imagens. Ou a forma mais legalzinha e mais complicada seria criar um movie clip q seria attachado dentro do seu arquivo usando o for do mesmo jeito. a unica diferenca eh que todos os campos de texto e o local da imagem ja estaria definidos entao voce pode ajustar e alinhar como quiser, essa eh a grande vantagem, ai voce trocaria a linha onde declara as variaveis dentro do dinamic text por attachMovie, ficando assim:

_global.path = "http://server/folder/";var i:Number = 0;function goData() {	// cria o objeto xml	var xData:XML = new XML();	xData.ignoreWhite = true;	xData.load(_global.path + "data.xml");	xData.onLoad = function() {		qnt = this.childNodes.length;		for ( i = 0; i < qnt; i++ ) {			// cria as variaveis de cada no do xml			nome = this.childNodes[0].childNodes[i].childNodes[0].firstChild;			dia = this.childNodes[0].childNodes[i].childNodes[1].firstChild;			texto = this.childNodes[0].childNodes[i].childNodes[2].firstChild;			image = this.childNodes[0].childNodes[i].childNodes[3].firstChild;			link = this.childNodes[0].childNodes[i].childNodes[4].firstChild;			// aplica as variaveis de texto no campo 'info' e carrega a imagem no clip 'image'			var atc:MovieClip = attachMovie(clipG, clipG+i);			with (atc) {				_x = ((atc._width)*i + 10);				_y = ((atc._height)*i + 10);			}			// verifica se acabaram as noticias e se acabou elas voltam ao inicio		}	}};

Tenta ae .. prefiro que use a segunda opcao ! eh a que da resultado mais agradável visualmente.

;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá p.d

 

Fui fazer o teste e apareceu o erro na seguinte linha

 

with (atc) {

 

mudei para

 

width (atc) {

 

mas ainda esta dando erro:

 

**Error** Scene=Scene 1, layer=Layer 1, frame=1:Line 19: Syntax error.

width (atc) {

 

Total ActionScript Errors: 1 Reported Errors: 1

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

troca todo o with entao por:

atc._x = ((atc._width)*i + 10);atc._y = ((atc._height)*i + 10);

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.