DAUTON JANOTA (255 pts)

JOTA LAGO (40 pts)

MANGOOST (80 pts)

ZECA BALA (45 pts)

ILVA RUDEV (90 pts)

SYDNEY GANHO (60 pts)

PANDOGO (82 pts)

DEN IVANOV (260 pts)

PEDRO CLAUDIO (50 pts)

EDUARDO WALMOTT (226 pts)

RICARDO FIGUEIRA (33 pts)

DANIELA PIRES (86 pts)
Treinamento PontoFlash de Flash e ActionScript

Quero que executar uma ação dinamicamente, usando uma variável importada de um TXT.

Eu estou usando para toolTip um código simples usando o método createTextField.

É possível gravar o conteúdo de campos e variáveis do Flash em arquivos TXT?

Como fazer um preloader bem simples?

Como setar _alpha para um texto criado dinamicamente no FlashMX?

Como abrir uma janela pop-up tamanho fullscreen?

Alguém aqui consegue produzir um multimídia com o flash, utilizando arquivos Quicktime (.MOV)?

Como fazer um objeto isqueiro acender quando arrasto sobre outro (fogão)?

Quero a mesma cor de fundo no DreamWeaver e no Flash.

Como faço para desabilitar a mãozinha do mouse em filmes que estão em levels inferiores?

Como mover um objeto (nave) com as setas do teclado?

Como simular a queda e de um objeto quicando sem ser frame-by-frame?

Como eu faço para colocar um arquivo som nos botões?

Quero desabilitar os botões do _level0 (nível zero).
Entendendo como funciona um preloader. Terceira parte.

Degradé com tons metálicos - Fireworks

Jogo da Forca

LocalConnection

Botões comutadores ou com duas ações.

Adicionar ao favoritos

Sistema de newsletter utilizando Flash + ASP

Introdução ao Droptarget

Unindo e separando traçados - Fireworks

Objeto XML - introdução.

Como enevoar as bordas de uma imagem no Fireworks.

Desenhando apenas com Actionscript.
Alpha dinâmico

Scroll circular

Loop FOR declarando variáveis

Typetext

Bate e volta

Número de caracteres

Estática

Galinha

Foto com balão

Enquete

Relógio

Luz
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