eronventer 2 Denunciar post Postado Fevereiro 4, 2009 Ae galerinha!!! Seguinte, preciso de um help para posicionar elementos duplicados de uma forma diferente.... São 31 objetos posicionados em 8 colunas, porém quero que a 1ª linha esteja posicionado diferente pq antes da duplicação dos objetos eu tenho o titulo da sessão... Exemplo: Compartilhar este post Link para o post Compartilhar em outros sites
gbs 0 Denunciar post Postado Fevereiro 4, 2009 :blink: simples! é só fazer ele pular o primeiro! :P a dúvida era essa ou você tem um código que duplica e posiciona os 31 objetos em 8 colunas e está com dúvidas em como fazer ele pular o primeiro e vai postar o código pra gente dar uma olhada e poder te ajudar? ^_^ Compartilhar este post Link para o post Compartilhar em outros sites
eronventer 2 Denunciar post Postado Fevereiro 4, 2009 Isso, preciso que ele pule o primeiro mesmo....mas não to raciocinando uma maneira de fazer... Segue o codigo atual que não faz pular o primeiro... function initGaleria() { for (thumb in this) { this[thumb].removeMovieClip(); } thumb._x = 0; thumb._y = 0; for (i=0; i<_root.quadros.length; i++) { thumb.duplicateMovieClip("btn"+i, i); this["btn"+i].id = _root.quadros[i].id; this["btn"+i].nome = _root.quadros[i].nome; this["btn"+i].tamanho = _root.quadros[i].tamanho; this["btn"+i].foto = _root.quadros[i].foto; this["btn"+i].fotografo = _root.quadros[i].fotografo; if (i%8 == 7) { thumb._x = 0; thumb._y = this["btn"+i]._y+this["btn"+i]._height-3; } else { thumb._x = this["btn"+i]._x+this["btn"+i]._width+5; } this["btn"+i].onRelease = function() { // }; thumb._visible = false; } } Compartilhar este post Link para o post Compartilhar em outros sites
gbs 0 Denunciar post Postado Fevereiro 4, 2009 opa, melherou! :D bem, uma lógica que pensei foi a seguinte: //x e y onde os itens começaram a ser exibidos.... xstart = 60; yxstart = 10; //largura e altura do item mais a distância x e y entre eles... distx = 60; disty = 60; //apenas setando o valor inicial do x e y... xp = xstart; yp = yxstart; function teste() { for (i=1; i<=31; i++) { duplicateMovieClip(thumb, "item_mc"+i, i); var item_mc:MovieClip = this["item_mc"+i]; //se for a primeira coluna if (i<=7) { if (i%8 == 0) { xp = xstart; yp = yp+disty; } else { xp = xp+distx; } } //se for o primeiro item if (i == 1) { xp = xstart+distx; } //sequencia normal if (i>7) { if (i%8 == 0) { xp = xstart; yp = yp+disty; } else { xp = xp+distx; } } //seta as posições item_mc._x = xp; item_mc._y = yp; //apenas para informar o número do item... item_mc.n.text = i; } } teste(); com este código se chega ao seguinte: SWF se quiser dar uma olhada no FLA aí é só aplicar a lógica no seu código q teoricamente fica lindo, qualquer coisa posta aí! abraços; http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif Compartilhar este post Link para o post Compartilhar em outros sites
eronventer 2 Denunciar post Postado Fevereiro 4, 2009 Saquei a ideia, perfeito, muito obrigado... Agora estou com outro probleminha, estou adaptando uma paginação, pois poderá ocorrer de ter mais de 31 itens...e está acontecendo de por exemplo, se eu tiver 41 itens, a primeira pagina esta td posicionado corretamente, já na pagina seguinte, fica desalinhado....segue o codigo: Função que monta a galeria: function initGaleria(pg, qtde) { for (thumb in galeria) { galeria[thumb].removeMovieClip(); } //Posição inicial do objeto var yItemStart:Number = 0; var xItemStart:Number = 0; //largura e altura do item mais a distância x e y entre eles... var distX:Number = 115; var distY:Number = 96; //apenas setando o valor inicial do x e y... xP = xItemStart; yP = yItemStart; total_matriz = (qtde == null) ? _root.quadros.length : qtde; num_paginas = Math.ceil(total_matriz/31); num_quadros = 0; if (total_matriz>31) { rs_fim = 31; galeria.btnAvanca.enabled = true; } else { rs_fim = total_matriz; galeria.btnAvanca.enabled = false; } if (pg != "" || pg != undefined) { rs_ini = (pg*31-31)+1; if (pg<num_paginas) { rs_fim = pg*31; } else { rs_fim = total_matriz; } } pag_atual = pg; if (num_paginas>1) { galeria.btnAvanca.enabled = true; } if (num_paginas == 1) { galeria.btnVolta.enabled = false; } for (i=rs_ini; i<=rs_fim; i++) { if (qtde == null) { itemId = i; } else { itemId = monta_busca[i]; } galeria.thumb.duplicateMovieClip("btn"+i,i); var quadrinho:MovieClip = galeria["btn"+i]; quadrinho.id = _root.quadros[itemId].id; quadrinho.nome = _root.quadros[itemId].nome; quadrinho.tamanho = _root.quadros[itemId].tamanho; quadrinho.foto = _root.quadros[itemId].foto; quadrinho.fotografo = _root.quadros[itemId].fotografo; quadrinho.pos = itemId; //se for a primeira coluna if (i<=7) { if (i%8 == 0) { xP = xItemStart; yP = yP+distY; } else { xP = xP+distX; } } //se for o primeiro item if (i == 1) { xP = xItemStart+distX; } //sequencia normal if (i>7) { if (i%8 == 0) { xP = xItemStart; yP = yP+distY; } else { xP = xP+distX; } } //seta as posições quadrinho._x = xP; quadrinho._y = yP; quadrinho.onRelease = function() { trace("CLIQUE"); }; num_quadros++; } galeria.thumb._visible = false; } Botão Avançar: _parent.btnVolta.enabled = true; _parent._parent.initGaleria(_parent._parent.pag_atual+1); if (_parent._parent.pag_atual == _parent._parent.num_paginas) { _parent.btnAvanca.enabled = false; } Botão Voltar: _parent.btnAvanca.enabled = true; _parent._parent.initGaleria(_parent._parent.pag_atual-1); if (_parent._parent.pag_atual == 1) { _parent.btnVolta.enabled = false; } Compartilhar este post Link para o post Compartilhar em outros sites
gbs 0 Denunciar post Postado Fevereiro 5, 2009 o que acontece é que você está alterando o valor da variável i para pegar os próximos dados... aí quando chega no if (i == 1), ela nunca será 1 depois da primeira página, a msm coisa para os próximos dois if... faz assim: function initGaleria(pg, qtde) { //reinicia a variável de alinhamento vP = 1; for (i=rs_ini; i<=rs_fim; i++) { //... //se for a primeira coluna if (vP<=7) { if (vP%8 == 0) { xP = xItemStart; yP = yP+distY; } else { xP = xP+distX; } } //se for o primeiro item if (vP == 1) { xP = xItemStart+distX; } //sequencia normal if (vP>7) { if (vP%8 == 0) { xP = xItemStart; yP = yP+distY; } else { xP = xP+distX; } } //seta as posições quadrinho._x = xP; quadrinho._y = yP; vP++; //... } } Aí sempre que você chamar a função, ele vai ficar com a i normal e setar a vP como 1 e ir somando até terminar o for e na próxima ele começa do 1 de novo, assim sempre dará certo nas condições... chega o drops; http://forum.imasters.com.br/public/style_emoticons/default/joia.gif Compartilhar este post Link para o post Compartilhar em outros sites
eronventer 2 Denunciar post Postado Fevereiro 5, 2009 Vivendo e aprendendo!! Valeu mesmo gbs....agora to com outro probleminha, na minha função eu faço um "for in" para eliminar os objetos sempre que chamar a função, porém ele continua me criando um objeto vazio no final da pagina.... Até coloquei um "galeria.thumb._visible = false;" para ver se resolvia mas não adiantou nada... Porque pode estar acontecendo isso? Compartilhar este post Link para o post Compartilhar em outros sites
gbs 0 Denunciar post Postado Fevereiro 5, 2009 vamos pensar um pouquinho... duplicateMovieClip( target , newname , depth ) entendente o código... galeria.thumb.duplicateMovieClip("btn"+i,i); var quadrinho:MovieClip = galeria["btn"+i]; você cria um novo movie clip chamado por exemplo btn1, que teve como origem o movieclip galeria.thumb... galeria.thumb é apenas um modelo, então você oculta ele, como você já está fazendo: galeria.thumb._visible = false; aí eu acho que você tenta remover todos os existentes antes de continuar: for (thumb in galeria) { galeria[thumb].removeMovieClip(); } mas você está duplicando os moviecplis com os nomes... galeria["btn"+i], ou seja: btn1, btn2, btn3, btn cachorro, e assim por diante... não estou vendo aonde você está apagando os btn1, btn2, btn3, btn32354684, btndog... faz um for pra rasgar fogo neles... for (i=rs_ini; i<=rs_fim; i++) { var quadrinho:MovieClip = galeria["btn"+i]; quadrinho.removeMovieClip(); //ou quadrinho._visible = false; } mas faz isso ao trocar de página, antes de setar os novos valores para rs_ini e rs_fim, tem q pegar os que estão sendo usados na página atual antes de trocar... ;) Compartilhar este post Link para o post Compartilhar em outros sites