MUZAK (45 pts)

DAUTON JANOTA (255 pts)

GABRIEL SPORCH (53 pts)

MARLOS ALVES CARMO (90 pts)

GÉRIO (93 pts)

ALEXANDRE PORTO (1281 pts)

MARCELO SIQUEIRA (96 pts)

SASHA GUDEY (235 pts)

BÁRBARA TOSTES (64 pts)

PEDRO CLAUDIO (50 pts)

FÁBIO DUARTE (79 pts)

LEANDRO AMANO (83 pts)
Treinamento PontoFlash de Flash e ActionScript

Como fazer um duplicateMovieclip em um movieclip quando solto em uma determinada área?

Como transformar uma animação em um movie clip?

O que é melhor para importar textos no Flash, TXT ou XML?

Como faço para detectar a passagem de 1 minuto no meu filme?

Problemas com o caminho do tell target.

Quero que um filme aberto com load movie, abra no frame 15.

Preciso fazer com que o Flash capture 2 teclas pressionadas ao mesmo tempo.

Quero desativar os botões de cenas já visitadas.

Como fazer um menu que segue o mouse com easing como o do site do cantao.com.br?

Como concatenar um link javascript num Get Url sem dar problemas com as aspas?

Cara como se Zera(0) o getTime(); para reiniciar a contagem? Pode ser com o setInterval?

Um exemplo de um campo de texto formatado dinamicamente no Flash MX.

Uma forma diferente de fazer uma concional.

Como faço para fechar um movieclip, tipo janela do windows?
Desenhando uma linha entre dois pontos no Flash 5.

Barra de rolagem simples no Flash5.

Redimensionar um filme no modo de edição

Componentes no Flash MX

Integração Flash X ColdFusion.

Login e senha

Formulário usando Flash e PHP

Integrando o Flash com Tecnologias Externas.

Turbine seu Fireworks

Color changer

Adicionar ao favoritos

Objeto Sound.
Cromatograma

Spiral show

Set focus

Statusload

Sombra Texto

Macromedia

Farois

Move to point

Carro com Tweening

Menu elástico

Texto esticado

Estática
HOME | TUTORIAIS
Gráfico pizza.
por Helen Triolo

Como é que você pode plotar um gráfico com dados que mudam? Leia os dados dentro de arrays e use o método duplicateMovieClip e/ou attachMovieClip para representar a percentagem de cada seção do gráfico, desenhe os símbolos chave correspondentes e os títulos das categorias.



Crie o movieclip da "fatia da pizza" para ser duplicado:

Para desenhar cada uma das seções do gráfico de pizza, ela deve ser dividida em 100 fatias (cada fatia = 1% do total). Quer dizer, cada fatia deve representar 1/100 de um círculo de 360 graus, ou 3.6 graus. Assim, para criar nossa fatia, começamos com um círculo, uma linha horizontal que corta o centro do círculo, e outra linha que é uma cópia da horizontal, porém, girada 3,6 graus no sentido contrário dos ponteiros do relógio (use a caixa Rotate no painel Transform para fazer isso exatamente). Então, apagamos a parte que não queremos, preenchemos a fatia e convertemos as linhas para preenchimentos (Modify, Convert, Lines to Fills). A fatia é convertida para um movieclip (F8), a instância é arrastada para fora do palco, e determinamos para a instância o nome mcPie.

Crie o símbolo chave e os movieclips de categoria:

Para criar uma legenda que vá com o gráfico pizza, crie um símbolo chave que será duplicado nas mesmas cores das fatias de pizza. Desenhe um quadrado com 8x8 pixels, converta-o em um movieclip e o arraste fora do placo. Dê a ele um nome de instância mcKey. Para a categoria movieclip, usamos o attachMovieclip no lugar de duplicateMovieclip, somente para mostrar como é usado (poderá ter sido feito do mesmo modo que o duplicateMovieclip neste caso).

   Para criar o movieclip category, criamos um campo de texto, fazendo-o dinâmico, com apenas uma linha, name=tfCategory (no painel Text Options) e ajuste-o para _sans 8 (no painel Character). Após converter isto para um movieclip "category", o apagamos completamente do palco. Um movieclip que vai ser anexado não precisa estar presente no palco, mas deve estar na biblioteca e exportado corretamente - para fazer isto, clicamos com o botão da direita do mouse sobre categoria na biblioteca e ajustamos o Identifier para mcCategory e o Linkage para exportar este símbolo.

Entre com o código no Frame Actions para o quadro 5:

