PANDOGO (82 pts)

NILTON BICALHO (61 pts)

STICKMAN (155 pts)

DAAFY (55 pts)

DEN IVANOV (260 pts)

GÉRIO (93 pts)

LUIZ AVANCI (51 pts)

DENIS CARAVALHO (85 pts)

MANGOOST (80 pts)

GABRIEL SPORCH (53 pts)

SÁVIO PONTE (39 pts)

FLASHGURU (155 pts)
Treinamento PontoFlash de Flash e ActionScript

Como carregar uma imagem com LoadImage do MX numa determinada posição?

Como usar um loop FOR?

Quero criar um player de MP3, com várias músicas e botões avançar e voltar.

Como criar um exemplo desenho livre, com botão para começar a desenhar e limpar?

Como desenhar círculos e bolas dinamicamente no FlashMX?

Existe um jeito de fazer um movieclip aparecer em locais aleatórios da tela?

Que relação tem o tamanho do FLA e do SWF?

Como se faz para colocar um .gif seguindo o mouse?

Como eu faço para eliminar as barras de rolagem do navegado IE.

Posso fazer um sistema de login/password usando apenas o FlashRemoting?

Como colocar links em campo de texto estáticos (static text)?

Quero desenhar uma sombra enevoada em um botão!

Vou dar uma sugestão simples e prática em Flash 5 para criar menus dinamicamente.

Como criar movieclips dinamicamente com uma escala e um alpha no mouseOver?
Janelas com abas.

Desenvolvendo um Tocador de Vídeo em Flash

Create TextField.

Avaliação do site de O Boticário

Criação de letras transparentes - Fireworks

Local Shared Objects segunda parte.

Componentes no Flash MX 2004

Movimentar MC com barra de rolagem e setas

Botão dinâmico via Action Script.

Máscaras no Fireworks MX, o mistério!

Fade Out.

Variáveis, uma visão geral.
Message Board Flash+PHP

Sombras

Cofre mask

Raindropstrail

Menu XML

LoadVars

Bspline2

Radio button 1

Hitest eat

Drag txt

Sombra Texto

Cubos vivos
HOME | TRUQUES E DICAS
Num array de 44 elementos quero extrair 4 randomicamente, sem que eles se repitam.
por Jonas Galvez


Sua pergunta é muito interessante... Eu nunca fiz algo deste tipo, mas fiquei muito curioso. Fiz um script (em ActionScript mesmo...) sob medida para verificar se dois dentre quatro elementos são iguais. Se você quiser extrair 8 elementos, por exemplo, o script teria que ser alterado. Veja como ficou:

function quatroRandom(nomeArray) { // sob medida para quatro elementos
iguais = false;
// indica se há elementos iguais
numRandom = new Array();
// declara uma array para armazenar os novos elementos
for (var i = 0; i < 4; i++) { // loop para extrair os elementos
numRandom[i] = nomeArray[Math.floor(Math.random()*44)];
// utilização do método Math ao invéns da função random
}
for (var j = 0, k = 1; j < 3, k < 4; j++, k++) {
// loop da primeira verificação (composto)
if (numRandom[j] == numRandom[k]) {
iguais = true;
// se encontrar elementos iguais...
}
}
// condicional para verificar os possíveis elementos iguais
if ((numRandom[3] == numRandom[1]) || (numRandom[3] == numRandom[0])
|| (numRandom[2] == numRandom[0]) || (numRandom[1] == numRandom[3])) {
iguais = true;
// se encontrar elementos iguais...
}
if (!iguais) { // se não encontrar elementos iguais
return numRandom; // retorna nova Array
} else {
return quatroRandom(nomeArray);
// caso contrário, reexecuta a função
// até que não encontrar elementos iguais...
// sei que isso pode causar uma "bagunça recursiva" :)
// mas seria muito difícil acontecer de elementos iguais
// aparecerem mais de 1 ou 2 vezes....
}

}

Para chamar esta função:
suaArray = new Array(".......44 elementos.....");
novaArray = quatroRandom(suaArray);

Jonas Galvez

0 comentário