xtreem 0 Denunciar post Postado Novembro 29, 2006 Então galera, já postei isso aqui uma vez, não obtive resultados, e fiz a coisa no braço. Agora estou diante de um problema de novo que pode ser solucionado com for i, mas não sei fazer esse troço funcionar direito. Resumidamente: possuo 8 botões no meu stage, instanciados como botao1...botao8. Quero que quando eu pressione um deles, o que chama um movie clip, TODOS os botões sejam desabilitados, para tanto, estou usando o seguinte código em um dos botões on(press){ for(i=1;i<9;i++){ varbotao = ("botao"+i) varbotao.enabled = false trace(varbotao) } } Este trace me resulta bem certinho, botao1...botao8, ou seja, a lógica me parece correta, porém, todos os botões continuam ativos. Já tentei usar outra notação, que alguém havia me passado uma vez, igualando varbotao à (botao), neste caso, o trace me retorna só "undefined". Me dêem uma luz, preciso entender como essa coisa funciona de uma vez por todas. Valeu pessoal. Compartilhar este post Link para o post Compartilhar em outros sites
Antoniosp 2 Denunciar post Postado Novembro 29, 2006 Esse parênteses aí não estão fazendo nada, hehe. Simplesmente você está criando uma String, um texto, com o nome do botão. Isso é diferente de criar um caminho para o botão.Pra entender melhor, vamos analizar o seu trace. Ele deve vir assim:botao1botao2botao...Certo? Errado. O certo deveria ser, por exemplo:_level0.botao1_level0.botao2_level0.botao...Sacou? E como conseguir essa mágica? Tem alguns jeitos:varbotao = _root["botao"+i]; //já que os botões estão dentro do _rootvarbotao = eval("botao"+i); //um outro comando que também "acha" os botõesbeleza? Flw cara Compartilhar este post Link para o post Compartilhar em outros sites
xtreem 0 Denunciar post Postado Novembro 29, 2006 Ok, ok, me ensina essa mágica também, hehehe.Pois é, funfou utilizando o _root["botao"+']. Eu só gostaria de entender por quê funcionou, se eu estou dentro de um movie carregado na _root, através da target Alvo. Pensei que tivesse de colocar _root.Alvo["botao"+ i], mas não foi necessário.Obrigadão Antônio, me salvou DO trabalho braçal kra.Abraço. Esse parênteses aí não estão fazendo nada, hehe. Simplesmente você está criando uma String, um texto, com o nome do botão. Isso é diferente de criar um caminho para o botão.Pra entender melhor, vamos analizar o seu trace. Ele deve vir assim:botao1botao2botao...Certo? Errado. O certo deveria ser, por exemplo:_level0.botao1_level0.botao2_level0.botao...Sacou? E como conseguir essa mágica? Tem alguns jeitos:varbotao = _root["botao"+i]; //já que os botões estão dentro do _rootvarbotao = eval("botao"+i); //um outro comando que também "acha" os botõesbeleza? Flw cara Compartilhar este post Link para o post Compartilhar em outros sites
Antoniosp 2 Denunciar post Postado Novembro 29, 2006 Ã... deveria ser o que você falou então, hehe. Tipo, você tem os botões dentro do swf carregado no ALVO dentro do _root? Compartilhar este post Link para o post Compartilhar em outros sites
xtreem 0 Denunciar post Postado Novembro 29, 2006 Exatamente. _root carrega filme através da target Alvo. Dentro deste swf eu brinco com os botões.PS: parou de funfar, sei lá pq, heheheh Ã... deveria ser o que você falou então, hehe. Tipo, você tem os botões dentro do swf carregado no ALVO dentro do _root? Compartilhar este post Link para o post Compartilhar em outros sites
Antoniosp 2 Denunciar post Postado Novembro 29, 2006 Faz então com:_root.Alvo["botao"+ i];Mas o seguinte: só vai funcionar se você testar o swf carregando ele dentro do principal. Se testar ele sozinho, não vai funcionar. Acho que você sacou porque. ;)Flw Compartilhar este post Link para o post Compartilhar em outros sites
xtreem 0 Denunciar post Postado Novembro 30, 2006 Sim, pois é cara, eu não tô entendendo mais nada.Na timeline do filme que está sendo carregado dentro de _root.Alvo, eu tive que utilizar eval("botao"+i), daí funcionou.Quando eu pressiono qualquer um dos 8 botões, eles irão desabilitar todos os botões da tela e irão abrir um outro movie interno, dentro ainda do mesmo swf. Dentro deste outro movie, quando eu pressiono o botão pra retornar, eu quero que ele ative novamente todos os 8 botões, que no caso, estão na timeline principal do filme carregado em _root.Alvo. Sacou?No entanto, quando eu utilizo eval("botao"+i) dentro deste movie, simplesmente não funciona. Daí já usei _root, _root.Alvo, eval.....aaaaaaaaaaaaaaaaaaaaahhhhh.Daí que o retorno eu fiz no braço mesmo, hehehehe.Valeu pela tua atenção amigo.. http://forum.imasters.com.br/public/style_emoticons/default/joia.gif Faz então com:_root.Alvo["botao"+ i];Mas o seguinte: só vai funcionar se você testar o swf carregando ele dentro do principal. Se testar ele sozinho, não vai funcionar. Acho que você sacou porque. ;)Flw Compartilhar este post Link para o post Compartilhar em outros sites