aCount = new Array(20, 5, 50, 37, 10);
aColor = new Array(0x0000cc, 0x669999, 0xcc66cc, 0x00cccc, 0x9933cc);
aCategory = new Array("blue","green","pink","aqua","fuschia");
nElements = aCount.length;
aPercent = new Array(nElements);
nDepth = 1;
// Calculate total
for (i=0; i < nElements; i++) {
   nTotal += aCount[i];
}
// Calculate percents
for (i=0; i < nElements; i++) {
   aPercent[i] = math.round((aCount[i]/nTotal)*100);
   nTotalPercent += aPercent[i]; // keep for later fix
   if (i < nElements-1) {
      nAllButLast += aPercent[i];
   }
}
// Fix for possible rounding error
if (nTotalPercent != 100) {
   aPercent[nElements-1] = 100 - nAllButLast;
}
nRunningSum = 0;
for (i=0; i < nElements; i++) {
   // duplicate key symbol and set to correct color
   mcKey.duplicateMovieClip ("mcKey"+i, nDepth++);
   _root["mcKey"+i]._x = 110;
   _root["mcKey"+i]._y = i*20+8;
   tempColor = new Color(eval("mcKey" + i));
   tempColor.setRGB(aColor[i]);
   // attach category text movieclip and set to correct category
   _root.attachMovie ("mcCategory", "mcCategory"+i, nDepth++);
   _root["mcCategory"+i].tfCategory = aCategory[i];
   _root["mcCategory"+i]._x = 120;
   _root["mcCategory"+i]._y = i*20+8;
   // duplicate slice until percent is complete, set color
   for (j=0; j < aPercent[i]; j++) {
      mcPie.duplicateMovieClip ("mcPie"+i*nElements+j, nDepth++);
      _root["mcPie"+i*nElements+j]._x = 53;
      _root["mcPie"+i*nElements+j]._y = 53;
      _root["mcPie"+i*nElements+j]._rotation = nRunningSum - 3.6;
      nRunningSum -= 3.6;
      tempColor = new Color(eval("mcPie" + i*nElements+j));
      tempColor.setRGB(aColor[i]);
   }
}
stop ();

Adendo: Como Will Prater apontou em um email, no lugar de uma eval na instrução que cria um novo objeto de cor, podemos, ao invés, usar a função targetPath para obter a mesma coisa:

tempColor = new Color(targetPath(this["mcPie"+i*nElements+j]));

Como um gráfico de pizza pode ser criado da leitura de dados a partir de um arquivo externo .txt.


baixar arquivo

Para ler dados de um arquivo externo, necessitamos adicionar um clipe controlador para ler dados dentro de um filme e convertê-lo, e necessitamos criar um arquivo de texto com três variáveis (contagens, cores e categorias) que serão lidos dentro das arrays.

Este é o conteúdo do nosso arquivo arrayinfo.txt:

countValues=20,5,50,37,10
&colorValues=0000cc,669999,cc66cc,00cccc,9933cc
&categoryValues=blue%20pens,green%20pens,
pink%20pens,aqua%20pens,fuschia%20pens

(mas sem nenhuma quebra de linha no arquivo atual). Também adicionamos um movieclip controlador em branco ao filme e colocamos uma instância dele no quadro 1. Este é o código naquele clipe, que lê os dados de um arquivo externo e o converte para um formato utilizável pelo seu filme original (que começa no quadro 5):

onClipEvent(load) {
   this.loadVariables("arrayinfo.txt");
}
onClipEvent(data) {
   // uma vez lidos os dados, converta-os emarrays
   aCount = countValues.split(",");
   aColor = colorValues.split(",");
   aCategory = categoryValues.split(",");

   // altere aCount para valores numéricos
    for (var i in aCount) {
      aCount[i] = Number(aCount[i]);
   }

    // altere os valores de cor de hexadecimais para numéricos

   for (var i in aColor) {
      aColor[i] = parseInt(aColor[i], 16);
   }

    // Copie todas as variáveis para a timeline principal (assim as
   // actions no frame 5 não precisam ser modificadas)

    for (item in this) {
      _root[item] = this[item];
   }

    // o filme continua
    _root.gotoAndStop("draw");
}

Tente mudar qualquer dos valores de cores ou outros números no arquivo txt, ou mesmo o número total dos valores, para ver as mudanças produzidas quando o swf está rodando.

Tradução:
Alexandre Porto



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
2 comentários


Comentário de mario
| 21/3/2011 - 16:37 |


link quebrado http://www.pontoflash.com.br/tutoriais_con.php?autor=10&tema=3&post=191



Comentário de nil
| 17/2/2011 - 15:14 |


link quebrado