hargon 64 Denunciar post Postado Maio 7, 2009 Boa tarde novamente pessoal, Novo problema, prometo não voltar aqui hj depois dessa, só se for para ajudar hehe. Mas é o seguinte, dentro de um movieClip criado por attachMovie, tenho um botão. Estou criando eles dentro de um FOR, +- assim: for(var cont:Number = 0; cont < 5; cont++){ var bt = _root.attachMovie("botao","botao"+cont,100 + cont,{_x:newX,_y:newY}); bt.btnpagina.onPress = function(){_global.pFrame = cont; _root.gotoAndPlay(2);}; newX += 100; } A questão é, quando clicasse no botão, a variável _global.pFrame deveria receber o ID dele, que no caso acima é o valor de cont, que significa o momento em que ele foi criado. Só que do jeito que fiz, como está passando o valor para a variavel global, sempre o último valor de cont que fica gravado. Tentei algo assim: for(var cont:Number = 0; cont < 5; cont++){ var bt = _root.attachMovie("botao","botao"+cont,100 + cont,{_x:newX,_y:newY}); bt.btnpagina.onPress = function(){funcaoCont(cont)}; newX += 100; } function funcaoCont(numero) { _global.pFrame = numero; _root.gotoAndPlay(2); }... mas não tive sucesso. Resumindo, o que eu preciso fazer é criar 5 movieClip dinamicamente e dentro de cada um com um botão. Quando clicar em algum dos botões chamar uma função que vai passar um valor único, que identifique o botão, para uma variável global. Isso que quero fazer é possível? Como seria? Obrigado. Compartilhar este post Link para o post Compartilhar em outros sites
Thiago de Oliveira Cruz 21 Denunciar post Postado Maio 7, 2009 esse _global.pFrame foi declarado onde????? Ele tem que ter sido declarado fora da função pra ter algum valor.... Mas se quiser passar um valor para press pode sempre fazer assim: for(var cont:Number = 0; cont < 5; cont++){ var bt = _root.attachMovie("botao","botao"+cont,100 + cont,{_x:newX,_y:newY}); bt.btnpagina.onPress = function(){ _root.bt.btnpagina.valor = cont; _root.gotoAndPlay(2); }; newX += 100; } Deu? Abraços Compartilhar este post Link para o post Compartilhar em outros sites
hargon 64 Denunciar post Postado Maio 7, 2009 Ainda não deu. Esse _global.pFrame foi declarado no primeiro frame. No caso não seria _root.bt.btnpagina.valor = cont;, teria que ser _global.pFrame = cont. O que acontece é que _global.pFrame está ficando sempre com o último valor lido pelo FOR. Compartilhar este post Link para o post Compartilhar em outros sites
Andre Cocuroci 0 Denunciar post Postado Maio 7, 2009 Já tentou assim: for(var cont:Number = 0; cont < 5; cont++){ var bt = _root.attachMovie("botao","botao"+cont,100 + cont,{_x:newX,_y:newY}); bt.cont = cont; bt.btnpagina.onPress = function(){funcaoCont(this.cont)}; newX += 100; } function funcaoCont(numero) { _global.pFrame = numero; _root.gotoAndPlay(2); } Compartilhar este post Link para o post Compartilhar em outros sites
Thiago de Oliveira Cruz 21 Denunciar post Postado Maio 7, 2009 Sim, pois ele vai rodar o valor todo para a mesma variavel... A variavel é a mesma sempre... Se você declarar para cara um deles uma nova variavel... tavelz resolva Mas qunado você declara 1 valor assim: var tempo = 0 for(i=0;i<10;i++){ tempo = i; } 100% das vezes vai dar tempo=10 no final.... é isso que você ta fazendo. O unico jeito seria uma array O.o Que ai você vai poder receber os valores separadamente... abraços Compartilhar este post Link para o post Compartilhar em outros sites
hargon 64 Denunciar post Postado Maio 7, 2009 Exato. hehe O array já está criado e esse valor que quero pegar é justamente para acessar a posição do array referente ao Botão. Como faço isso? Como consigo identificar essa posição ao clicar no botão. Obrigado pela ajuda fi. Abraço. Compartilhar este post Link para o post Compartilhar em outros sites
Thiago de Oliveira Cruz 21 Denunciar post Postado Maio 7, 2009 Bom para acessar dados no array é igual ao php var tempo:Array = new Array(); for(i=0;i<10;i++){ tempo[i] = i; } Assim você diz que o valor 0=0 1=1 assim por diante Abraços Compartilhar este post Link para o post Compartilhar em outros sites
hargon 64 Denunciar post Postado Maio 7, 2009 Até ai eu consegui. Mas não consigo é no momento do clique passar que eu cliquei no botão 2, então é para exibir o que está na posição 2, se eu clicar no botão 4, é para exibir o que está na posição 4... lembrando que o botão é criado dinamicamente, então a função é colocada no momento da criação. Compartilhar este post Link para o post Compartilhar em outros sites
Thiago de Oliveira Cruz 21 Denunciar post Postado Maio 7, 2009 Olha hargon Nesse link aqui Eu faço isso que você quer mas usando duplicateMovie() O código ta assim: function onLoadInit(duplicate){ redimensionar(duplicate, 50, 50) redimensionar(alvo, 300, 300); alvo._x = (Stage.width/2) - (alvo._width/2); alvo._y = (Stage.height/2) - (alvo._height/2); duplicate.onPress = function(){ var string = targetPath(duplicate).split("-"); p = string[1]; p = p - 1; if(max >= 10){ p = max+p; } var pic:String = fotos[p].toString(); mcl.loadClip(pic, alvo); } loop++; inicia(); } Como você pode ver eu pego o nome do clip no clic :P retiro o tracinho que eu acrescentei na hora de criar os clips e ai abro de acordo com ele... Abraços Compartilhar este post Link para o post Compartilhar em outros sites
hargon 64 Denunciar post Postado Maio 7, 2009 Cara... você é um gênio. Eu pensei em fazer isso que você tá fazendo, mas não consegui rs. Você viu no outro tópico que meus botões estão em sequência. Eu tentei fazer um replace na palavra botao para ficar só os números. rs... Mas não tive sucesso. Nem lembrei do split. Vou tentar aqui e posto depois. Mas aqui, como eu faço para que foi clicado no botão X e não no Y? Só usar targetPath(moviclip) resolve? Compartilhar este post Link para o post Compartilhar em outros sites
Thiago de Oliveira Cruz 21 Denunciar post Postado Maio 7, 2009 Tipo o targetPath(moviclip) serve para lhe dizer qual o nome do clip que foi clicado ;) Então se você der um trace nele ele vai retornar a instancia desse movieclip :P nome dele Ai você pode com base nesse nome criar uma funçãozinha para poder pegar quem é ele e abrir um arquivo com base nisso :) Eu tinha esquecido completamente disso... ai quando você falou o que queria eu lembrei da minha galeria que funcionava assim hehehe. Não sei se é lá o melhor metodo para fazer isso... mas quando eu fiz só consegui inserir valores dinamicos a um botão assim :( Abraços Compartilhar este post Link para o post Compartilhar em outros sites
Andre Cocuroci 0 Denunciar post Postado Maio 8, 2009 Hargon, você viu o meu post? Eu já tive um problema assim e resolvi daquele jeito. Compartilhar este post Link para o post Compartilhar em outros sites
hargon 64 Denunciar post Postado Maio 8, 2009 Cara, você é o melhor. Deu certo. Veja como ficou: movieAdd.btnpagina.onPress = function(){funcaoCont(this);};Fora do FOR criei a função: function funcaoCont(numero):Void { var divideArray; var numeroFinal; divideArray = targetPath(numero).split("."); numero = divideArray[1].split("botao"); _global.pFrame = numero[1]; _root.gotoAndPlay(2); } Abraço. ------------------------ Hargon, você viu o meu post? Eu já tive um problema assim e resolvi daquele jeito. Desculpa amigo, não havia visto seu post. Obrigado pela informação, mas acabei de testar aqui e não deu certo para este caso. Mas de toda forma obrigado. Abraço. Compartilhar este post Link para o post Compartilhar em outros sites
Thiago de Oliveira Cruz 21 Denunciar post Postado Maio 8, 2009 Boa :) Que bom que conseguiu ;) Abraços Compartilhar este post Link para o post Compartilhar em outros sites