Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

xtreem

For i novamente....

Recommended Posts

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

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

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

Ã... 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

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

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

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

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.