julliana 0 Denunciar post Postado Abril 24, 2008 Olá pessoal, Estou precisando muito de uma ajuda. É o seguinte, tenho uma sequência de palavras, que devem aparecer dentro de um texto dinâmico, e no palco tem um botão que cada vez que clicado aparece uma nova palavra. Mas o problema é que essas palavras não podem se repetir. Que código tenho que incluir para que as palavras não se repitam? (Tenho conhecimento básico em flash). Agradeço desde já. Abraços CODE palavras = ["SUDDEN","AVAILABLE","TERRIFIC","TOUGH","AMAZING","DEVELOPED","ACTUAL","CURRENT","FORMER","ANCIENT","ENOUGH", "HARMFUL","WEALTHY","HAZARDOUS","NOXIOUS","POISONOUS","MAIN / MAJOR / KEY","WIDE"]; btn.onRelease = function(){ txt_palavra = palavras [random(palavras.length)]; } Compartilhar este post Link para o post Compartilhar em outros sites
carneirinho 7 Denunciar post Postado Abril 24, 2008 Tente esse: old_palavra = ""; txt_palavra = ""; palavras = ["SUDDEN","AVAILABLE","TERRIFIC","TOUGH","AMAZING","DEVELOPED","ACTUAL","CURRENT","FORMER","ANCIENT","ENOUGH","HARMFUL","WEALTHY","HAZARDOUS","NOXIOUS","POISONOUS","MAIN / MAJOR / KEY","WIDE"]; btn.onRelease = function(){ while(txt_palavra == old_palavra){ txt_palavra = palavras [random(palavras.length)]; } old_palavra = txt_palavra } Compartilhar este post Link para o post Compartilhar em outros sites
julliana 0 Denunciar post Postado Abril 24, 2008 Olá Carneirinho, obrigada por me responder. Testei aqui e não deu certo, as palavras continuam repetindo, tentei testar até com menos palavras p/ poder acompanhar melhor, mas esse código não deu mesmo, passam duas ou três palavras e uma anterior repete. Teria um outro código, ou uma alteração a ser feita nesse mesmo para resolver esse problema? Um abraço. Compartilhar este post Link para o post Compartilhar em outros sites
julliana 0 Denunciar post Postado Abril 25, 2008 Olá pessoal, alguém pode me ajudar com o codigo????????? Obrigada Compartilhar este post Link para o post Compartilhar em outros sites
Eder Fortunato 15 Denunciar post Postado Abril 27, 2008 dá uma olhada nesse tópico, tem uma função lá que pode te ajudar []´s Compartilhar este post Link para o post Compartilhar em outros sites
julliana 0 Denunciar post Postado Abril 28, 2008 Olá Eder, muito obrigada por me responder. Olhei o tópico que você me passou, e a parte que acredito que possa me ajudar é a que vou colocar abaixo, mas tenho um problema, estou começando a trabalhar com action script e consigo entender pouco dos códigos ainda, seria possível você dar uma olhada nessa parte que vou colocar e me ajudar a adequá-la ao que eu preciso. Estou super perdida no código! Acredito que mais pra frente com mais estudo vou conseguir interpretá-los numa boa, e com isso não só pedir ajuda, mas ajudar os colegas do fórum tambèm, mas no momento estou contando com a ajuda de vcs e com a boa vontade de ajudar que vcs têm. Muiiiiiito Obrigada. CODE palavras = ["BLANK","STATEMENT","INFER","BOLD FACE","UNDERLINED","FRAGMENT / EXCERPT","PASSAGE"]; function geraAleatorio(txt_palavra:Number):Array { var palavras:Array = new Array() var novo:Array = new Array() var ale:Number for(var i = 0; i < limit; i++) palavras.push(i) while(palavras.length > 0){ ale = Math.round(Math.random() * (palavras.length - 1)) novo.push(palavras.splice(ale, 1)) } return novo } palavras.onLoad = function(){ var palavras = new Array(); var rd:Array = geraAleatorio(0); imagens[0] = palavras.childNodes[0].firstChild.nodeValue; txt_palavra = palavras[rd[0]]; } Compartilhar este post Link para o post Compartilhar em outros sites
Eder Fortunato 15 Denunciar post Postado Abril 29, 2008 era pra usar a outra função, que embaralha o array, seria assim: function desordenaArray(lista:Array):Array { var novo:Array = new Array() var ale:Number while(lista.length > 0){ ale = Math.round(Math.random() * (lista.length - 1)) novo.push(lista.splice(ale, 1)) } return novo } var cont = 0 var palavras = ["SUDDEN","AVAILABLE","TERRIFIC","TOUGH","AMAZING","DEVELOPED","ACTUAL","CURRENT","FORMER","ANCIENT","ENOUGH", "HARMFUL","WEALTHY","HAZARDOUS","NOXIOUS","POISONOUS","MAIN / MAJOR / KEY","WIDE"]; palavras = desordenaArray(palavras) btn.onRelease = function(){ cont++ txt_palavra = palavras [cont]; } assim ele vai mostrar todas aleatoriamente, sem repetir, caso você queira re-começar a mostra-las, sete zero na variavel cont de novo eu não testei, pode ter que arrumar algo ai, vai testando []´s Compartilhar este post Link para o post Compartilhar em outros sites
julliana 0 Denunciar post Postado Abril 29, 2008 Olá Eder, obrigada por mais uma vez me responder... Eu testei o código, e em relação a mostrar as palavras aleatóriamente sem repetí-las deu certinho, o problema é que no caso dessas palavras por ex. que são 18 palavras, aparecem somente 17 palavras e a última aparece como undefined, você sabe o que pode estar acontecendo??? Muito Obrigada. Um Abraço. Compartilhar este post Link para o post Compartilhar em outros sites
julliana 0 Denunciar post Postado Maio 2, 2008 E aí pessoal, alguém sabe me responder pq está aparecendo a última palavra como 'undefined'?????????????????????????? Obrigada!!!!!!!!!!!!!!!!!!!! abços... Compartilhar este post Link para o post Compartilhar em outros sites
Eder Fortunato 15 Denunciar post Postado Maio 3, 2008 é só um probleminha de lógica, ele estava somando um numero e depois mostrando: btn.onRelease = function(){ cont++ txt_palavra = palavras [cont]; } com isso ele começava pelo numero "1", mas o array começa com o "0" pra resolver é só trocar a ordem em que você soma mais 1 no variável: btn.onRelease = function(){ txt_palavra = palavras [cont]; cont++ } []´s Compartilhar este post Link para o post Compartilhar em outros sites
julliana 0 Denunciar post Postado Maio 4, 2008 Olá Eder, primeiramente muito obrigada pela resposta, deu certo, as palvras todas aparecem e no final delas no último clique aparece como undefined, (mas as palavras aparecem todas certinho), essé último clique que aparece como indefinido, têm como fazer com que ele não apareça, com que pare na última palavra sorteada???????? Valeu, pela boa vontade de me ajudar e por compartilhar seus conhecimentos. Muito obrigada. Abraços Compartilhar este post Link para o post Compartilhar em outros sites
julliana 0 Denunciar post Postado Maio 6, 2008 Olá pessoal, solucionado a questão acrescentando um if. fica assim... function desordenaArray(lista:Array):Array { var novo:Array = new Array() var ale:Number while(lista.length > 0){ ale = Math.round(Math.random() * (lista.length - 1)) novo.push(lista.splice(ale, 1)) } return novo } var cont = 0 var palavras = ["lista das palavras"]; palavras = desordenaArray(palavras) btn.onRelease = function(){ txt_palavra = palavras [cont]; cont++ if (txt_palavra == undefined){txt_palavra = "acabou"}// linha da (condição) {ação} } Compartilhar este post Link para o post Compartilhar em outros sites