Ir para conteúdo

POWERED BY:

Arquivado

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

JAIMESKT

Lista com xml e url

Recommended Posts

pessoal, boa tarde,

primeiramente agradeço a todos pelas ajudas anteriores !

 

é seguinte:

 

tenho tipo uma galeria de imagens, que vai ser scroll verticalmente,

com conteudos caregados por um xml que esta assim:

 

arquivo.xml

 

<?xml version="1.0" encoding="utf-8"?>
<galeria>
<foto imagem="images/1.jpg" url="http://www.google.com.br"/>
</galeria>

ai tenhu meu AS:

 

System.useCodepage = true;
var arquivo:XML = new XML();
arquivo.load("arquivo.xml");
arquivo.ignoreWhite = true;
var tamanho:Number = 0
var i:Number = 0
arquivo.onLoad = function() {
	clipe.loadMovie(this.childNodes[i].childNodes[i].attributes.imagem);
	botao.onRelease = function  () { 
	getURL(this.childNodes[i].childNodes[i].attributes.links, _blank, "POST");

}

}

e tenho um botão invisível encima da imagem no palco,

que quando eu clicar nele quero buscar o endereço que está no XML.

 

ai eu tava pensando em fazer assim,

 

ter um movieClip,como mascara, e dentro dele ter todos os arquivos do XML,

 

adicionados na vertical tipo assim:

 

item1

item2

item3

--------

ai eu iria usar um componente de scroll no MovieClip mascara pra dar rolagem pro próximos items,

 

consegui fazer isso em as3, mais em as2 não tenho a mínima idéia de como fazer, e preciso em as2 pois

vou implementar em um site que já está pronto, tentei até utilizar a mesma abordagem que fiz no as3, mas não rolou

pois não da pra usar int nem uint, e mias algumas coisas,

 

EM AS3:

//Variaveis
var dadosRequest:URLRequest = new URLRequest ()
var dadosLoader:URLLoader = new URLLoader ()
var dadosXML:XML
var tamanho:uint
//Eventos
dadosLoader.addEventListener(Event.COMPLETE, carregou)
function carregou (e:Event) {
		dadosXML = new XML (	dadosLoader.data )
		tamanho = dadosXML.*.length()
		for (var i:uint = 0; i < tamanho; i++) {
			var copia:Caixa = new Caixa ()
			this.addChild(copia)
			with(copia){
				x= stage.stageWidth/2
				y = 10 + (70 * i)
				botao.endereco = dadosXML.*[i].@url//endereco e botao e de um classe minha
				texto_txt.text = dadosXML.*[i].@imagem
				texto_txt.mouseEnabled = false
				}
}

}

//Inicialização
dadosRequest.url = "sites.xml"
dadosLoader.load(dadosRequest);
ai queria que vcs me ajudasse só na aplicação de um for(){} que duplique o movieClip, clipe e coloque na sequencia na vertical,

pois estou tendo um pouco de dificuldade com isso,

 

 

 

valew,

abraços

 

consegui colocar a imagens no palco mais ele carrega uam por cima da outra

isso dentro do for

alguem sabe me dizer como posso fazer para min direcionar pra onde a imagem deve carregar?

 

usei esse AS

System.useCodepage = true;
var meuXML:XML = new XML();
meuXML.load("arquivo.xml");
meuXML.ignoreWhite = true;



meuXML.onLoad = function() {
	_root.minhasImagens = meuXML.firstChild.childNodes
	_root.total = minhasImagens.length
	for (var i:Number = 0;i<total; i++) {	
	_root.loadMovie (this.childNodes[0].childNodes[i].attributes.imagem)



}


}

 

agora não sei se está carregando os 5 um emcima do outro, ou se está carregando só o quinto?

Compartilhar este post


Link para o post
Compartilhar em outros sites

assim ta fazendo estilo o como estava,

 

tipo, eu quero um for, estilo aquele do código as3, que resgate o Length do XML

e exiba eles em seqüência verticalmente, dentro de um movie clip, pra depois eu usar uma

mascara com um scroll, ou um botao para passar as fotos,

 

ai eu to com essa dificuldade ai pra fazer esse for, ai queria ajuda com isso,

 

porque até estou procurando mais não acho ;/

 

valew ae !

Compartilhar este post


Link para o post
Compartilhar em outros sites

fiz outra !

so que ainda nao estou conseguindo exibir os itens um em seguida do outro.

me ajudem Imagem Postada

// incluir a classe tween para aplicarmos o efeito alide no MCimport mx.transitions.*import mx.transitions.easing.*i=0; // declara valor inicial da variavel igual a 0System.useCodepage = true; // habilita acentosfunction carrega() { // cria a função para carregar	clipe.loadMovie(arquivo.childNodes[0].childNodes[i].attributes.imagem); // carrega a imagem	legenda.text = arquivo.childNodes[0].childNodes[i].attributes.legenda; // carrega a legenda}var arquivo:XML = new XML(); // declara a variavel para ler o XMLarquivo.load("arquivo.xml"); // lê o arquivo.xmlarquivo.ignoreWhite = true; // ignora espaços em brancos no xmlarquivo.onLoad = function() {	largura = arquivo.childNodes[0].childNodes[i].attributes.largura; // largura do arquivo	altura = arquivo.childNodes[0].childNodes[i].attributes.altura; // altura do arquivo	total = arquivo.childNodes[i].childNodes.length; // pegar quantas fotos tem	alinhar();	carrega();}avancar.onRelease = function() { // ao clicar no avançar...	if(i == total-1) { // ...se já estiver na última foto...		i=0; // volta pra primeira		var acs:Tween = new Tween (clipe,"_y",Strong.easeOut,100,40,2,true);			}	else { // senão...		i++; // vai para a próxima				var acss:Tween = new Tween (clipe,"_y",Strong.easeOut,100,40,2,true);	}	carrega(); // carrega a foto	alinhar(); // alinha a foto no meio}voltar.onRelease = function() { // ao clicar no botão voltar...	if(i == 0) { // se estiver na primeira foto...		i=total-1;//... quando clicar pra voltar, vai pra última				var acsas:Tween = new Tween (clipe,"_y",Strong.easeOut,-100,40,2,true);	}	else { // senão...			var ac21s:Tween = new Tween (clipe,"_y",Strong.easeOut,-100,40,2,true);		i--; // ... volta uma foto	}	carrega(); // carrega a foto	alinhar(); // alinha a foto no meio}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Primeiramente mude isso:

clipe.loadMovie(arquivo.childNodes[0].childNodes.attributes.imagem); // carrega a imagem

 

Tire esse loadMovie e use MovieClipLoader

Ai depois você vai fazer uma função que vai pegar a altura e a largura do mc, e vai fazer um código pra ir adicionando ao x a largura da imagem para a proxima... e se o X for maior que o palco ele joga a imagem pra baixo... e zera o x fazendo todo o processo novamente.

 

Não é complicado Imagem Postada

É algo +/- assim:

var newX:Number = 0;var newY:Number = 0;function verifica(mc:MovieClip) { mc._x = newX; mc._y = newY; newX = newX + mc._width + mc._x; if(newX > Stage.width) { 	newX = 0;	newY += 20; }}
Basicamente é isso ai ai você tem que mandar o MC que você quer posicionar para a função...

Mas lembre-se para pegar o width de um MC você precisa usar a função onloadinit da classe MovieClipLoader.

 

Abraços

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.