Janelee 0 Denunciar post Postado Abril 27, 2009 Bom, estou com a seguinte duvida. Estou desenvolvendo um site de uma revista. Este site será atualizado pelo cliente, através de um administrador. Ela vai lá, cadastra as páginas da revista na categoria que ela deseja, gerando um xml. Essas páginas não tem uma quantidade definida, podendo ser em uma atualização 2 paginas e numa próxima, ter 10 páginas. Eu gostaria de saber como incluir de maneira correta as paginas no flash, pra que ele faça a transição das paginas e reconheça o número de páginas que existem na categoria. Este é o site, se quiserem ver como funciona (ele ainda nao está adaptado para o cliente atualizar). www.revistaom.com Compartilhar este post Link para o post Compartilhar em outros sites
Thiago de Oliveira Cruz 21 Denunciar post Postado Abril 27, 2009 Acrescente as páginas de forma duplicando movieclip... ou seja quanto + paginas mais clips duplicados com proxima e anterior... da uma lida em duplicateMovie(); Abraços Compartilhar este post Link para o post Compartilhar em outros sites
Janelee 0 Denunciar post Postado Abril 27, 2009 não compreendi exatamente :S Compartilhar este post Link para o post Compartilhar em outros sites
Thiago de Oliveira Cruz 21 Denunciar post Postado Abril 27, 2009 Quando se lê um arquivo XML Você vai ter vários dados formulados colodos dentro dele... Com esses dados você vai er um tamanho maximo de arquivo que vai ser usado pelo flash. por exemplo: xml.firstChild.length; <---------- com isso aqui você vai pegar quantas páginas vai ter... E assim vai poder construir um for... que vai ter como base minima esse valor, seja 10, sejam 1000. E ai dentro desse for você vai colocar um duplucateMovie() que vai criar o numero necessário de arquivos como páginas que vocÊ quer. Da uma olhada em como funciona o duplicateMovie que você vai entender. Abraços Compartilhar este post Link para o post Compartilhar em outros sites
Janelee 0 Denunciar post Postado Abril 28, 2009 Bom, tentei fazer sem sucesso. Este é o xml que é gerado. <?xml version="1.0" encoding="UTF-8" ?> <indice> <paginas> <folha>fotos/1.jpg</folha></paginas> <paginas> <folha>fotos/2.jpg</folha></paginas> <paginas> <folha>fotos/3.jpg</folha></paginas> </indice> eu consigo importar o xml caso nao utilize o for, então a partir daí não sei como proceder. codigo que inclui o xml no movie clip System.useCodepage = true; var arquivo:XML = new XML(); arquivo.load("bonequinha.xml"); arquivo.ignoreWhite = true; arquivo.onLoad = function() { //tamanho da imagem button._width = 100 button._height = 135 //importa as paginas button.loadMovie(this.firstChild.childNodes[0].childNodes[0].childNodes[0]); } Compartilhar este post Link para o post Compartilhar em outros sites
Thiago de Oliveira Cruz 21 Denunciar post Postado Abril 28, 2009 Bom então vamos lá Assim +/- por cima que deve ser feito seu código System.useCodepage = true;var xml:XML = new XML();var fotos:Array = new Array();var inic = 0;var mcl:MovieClipLoader = new MovieClipLoader();var alvo:MovieClip = new MovieClip();var listener:Object = new Object();mcl.addListener(listener);xml.load("fotos.xml");xml.ignoreWhite = true;xml.onLoad = function(ok) { if(ok){ var cn = xml.firstChild.childNodes for(var i:Number = 0; i < cn.length; i++){ fotos[i] = cn[i].firstChild.childNodes; } } else { trace("Erro no XML"); } mcl.loadClip(fotos[inic], alvo);}vai.onPress = function(){ inic++; mcl.loadClip(fotos[inic], alvo);}volta.onPress = function(){ inic--; mcl.loadClip(fotos[inic], alvo);}Com o XML que você passou a cima claro Ai no vai e volta você só tem que definir se maior que 0 não faz nada... se maior que total tbm não faz nada. Abraços Compartilhar este post Link para o post Compartilhar em outros sites
Janelee 0 Denunciar post Postado Abril 29, 2009 não consegui visualizar a página que deveria vir do xml :/ Compartilhar este post Link para o post Compartilhar em outros sites
Thiago de Oliveira Cruz 21 Denunciar post Postado Abril 29, 2009 Bom Janelee Eu segui o XML que você passou no código a cima Se seu XML não for aquele procure ver como funciona seu xml Utilizando do trace(xml.firstChild); Assim você vai poder ver o que tem e ir em diante para descobrir o caminho certo Abraços Compartilhar este post Link para o post Compartilhar em outros sites
Janelee 0 Denunciar post Postado Abril 29, 2009 é justamente esse o xml gerado. acabei de conferir <indice><paginas><folha>fotos/1.jpg</folha></paginas><paginas><folha>fotos/2.jpg</folha></paginas><paginas><folha>fotos/3.jpg</folha></paginas></indice> Compartilhar este post Link para o post Compartilhar em outros sites
Thiago de Oliveira Cruz 21 Denunciar post Postado Abril 29, 2009 Então vamos lá: <indice> <---------- xml.firstChild <paginas> <--------- xml.firstChild.childNodes[0] <folha>fotos/1.jpg</folha> <---------- xml.firstChild.childNodes[0].childNodes </paginas> <paginas> <--------- xml.firstChild.childNodes[1] <folha>fotos/2.jpg</folha> <---------- xml.firstChild.childNodes[1].childNodes </paginas> <paginas> <--------- xml.firstChild.childNodes[2] <folha>fotos/3.jpg</folha> <---------- xml.firstChild.childNodes[2].childNodes </paginas> </indice> Deu pra entender? Abraços Compartilhar este post Link para o post Compartilhar em outros sites
Janelee 0 Denunciar post Postado Abril 30, 2009 Eu consegui compreender a questão dos nós, mas não consegui utilizar. Se for mais fácil, eu disponibilizo o .fla e você pode me explicar onde eu posso estar errando. =D Compartilhar este post Link para o post Compartilhar em outros sites
Thiago de Oliveira Cruz 21 Denunciar post Postado Abril 30, 2009 Use o trace("erro aqui?") OU trace(xml.caminho) Para descobrir seu erro Em ultima instancia posta seu fla. Abraços Compartilhar este post Link para o post Compartilhar em outros sites
Janelee 0 Denunciar post Postado Maio 4, 2009 Fiz os testes com o trace e não encontrei Então, acho que o erro pode estar na comunicação com o .fla. Postei então ele abaixo om.fla Compartilhar este post Link para o post Compartilhar em outros sites
Janelee 0 Denunciar post Postado Maio 5, 2009 coloquei em uma nova aplicação, só com o código e o xml e não obtive o resultado. pode ter a ver com o xml ou é erro do código em AS mesmo? Compartilhar este post Link para o post Compartilhar em outros sites
Thiago de Oliveira Cruz 21 Denunciar post Postado Maio 5, 2009 Muda lá no código troca isso aqui: mcl.loadClip(fotos[inic], alvo); por isso aqui: mcl.loadClip(fotos[inic].toString(), alvo); Ele vai passar a ler as fotos abraços Compartilhar este post Link para o post Compartilhar em outros sites
Janelee 0 Denunciar post Postado Maio 6, 2009 Aeee, funcionou. o/ E só mais uma dúvida. Tem como, quando eu clicar na página ela aparecer em outro swf em tamanho maior? (porque eu diminui o tamanho real, pra se adaptar a pagina). Código que está até agora. System.useCodepage = true; var xml:XML = new XML(); var fotos:Array = new Array(); var inic = 0; var cont = -1; var mcl:MovieClipLoader = new MovieClipLoader(); //var alvo:MovieClip = new MovieClip(); var listener:Object = new Object(); mcl.addListener(listener); xml.load("bonequinha.xml"); xml.ignoreWhite = true; xml.onLoad = function(ok) { if(ok){ var cn = xml.firstChild.childNodes for(var i:Number = 0; i < cn.length; i++){ fotos[i] = cn[i].firstChild.childNodes; cont++; } } else { trace("Erro no XML"); } mcl.loadClip(fotos[inic].toString(), alvo); alvo._xscale = 34; alvo._yscale = 34; trace(inic); } vai.onPress = function(){ if (inic<cont){ inic++; } mcl.loadClip(fotos[inic].toString(), alvo); alvo._xscale = 34; alvo._yscale = 34; } volta.onPress = function(){ if (inic>0){ inic--; } mcl.loadClip(fotos[inic].toString(), alvo); alvo._xscale = 34; alvo._yscale = 34; } Compartilhar este post Link para o post Compartilhar em outros sites
Thiago de Oliveira Cruz 21 Denunciar post Postado Maio 6, 2009 Tem uai... você coloca um onPress na imagem para abrir um outro movieClip colocado na tela com scala 100 Abraços Compartilhar este post Link para o post Compartilhar em outros sites
Janelee 0 Denunciar post Postado Maio 6, 2009 ok. me confundi. hueheuheuhe! eu tentei fazer mais ou menos assim, e não deu certo. no MC eu coloquei o código on (release) { unloadMovieNum (4); //desabilita a pagina atual loadMovieNum ("zoom.swf",100); // chama o swf que carregará a imagem em tamanho real }Aí tudo certo, o swf apareceu certinho.mas não consegui carregar a pagina pra lá. :/ p.s: tentei fazer com a instância mas deu erro :x Compartilhar este post Link para o post Compartilhar em outros sites
Thiago de Oliveira Cruz 21 Denunciar post Postado Maio 6, 2009 Vamos lá com seu código heim System.useCodepage = true;var xml:XML = new XML();var fotos:Array = new Array();var inic = 0;var cont = -1;var mcl:MovieClipLoader = new MovieClipLoader();//var alvo:MovieClip = new MovieClip();var listener:Object = new Object();mcl.addListener(listener);xml.load("bonequinha.xml");xml.ignoreWhite = true;xml.onLoad = function(ok) { if(ok){ var cn = xml.firstChild.childNodes for(var i:Number = 0; i < cn.length; i++){ fotos[i] = cn[i].firstChild.childNodes; cont++; } } else { trace("Erro no XML"); } mcl.loadClip(fotos[inic].toString(), alvo); alvo._xscale = 34; alvo._yscale = 34; trace(inic); }vai.onPress = function(){ if (inic<cont){ inic++; } mcl.loadClip(fotos[inic].toString(), alvo); alvo._xscale = 34; // <------------ aqui você diminui o scale alvo._yscale = 34; // <------------ aqui você diminui o scale}volta.onPress = function(){ if (inic>0){ inic--; } mcl.loadClip(fotos[inic].toString(), alvo); alvo._xscale = 34; // <------------ aqui você diminui o scale alvo._yscale = 34; // <------------ aqui você diminui o scale}Ai se você for criar um botão para ficar grande var alvo2:MovieClip = _root.createEmptyMovieClip("alvo2", -10); //<----- crio um movie clip para abrir no palco do sitealvo.onPress = function(){ mcl.loadClip(fotos[inic].toString(), alvo2); alvo2._xscale = alvo2._yscale = 100; // <------ dou o tamanho que deve abrir a foto (100%);}Só adicionar essa linha de código ai no seu site Abraços Compartilhar este post Link para o post Compartilhar em outros sites
Janelee 0 Denunciar post Postado Maio 6, 2009 não aconteceu nada. ficou estatico. mas assim, eu escohi abrir no swf porque o tamanho original vai passar do tamanho do stage. então no outro swf tem uma mascara com uma barra de rolagem. se tu entrar em qualquer categoria do site da pra ver certinho como é :x Compartilhar este post Link para o post Compartilhar em outros sites