LEANDRO AMANO (83 pts)

LUI FERNANDO (151 pts)

MANGOOST (80 pts)

RICARDO FIGUEIRA (33 pts)

ZEBEDIAH (35 pts)

DEN IVANOV (260 pts)

LUIZ AVANCI (51 pts)

LUIZ HERRERA (117 pts)

RICARDO TAKAHASHI (180 pts)

JOÃO NETO (78 pts)

JONAS GALVEZ (521 pts)

MARCELO SIQUEIRA (96 pts)
Treinamento PontoFlash de Flash e ActionScript

Tem como encontrar um determinado texto numa string?

Necessito realizar um questionário com 10 perguntas.

O que é e para que serve o método getBounds()?

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

Como colocar uma página em FullScreen?

É necessário criar um objeto para usar o prototype?

Preciso do comando javascript, que com o botão direito do mouse surge um window.alert.

Preciso de um Script de Contagem regressiva para o Flash.

Como carregar e posicionar dinamicamente seis JPGs?

Gostaria de saber como faço para colocar data e hora em um site todo em flash.

Propriedades e métodos não documentados do FlashMX?

Quero acrescentar vídeos e um menu num CD de áudio.

Exemplo de uma máscara com dois objetos criados via métodos de desenho do FlashMX.

Como vestir um modelo com objetos (roupas) arrastáveis?
Objeto Sound.

Comunicação Flash-PHp-MySql - introdução

Avaliação do site de O Boticário

Jogo da Forca (segunda parte)

Vídeo no FlashMX.

Code Animation - Parte 1

Fireworks, o patinho feio da Macromedia.

O desenho animado abrindo sites.

Simulando 3D.

RIA, Macromedia Flex e Laszlo Presentation Server

HTML no Flash 5 - A solução para formatação de textos longos.

Scroll dinâmico no Flash 5.
Vela

Cubo

Mascara de cor

Logos caindo

Motionguidemask1

Frameload

Menu XML

Load image

Bola_balance

Movimento

Elástico

Cmponente Radio Button
HOME | TUTORIAIS
Número randômicos sem repetições no Flash 5.
por Stickman

O que preciso saber?

Esse exemplo funciona criando uma matriz [array] de todos os valores possíveis em ordem e depois dispondo-os um a um numa nova matriz. O gerador pega o último valor não utilizado e o insere no lugar do valor usado, reduzindo gradualmente o número de valores disponíveis.

Aí vai o código, que você vai encontrar nas ações do primeiro frame do filme:

  

 function getUniqueRandom (number) {
      numberlist = new array();
      while (counter<number) {
         ++counter;
         numberlist[counter] = counter;
      }
      this.randomlist = new array();
      while (counter>0) {
         picked = math.floor(math.Random()*counter)+1;
         this.randomlist[counter] = numberlist[picked];
         numberlist[picked] = numberlist[counter];
         --counter;
      }
   }


Para ativar a função, use o código abaixo:

  

  x = new getUniqueRandom(10);

 

O título 'x' pode ser qualquer coisa que você queira e o número entre parênteses é a quantidade de valores randômicos de que você precisa. O que resulta é uma matriz x.randomlist[], de números randômicos. Para obter o primeiro valor (por exemplo), você usaria o seguinte código:

 

  firstnumber = x.randomlist[1]
   secondnumber = x.randomlist[2]

 

... e assim por diante, até obter a quantidade de valores randômicos de que precisa.

Mas não entendo como funciona!

Resumindo, funciona assim: primeiro criamos uma matriz (numberlist) que contém uma lista dos números em seqüência, a partir de 1 até o que número que pedimos. Assim, se pedimos por 100 números randômicos únicos, teremos uma matriz 1, 2 ,3... 98, 99, 100.

   Então criamos outra matriz (randomlist). E executamos um loop, que a cada vez pega aleatoriamente um número entre 0 e o número de elementos em nossa matriz numberlist. Copiamos então o valor obtido na matriz numberlist para a "vaga" seguinte na nossa matriz randomizada. Finalmente, copiamos o último valor restante na matriz numberlist para o lugar do número que acabamos de pegar. Isso reduz em uma unidade o número de valores disponíveis na matriz numberlist (porque o valor que acabamos de pegar não está mais disponível).

   Se você está confuso, dê uma olhada no código no arquivo .fla, que está bem comentado. Você pode também ler a versão original para Flash 4, que tem mais explicações acerca do funcionamento da técnica (embora use uma sintaxe diferente, funciona da mesma maneira).

Ei, porque não usar array.splice para remover o valor "usado"?

Tentei esse método, mas era muito lento. Vi que o método acima, embora menos elegante, é muito mais rápido.

Boa sorte!
Stickman

Copyright de todos os arquivos e textos de ©Stickman 1998 - 2001. Sobre copyright, termos de uso e informações, por favor visite www.the-stickman.com/terms.

Baixe aqui o arquivo FLA desse tutorial.



Devido à reformulação implementada no site, pode ser que você encontre alguns links quebrados. Por favor, ajude-nos a corrigir eventuais problemas nos informando links quebrados
0 comentário