JAIMESKT 0 Denunciar post Postado Julho 19, 2010 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
Thiago de Oliveira Cruz 21 Denunciar post Postado Julho 20, 2010 Faça por exemplo: var mc:MovieClip = _root.createEmptyMovieClip("mc", i, {_x: 30 * i}) mc.loadMovie (this.childNodes[0].childNodes[i].attributes.imagem) Abraços Compartilhar este post Link para o post Compartilhar em outros sites
JAIMESKT 0 Denunciar post Postado Julho 20, 2010 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
JAIMESKT 0 Denunciar post Postado Julho 21, 2010 fiz outra ! so que ainda nao estou conseguindo exibir os itens um em seguida do outro. me ajudem // 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
Thiago de Oliveira Cruz 21 Denunciar post Postado Julho 21, 2010 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 É 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