rafinhaphp 0 Denunciar post Postado Maio 23, 2009 salve galera.... seguinte: to querendo listar todos os nodes de um XML pra um array, jah procurei no google, ma ta osso de encondrar.... algume pode me ajudar? Compartilhar este post Link para o post Compartilhar em outros sites
José Enésio 4 Denunciar post Postado Maio 23, 2009 Crie um arquivo XML de testes, carregue no Flash, e crie vários traces para estudar melhor a estrutura do arquivo XML dentro do Flash. Já sabe carregar o XML no Flash? Faça vários experimentos, os elementos que você mais vai utilizar são firstChild e childNodes, você também vai precisar de loops for para percorrer todos os elementos do XML e ir salvando em um array. Já fez algo? Poste aí para podermos lhe ajudar melhor. Compartilhar este post Link para o post Compartilhar em outros sites
rafinhaphp 0 Denunciar post Postado Maio 23, 2009 ó manu, eu fiz isso aqui... mas só carrega uma foto.. =/ //abre o XML System.useCodepage = true; var arquivo:XML = new XML(); arquivo.load("xml.xml"); arquivo.ignoreWhite = true; //Laço para listar tudo for(i = 0; i < 2;i++){ //gambiarra pra juntar foto + o numero "i" var foto = "foto" + i; arquivo.onLoad = function() { //carrega as fotos loadMovie(arquivo.firstChild.childNodes[i].attributes.imagem,foto); } } Compartilhar este post Link para o post Compartilhar em outros sites
rafinhaphp 0 Denunciar post Postado Maio 23, 2009 eu to tentando listar todas as fotos nos nodes do XML... mas com o laço nun vai... axo que tenho que listar pra dentro de um array(); antes né? mas ai que vem o problemas... eu ñ sei listar xml pro array();... ^^ Compartilhar este post Link para o post Compartilhar em outros sites
José Enésio 4 Denunciar post Postado Maio 23, 2009 Veja um exemplo para ler os dados: arrFotos = new Array(); for(x in arquivo.firstChild.childNodes) { arrFotos.push(arquivo.firstChild.childNodes[x].attributes.imagem); } Assim você vai ler uma foto. Não lembro agora se não tinha que colocar outro firstChild ali, porque lembro que o arquivo XML era meio xarope quando parseado no Flash, e quando você aplicava o firstChild não lembro agora se ele selecionava a tag root do XML ou acessava o arquivo XML em si, aí tinha que botar um firstChild para ele ler a tag root. Estou meio enferrujado então você precisa fazer alguns testes. Como está seu arquivo XML? Tentou fazer os traces como eu disse? Lembre-se de verificar os valores de arquivo.firstChild, arquivo.firstChild.firstChild, arquivo.firstChild.childNodes, etc... para saber onde está o que, como eu disse estou enferrujado então não sei de cor xP Vê aí chapa! Compartilhar este post Link para o post Compartilhar em outros sites
rafinhaphp 0 Denunciar post Postado Maio 24, 2009 manu....eu to testando aqui... jah tentei ditudo, só falta macumba! kkkkk sim testei oq você falow.... quando eu chamo só um no carrega normaL, mas quando tento chamar tudo nun rola... e esse script q você postou, u tentei usar aqui, mas ñ rolo, e eu ñ intendi muita coiza também! ( to iniciando com AS ainda ) xml.xml <?xml version="1.0" encoding="iso-8859-1"?> <galeria> <foto imagem="0.jpg" /> <foto imagem="1.jpg" /> <foto imagem="2.jpg" /> </galeria> Compartilhar este post Link para o post Compartilhar em outros sites
Thiago de Oliveira Cruz 21 Denunciar post Postado Maio 24, 2009 Para pegar isso ai é mole :) var xml:XML = new XML(); xml.ignoreWhite = true; xml.load("xml.xml"); var imagens:Array = new Array(); xml.onLoad = function(ok){ if(ok){ var total = xml.firstChild.childNodes.lenght. for(var i:Number = 0; i < total; i++){ imagens[i] = xml.firstChild.childNodes[i].imagem; trace(imagens[i]); } }else { trace("deu erro ao carregar o xml"); } Abraços Compartilhar este post Link para o post Compartilhar em outros sites
rafinhaphp 0 Denunciar post Postado Maio 25, 2009 ahh legaL.... esse "lenght" pega a quantidade de nodes? ou nadavê? mas assim, to meio perdido aqui..porq ainda estou aprendendo actionscript... e na verdade ñ rolo... eu coloquei um ";" na linha 8 que tava errado... mas ñ funcionou, e nen deu aviso de erro... =/ eu suspeito que seja esses "ok" que eu tenho que subistituir por alguma coiza né?rs Compartilhar este post Link para o post Compartilhar em outros sites
Thiago de Oliveira Cruz 21 Denunciar post Postado Maio 25, 2009 Não o ok é só um valor bolean acusando true tem nada a ver com nada... você pode colocar qualquer coisa ali Normal eu troca . por ; e não é obrigatorio ; no flash você pode deixar sem nada que não vai dar nenhum problema. var xml:XML = new XML(); xml.ignoreWhite = true; xml.load("xml.xml"); var imagens:Array = new Array(); xml.onLoad = function(ok) { if (ok) { var total = xml.firstChild.childNodes.length; for (var i:Number = 0; i < total; i++) { imagens[i] = xml.firstChild.childNodes[i].imagens; trace(imagens[i]); } }else { trace("error"); } } E meu length tava errado ;) ta escrito lenght no escrito acima :) Testa esse ai... E sugiro que quando alguem mandar código assim como estou fazendo... não copie e cole... Veja como foi feito e tente fazer igual... Pois as vezes a pessoa pode ter digitado diretamente aqui... como foi no meu caso... ai podem ocorrer erros de digitação... troca de letras etc. causando assim o erro. E lembrando que o código acima foi criado com base no xml que você mostrou... Então se seu XML não esta como você mostrou deve adaptar os códigos. Abraços e bons estudos Compartilhar este post Link para o post Compartilhar em outros sites
rafinhaphp 0 Denunciar post Postado Maio 25, 2009 aheeeeeeeeeeeeeeeee agora "foi" na verdade tava errado ainda na linha: imagens[i] = xml.firstChild.childNodes[i].imagens; ai eu coloquei um attributes e foi! imagens[i] = xml.firstChild.childNodes[i].attributes.imagem; vo dar uma estudada legaL nesse script aqui pra entender bem... manu, sobre os ";"... esses dias eu tava vendo uma video aula, de um "baxinho" que tava fz uma galeria de fotos com AS e XML... e ele ñ colocava os ";" axei meio estranho porq no PHP tem que ficar colocando ";"... bom saber disso, mas seila, é melhor colocar sempre né? mas valew manin. esse script me ajudou muito! agora só tenho que duplicar os MC, pegar tamanho pra centralizar a img, mas isso é uma outras história! rsrs Compartilhar este post Link para o post Compartilhar em outros sites
rafinhaphp 0 Denunciar post Postado Maio 26, 2009 opa... manu, me ajuda em mais uma duvida aqui, acredito ser coiza simples... bom, jah estou carregando as imagens do XML, ta tudo OK, mas eu colokei um onPress em cada imagem carregada, mas ele ñ funciona.... ta ai o script completo: var xml:XML = new XML(); xml.ignoreWhite = true; xml.load("xml.xml"); var imagens:Array = new Array(); xml.onLoad = function(ok) { // pega o numero de NODES que tem no XML var total = xml.firstChild.childNodes.length; for (var i:Number = 0; i < total; i++) { //lista os NODES no array imagens[i] = xml.firstChild.childNodes[i].attributes.imagem; // cria a variavel que vai carregar a img var carrega:MovieClipLoader = new MovieClipLoader() //carrega as fotos carrega.loadClip(imagens[i],"foto" + i); foto + i.onPress = function(){ trace("cliquei"); } } } Compartilhar este post Link para o post Compartilhar em outros sites
Thiago de Oliveira Cruz 21 Denunciar post Postado Maio 26, 2009 seu erro é que o que você ta fazendo não existe foto + i.onPress = function(){ <------------- impossivel de fazer foto.onPress = function(){ <------------------- metodo correto de se fazer! Para que você consiga colocar um botão em um mc Coloque depois da função onLoadInit() Bom aqui vai um exemplo com base na sua função acima.. var xml:XML = new XML(); xml.ignoreWhite = true; xml.load("xml.xml"); //Crie o objeto ouvinte de função mais conhecido como listener var listener:Object = new Object(); //Outra regra variaveis que devem ser globais são declarada fora de funções //Por isso declaro aqui a variavel do MovieClipLoader(); var carrega:MovieClipLoader = new MovieClipLoader(); //Adiciono o listener a função para que ao carregar o ouvinte saiba disso e chame a minha função carrega.addListener(listener); //Preciso agora criar um movieclip que vai ser carregado var mc:MovieClip = new MovieClip(); //Crio o movieclip que vai ser duplicado var duplicado:MovieClip = duplicar(); //Crio minha função que vai duplicar um movieclip function duplicar(){ var duplicado:MovieClip = this.createEmptyMovieClip("duplicado", this.getNextHighestDepth()); return duplicado; } //Cria-se a array que vai receber as imagens var imagens:Array = new Array(); xml.onLoad = function(ok) { // pega o numero de NODES que tem no XML var total = xml.firstChild.childNodes.length; for (var i:Number = 0; i < total; i++) { //lista os NODES no array imagens[i] = xml.firstChild.childNodes[i].attributes.imagem; /* *Aqui se eu quiser vou setar a posição x e y que deve ter meu movieclip duplicado *newY += 40; *newX = 0; *Chamo agora o duplicateMovie() para duplicar meu movieclip */ mc = duplicado.duplicateMovieClip("clip-" + i, i/*, {_y:newY, _x:newX}*/); //carrega as fotos carrega.loadClip(imagens[i],mc); } } //Aqui vou criar uma função que diz, ao iniciar ele faz o que eu pelo. listener.onLoadInit = function(mc:MovieClip){ mc.onPress = function(){ gotoAndPlay(4);// <------ apenas um exemplo } } Mais explicado que isso só 2 disso... Abraços Compartilhar este post Link para o post Compartilhar em outros sites
rafinhaphp 0 Denunciar post Postado Maio 26, 2009 ausausausa... verdade manu, "Mais explicado que isso só 2 disso..." valew... ta dando pra entender! só mais uma coizunha( vai quere me matar! rs ) esse script esta carregando só uma imagem! eu dei um _alpha pra ver se ñ estava por traz, mas ñ estava ñ.. ta carregando só a 1° foto... mas o curiozo é que quando eu clico nela, e vai pro frame (5), por exemplo, e quando volta carrega a 2°, ai eu clico denovo e quando volta carrega a proxima.... ai eu dei um for pra execultar meu script varias vezes, mas ñ funciona! do geito que você escreveu, é pra carregar uma foto por vez mesmo? Compartilhar este post Link para o post Compartilhar em outros sites
Thiago de Oliveira Cruz 21 Denunciar post Postado Maio 26, 2009 Sim do jeito que ta feito é para carregar 1 foto por vez...... O correto é pegar todo o xml de uma vez só com um for... E quando acabar... For(bla bla){ } <--- acabou colocar uma função para carregar tipo init(); Ai você quando der onLoadInit = function() você coloca um contador somando lá e assim vai... e manda carregar o init() novamente e tals. Assim por exemplo: var xml:XML = new XML(); xml.ignoreWhite = true; xml.load("xml.xml"); //Crie o objeto ouvinte de função mais conhecido como listener var listener:Object = new Object(); //Outra regra variaveis que devem ser globais são declarada fora de funções //Por isso declaro aqui a variavel do MovieClipLoader(); var carrega:MovieClipLoader = new MovieClipLoader(); //Adiciono o listener a função para que ao carregar o ouvinte saiba disso e chame a minha função carrega.addListener(listener); //Preciso agora criar um movieclip que vai ser carregado var mc:MovieClip = new MovieClip(); //Crio o movieclip que vai ser duplicado var duplicado:MovieClip = duplicar(); //Inicializo um contador var cont:Number = 0; //Crio minha função que vai duplicar um movieclip function duplicar(){ var duplicado:MovieClip = this.createEmptyMovieClip("duplicado", this.getNextHighestDepth()); return duplicado; } //Cria-se a array que vai receber as imagens var imagens:Array = new Array(); xml.onLoad = function(ok) { // pega o numero de NODES que tem no XML var total = xml.firstChild.childNodes.length; for (var i:Number = 0; i < total; i++) { //lista os NODES no array imagens[i] = xml.firstChild.childNodes[i].attributes.imagem; } init(); } function init(){ /* *Aqui se eu quiser vou setar a posição x e y que deve ter meu movieclip duplicado *newY += 40; *newX = 0; *Chamo agora o duplicateMovie() para duplicar meu movieclip */ mc = duplicado.duplicateMovieClip("clip-" + i, i/*, {_y:newY, _x:newX}*/); //carrega as fotos carrega.loadClip(imagens[cont],mc); } //Aqui vou criar uma função que diz, ao iniciar ele faz o que eu pelo. listener.onLoadInit = function(mc:MovieClip){ mc.onPress = function(){ gotoAndPlay(4);// <------ apenas um exemplo } cont++; init(); } Se tu tivesse lido meu tutorial... lá na parte de artigos e tutoriais... ja tinha feito isso ai ;) Abraços Compartilhar este post Link para o post Compartilhar em outros sites
rafinhaphp 0 Denunciar post Postado Maio 26, 2009 powwwwwwww manu.... porq você ñ falou antes! rsrsrs to vendo seu tutorial aqui, é exxxxxatamente oque eu quero! desculpa o encomodo ai e valew! weeeeeeeee, consegui! rsrsrs Compartilhar este post Link para o post Compartilhar em outros sites