DEMIS BUCCI (50 pts)

PEDRO CLAUDIO (50 pts)

BÁRBARA TOSTES (64 pts)

MARCOS JOSÉ PINTO (44 pts)

DENIS CARAVALHO (85 pts)

GABRIEL SPORCH (53 pts)

MAURO ROCHA TAVARES (40 pts)

DAUTON JANOTA (255 pts)

RICARDO FIGUEIRA (33 pts)

ÉMERSON ROCHA (85 pts)

ZEBEDIAH (35 pts)

DEN IVANOV (260 pts)
Treinamento PontoFlash de Flash e ActionScript

Um preloader inteligente.

Como usar um loop FOR?

Como faço para concatenar o nome da variável, dependendo do valor de outra?

Posso abrir uma janela popup de um projetor (executável)?

Quicktime no Flash.

Eu gostaria de que quando alguém desse um clique num link meu filme em flash abrisse em full screen, e um botão para fecha-lo.

Como faço para adicionar textura ou imagem ao invés de uma cor da paleta?

Com o LocalConnection do FlashMX, posso enviar variáveis para outro SWF?

Eu queria saber como eu faço para um apresentação aparecer uma digitação normal.

Como fazer para que meu flash aberto com Load Movie tenha fundo transparente.

Como separar os canais de cores no photoshop? As 4 cores (CMYK) e o branco.

Como fazer para que a cada "refresh" da página, apareça um banner diferente?

Como enviar comandos para uma variável aberta com loadVariables?

Queria fazer um mouse trail com easing, mas que o movieclip ficasse sempre embaixo do mouse.
Loops Alternados (Objeto Sound).

Action Script 2.0 (Primeira Parte)

Flash MX 2004 - class e prototype

A história do Flash.

Máscara percorrendo um caminho.

Tratamento de um bitmap PNG com o PhotoShop.

Macromedia Flash - Tendências

Load Movie no FlashMX (swf, jpg e mp3).

Interseções com objetos planos

Editor de banco de dados (PHP-MySql) orientado a Objetos (OOP)

Site da banda os Titãs - Avaliação de sites

Botão estilo Apple, feito no Flash.
Céu estrelado

Textfind

Fumaça

Kick ball

Planeta orbita

Drag limitado

BarrasCrescentes

Random line draw

CGC e CPF

Musica

Customized mouse

Collision gravity
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