lowprofile 0 Denunciar post Postado Julho 8, 2010 Pessoal, alguem poderia me dar um help? Seguinte, tenho um menu que carrega miniaturas de imagens baseado no meu numero de telas (_root.total_telas). A montagem dele está abaixo: [*]ele calcula o numero de telas de slides [*]duplica meu MC e atribui uma instancia para cada (mc_tbn1, mc_tbn2 etc) [*]faz o posicionamento de cada um O problema está na ação de clique. Quando uma miniatura dessa for clicada, terá uma ação diferente que nada mais é que carregar um slide diferente do outro. my_array = new Array();for (i=1; i<=_root.total_telas; i++) { my_array[i] = mc_tbn.duplicateMovieClip("mc_tbn"+i, i); my_array[i].loadMovie("imgs_slideshow/tbn"+i+".jpg",i); my_array[i]._x = 104*i; trace(my_array[i]); my_array[i].onPress = function() { txt_legenda = "testando..."; };} Agradeço pela ajuda! Um abraço Compartilhar este post Link para o post Compartilhar em outros sites
Thiago de Oliveira Cruz 21 Denunciar post Postado Julho 9, 2010 O que retorna aqui: trace(my_array[i]); my_array[i].onPress = function() { txt_legenda = "testando..."; };No seu trace o que retorna???Ta retornando o nome do MovieClip? Lembrando pra ti que ele tem que pegar um nome unico para cada botão... Então eu faria algo do genero: var mc:MovieClip = mc_tbn.duplicateMovieClip("mc_tbn"+i, i);E não uma array Assim você vai ter um MC com nome diferente unico para cada vez que loopar Abraços Compartilhar este post Link para o post Compartilhar em outros sites
lowprofile 0 Denunciar post Postado Julho 12, 2010 O que retorna aqui: trace(my_array[i]); my_array[i].onPress = function() { txt_legenda = "testando..."; };No seu trace o que retorna???Ta retornando o nome do MovieClip? Lembrando pra ti que ele tem que pegar um nome unico para cada botão... Então eu faria algo do genero: var mc:MovieClip = mc_tbn.duplicateMovieClip("mc_tbn"+i, i);E não uma array Assim você vai ter um MC com nome diferente unico para cada vez que loopar Abraços Então cara, meu trace exibe o seguinte: _level0.mc_topo.mc_tbns.mc_tbn1 _level0.mc_topo.mc_tbns.mc_tbn2 _level0.mc_topo.mc_tbns.mc_tbn3 _level0.mc_topo.mc_tbns.mc_tbn4 _level0.mc_topo.mc_tbns.mc_tbn5 _level0.mc_topo.mc_tbns.mc_tbn6 _level0.mc_topo.mc_tbns.mc_tbn7 Entendi, que até aqui está correto. Ele exibiu 7 botoes, porque minha variavel total_telas = 7; A sugestão que voce deu, retornou a mesma coisa que: my_array = mc_tbn.duplicateMovieClip("mc_tbn"+i, i); Vlw por enquanto. Abraços! Compartilhar este post Link para o post Compartilhar em outros sites
Thiago de Oliveira Cruz 21 Denunciar post Postado Julho 13, 2010 Bom já que ta dando a mesma coisa então agora vamos para seu problema Você não pode aplicar onPress em uma coisa carregada com loadMovie... você pode aplicar se for carregada com MovieClipLoader Então teria que fazer algo assim: var mcl:MovieClipLoader = new MovieClipLoader var obj:Object = new Object(); var i:Number = new Number(1); my_array = new Array(); function carrega(){ var mc = mc_tbn.duplicateMovieClip("mc_tbn"+i, i); mcl.loadClip("imgs_slideshow/tbn"+i+".jpg", mc); } obj.onLoadInit = function(){ //onLoadInit o L é maiúsculo this._x = 104*i; this.onPress = function() { txt_legenda = "testando..."; }; if(i <= _root.total_telas){ i++; carrega(); } } carrega() mcl.addListener(obj); Isso deve resolver Abraços Compartilhar este post Link para o post Compartilhar em outros sites
lowprofile 0 Denunciar post Postado Julho 13, 2010 Bom já que ta dando a mesma coisa então agora vamos para seu problema Você não pode aplicar onPress em uma coisa carregada com loadMovie... você pode aplicar se for carregada com MovieClipLoader Então teria que fazer algo assim: var mcl:MovieClipLoader = new MovieClipLoadervar obj:Object = new Object();var i:Number = new Number(1);my_array = new Array(); function carrega(){ var mc = mc_tbn.duplicateMovieClip("mc_tbn"+i, i); mcl.loadClip("imgs_slideshow/tbn"+i+".jpg", mc); }obj.onLoadInit = function(){ //onLoadInit o L é maiúsculo this._x = 104*i; this.onPress = function() { txt_legenda = "testando..."; }; if(i <= _root.total_telas){ i++; carrega(); } }carrega()mcl.addListener(obj);Isso deve resolver Abraços Fala cara, beleza?!Então, testei o seu código fazendo diversos ajustes. Esse abaixo, foi o que chegou mais próximo do que eu preciso. Seguinte: No trace ele retorna apenas: mc_tbn1 Qdo carrego meu filme vejo a duplicação dos movies, porem eles desaparecem. Fica na tela apenas o ultimo. E ao clicar sobre ele o funcionamento está perfeito. Entao, pelo que entendi, o problema está apenas no desaparecimento dos movies q sao duplicados. var mcl:MovieClipLoader = new MovieClipLoader();var obj:Object = new Object();var i:Number = new Number(1);function carrega() { var mc = mc_tbn.duplicateMovieClip("mc_tbn"+i, i); mcl.loadClip("imgs_slideshow/tbn"+i+".jpg",mc);}obj.onLoadInit = function() { _x = 104*i; onPress = function () { txt_legenda = "testando..."; }; if (i<_root.total_telas) { i++; carrega(); }};carrega();mcl.addListener(obj);trace("mc_tbn"+i); Um abraço! Mais uma observação: na verdade os MCs não desaparecem e sim ficam sobrepostos. Compartilhar este post Link para o post Compartilhar em outros sites
Thiago de Oliveira Cruz 21 Denunciar post Postado Julho 13, 2010 Se os MCs significa que você removeu o this._x que era quem fazia um X diferente para cada um deles Se quiser usar array para saber qual MC pode tbm Abraços Compartilhar este post Link para o post Compartilhar em outros sites
lowprofile 0 Denunciar post Postado Julho 13, 2010 Se os MCs significa que você removeu o this._x que era quem fazia um X diferente para cada um deles Se quiser usar array para saber qual MC pode tbm Abraços Então, eu disse que estão desaparecendo, mas na verdade estão sobrepondo. Se eu deixo O This, acontece a mesma coisa. Vou tentar adaptar usando o array. Vlw! Abraços! Compartilhar este post Link para o post Compartilhar em outros sites
Thiago de Oliveira Cruz 21 Denunciar post Postado Julho 13, 2010 Para resolver de vez seu problema faça assim: obj.onloadInit = function(mc) { mc._x = 104*i; onPress = function () { txt_legenda = "testando..."; }; if (i<_root.total_telas) { i++; carrega(); } }; Isso deve resolver Abraços Compartilhar este post Link para o post Compartilhar em outros sites
lowprofile 0 Denunciar post Postado Julho 14, 2010 Brother! Obrigado pela paciência! deu certo, segue o código para quem interessar: var mcl:MovieClipLoader = new MovieClipLoader();var obj:Object = new Object();var i:Number = new Number(1);function carrega() { var mc:MovieClip = mc_tbn.duplicateMovieClip("mc_tbn"+i, i); mcl.loadClip("imgs_slideshow/tbn"+i+".png",mc);}obj.onloadInit = function(mc) { mc._x = 104*i; onPress = function () { mc_loader.loadMovie(name+no+sigla+extensao); }; if (i<total_telas) { i++; carrega(); }};carrega();mcl.addListener(obj);Abraços! Compartilhar este post Link para o post Compartilhar em outros sites