Ir para conteúdo

POWERED BY:

Arquivado

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

wagnerdp

pergunta fácil, pra quem sabe.

Recommended Posts

É o seguinte, tenho vários botões que tem duas ações cada um.uma é on press, e outra on release.só que a de onPress, é a mesma função pra pra todos. Ao invés de escrevê-la várias vezes em cada botão, como eu faço para essa ação ser rodada para todos os botões escrevendo apenas uma vez a ação mas que ela seja aceita para todos?Ex.:bt1.onPress = function(){ cortina.send("china", "gotoandstop", "2");}bt2.onPress = function(){ cortina.send("china", "gotoandstop", "2");}bt3.onPress = function(){ cortina.send("china", "gotoandstop", "2");}todos essas funções fossem atribuídas a uma só.entenderam???

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vê se esse código te ajuda:

 

var bots:Array = Array("bt1","bt2","bt3"); //Array com o nome das instancias dos botõesfor (var name in this) { 	for (i = 0; i<bots.length;i++) {		if (name == bots[i]) {			this[name].onPress = function() {				cortina.send("china", "gotoandstop", "2");			}		}	} }

Falow

Compartilhar este post


Link para o post
Compartilhar em outros sites

funfô sim Ludoman.vlw!mas t´´a dando um erro nesse código, dá uma olhada nele pra mim, faz o favor?bt1.onPress = function(){ milisegundos_bt = 1000; intervalo_bt1 = setInterval(function(){ getURL(menu.childNodes[0].childNodes[0].attributes.link, "load"); _root.back.menu.titulos.tit_esquerda.text = (menu.childNodes[1].childNodes[1].attributes.tit_esquerda); _root.back.menu.titulos.tit_meio.text = (menu.childNodes[1].childNodes[1].attributes.tit_meio); _root.back.menu.titulos.tit_direita.text = (menu.childNodes[1].childNodes[1].attributes.tit_direita); clearInterval(intervalo_bt1); },milisegundos_bt);};ele funfa....só q qdo dou dois quiques (tipo pra abrir uma pasta) ele dá um erro loco, fica em looping.tá dando erro por causa do setInterval , pois qdo tiro ele funfa de boa.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não enteni porque você usa um setInterval se, no primeiro ciclo, ao executar a função, ele dá um clearInterval....Com certeza esse é o problema dos loopings loucos... você clica uma vez e atribui um intervalo à variável. ai, antes de dar o clear, você clica novamente e executa o mesmo código novamente, atribuindo um outro intervalo apra a variável.Quando você dá um clear depois, ele para de rodar o segundo intervalo, mas não o primeiro...Minha dúvida é:Porque você quer usar um setInterval, que executa a função de 1 em 1 segundo, se essa função só roda 1 vez?Falows

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ae Ludô.. tipo, eu entendi a lógica do código q você botou ae... mas só num entendi uma coisa, a aplicação do [for (var name in this)] é realmente necessária?e pra que serve?flw!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pode usar associação múltipla:bt1.onPress = bt2.onPress = bt3.onPress = function(){cortina.send("china", "gotoandstop", "2");}Ou criar uma função e atribuir a todos:function meuPress{cortina.send("china", "gotoandstop", "2");}bt1.onPress = meuPress;bt2.onPress = meuPress;bt3.onPress = meuPress;Abraço

Compartilhar este post


Link para o post
Compartilhar em outros sites

A única idéia de usar aquele for é você setar só os nomes dos botões num array...var bots:Array = Array("bt1","bt2","bt3");Imagine se fossem 30 botões com a mesma action... esse esquema de colocar os nomes deles num array é melhor... mas se for só uns 3, 5 botões, o esquema do Antonio é melhor.Falows

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.