JOTA LAGO (40 pts)

DEMIS BUCCI (50 pts)

IRAPUAN MARTINEZ (45 pts)

LUIZ HERRERA (117 pts)

SÁVIO PONTE (39 pts)

ZEBEDIAH (35 pts)

MANGOOST (80 pts)

ÉMERSON ROCHA (85 pts)

STICKMAN (155 pts)

AUTOR DESCONHECIDO (100 pts)

MARCELO SIQUEIRA (96 pts)

EDUARDO PERROUD (52 pts)
Treinamento PontoFlash de Flash e ActionScript

Como fazer um movieclip carregar com um efeito elástico?

Como mudar a cor de um objeto via Actionscript?

Tenho muitas fotos e quero que a cada vez entre uma como background.

Quero um cursor customizado apenas numa área específica.

Será possível formatar texto via CSS fonte, tamanho, cor, espaçamento entrelinhas avanço e avanço de paragrafo?

Porque o meu AVI no Flash só mostra o primeiro frame?

Porque no meu flash, 1 + 15 retorna 15 e não 6?

Porque os botões em um Movie Clip não estão funcionando para outra cena?

Comentários do o script do “desenho livre” (sources/actionscript)?

Como se transforma uma imagem em imagem do tipo quadrinhos (huga huga)?

Preciso criar uma interação Asp + Flash para login e senha.

Como fazer um banner rotativo no flash?

Como alterar duas propriedades de um objeto num só evento de um botão?

Tem alguma técnica pra eu rodar um imagem em 360º no flash?
Betinhocarreiro e Dysney.

Movimentar MC com barra de rolagem e setas

GetMySQLData para Flash5 (primeira parte)

Busca em Textos no Flash MX

Login e senha

Looping.

Animate - Fireworks

Objeto Sound.

Post comments (Livro de Visitas)

Line Draw.

Controle de som no Flash 5.

Duplicate Movieclip.
Gravidade

Keycode

Direção do mouse

Dots2a

Colision balls

Waterfall

ICQ

Multiple text efects

Calculadora simples

Rotação

Bspline2

Raindropstrail
HOME | TUTORIAIS
Flash Intro - Aspectos Básicos do MX
por Helen Triolo

Fiz este filme abaixo para proporcionar uma introdução a algumas das características programáveis do Flash utilizadas mais freqüentemente (e para mostrar como podem ser implementadas especificamente no Flash MX): botões para navegação a diferentes seções, carregar texto externo, fornecer animação adaptada, e carregar um swf externo. Este exemplo mostra alguns das maneiras pelas quais um filme pode ser criado com botões de navegação de conteúdo, carregados de ambos os modos: interna e externamente.

Estrutura do filme

O filme acima, cujo arquivo .fla pode ser baixado aqui, foi criado para responder às seguintes ações do usuário:

· Quando Home é clicado (liberado), vai aparecendo lentamente um movieclip Welcome. Um movieclip estático com nome de instância welcome_mc já existe no palco, com alfa configurado para 0.

· Quando News é clicado, procura ver se um objeto LoadVars chamado news_lv existe. Se não existe (significando que esta é a primeira vez que News foi clicado), cria aquele objeto e o usa para ler um arquivo de texto externo com novas variáveis e exibe o resultado em um campo de texto. Este campo de texto é news_txt e ele já existe dentro do movieclip news_mc (assim sua visibilidade pode ser controlada) no palco.

· Quando About é clicado, checa se about_mc existe. Se não, cria o movieclip em branco about_mc (e alguns objetos relacionados) e carrega um swf dentro dele.

   Então as coisas que precisam existir na inicialização sãos botões (na camada "buttons"), uma moldura gráfica em volta dos botões, um movieclip Welcome (welcome_mc, na camada "welcome mc"), e um movieclip news que contém o campo de texto news_txt e a barra de rolagem correspondente news_sb (news_mc, na camada "news mc"). Para maiores informações sobre a criação e uso de uma barra de rolagem, veja a página dos componentes FUI. Adicionalmente, existe uma camada de fundo com desenhos de fundo, e uma camada de ações, que contém todos os actionscript para este filme.

Botões de Navegação

No Flash 5 e nas versões precedentes do Flash, os botões eram implementados usualmente somente como: símbolos botões, com código colocado nele mesmo, para dizer ao filme o que fazer quando o botão fosse clicado. O Flash MX introduziu a idéia de botões movieclips, aos quais as propriedades de eventos de um movieclip (um objeto da classe MovieClip) são funções atribuídas que dizem o que fazer quando o movieclip (agora chamado de um "botão movieclip" porque é um movieclip que possui funções de botão atribuídas a ele) é clicado. As propriedades de evento Movieclip incluem .onRollOver, .onRollOut, .onPress, .onRelease e .onReleaseOutside. As funções (manipuladores de evento) podem ser atribuídas para cada uma dessas propriedades de eventos para levar a cabo os comandos dentro da função quando o evento ocorrer, ou como uma função nomeada:

function moveMeRight() {
   this._x += 5;
}
nav_bmc.onRollOver = moveMeRight;

ou como uma (não nomeada) função literal:

nav_bmc.onRollOver = function() {
   this._x += 5;
};

   Ambas as peças do código acima dizem ao botão-movieclip nav_bmc o que fazer (mover à direita 5 pixels) sempre que o mouse passar sobre ele. Em ambos os casos, o "this" dentro da função se refere a qualquer objeto cuja função é a ele atribuída (nav_bmc no código acima).

   Para o filme deste exemplo, um botão movieclip da biblioteca é utilizado para todos os botões; ele contém um fundo retangular azul e um campo de texto em branco com o nome de instância label_txt (veja a página de Variáveis do Flash MX para maiores informações sobre convenções de nomeação). Três instâncias do botão estão colocadas no palco em y=0, y=22, y=44, determinando nomes de instância home_bmc, news_bmc, e about_bmc, e um código no início do filme (no quadro 1, onde reside todo o código para o filme) inicializa o aparecimento e a definição do rollover (função que indica que o mouse está sobre o botão) para cada botão. Aqui está como o código se parece para o botão Home:

// set up button label
home_bmc.label_txt.text = "Home";

// set up rollover and rollout functions
home_bmc.onRollOver = function() {
   this.label_txt.textColor = 0xffffff;
};

home_bmc.onRollOut = function() {
   this.label_txt.textColor = 0xc1e1f0;
};

   No exemplo, o código é incluído para cada um dos três botões. Quando você passa o mouse sobre o botão, o texto se torna branco brilhante; de outro modo torna-se azul pálido ("0xC1E1F0").

   Quando o mesmo código é utilizado para botões múltiplos pode ser atribuído à propriedade de evento para cada botão, ou o botão pode ser criado como uma instância de uma classe (por exemplo, ButtonClass) com o código atribuído automaticamente quando, por exemplo, o botão é anexado. Neste caso, somente utilizamos atribuições múltiplas. Se quisermos modificar a cor do fundo do botão quando o mouse passa sobre ele, podemos fazer um clipe separado (bg_mc) dentro do movieclip botão, e adicionar esta linha à função onRollOver:

(new Color(this.bg_mc)).setRGB(0x0000ff);

   para criar uma nova instância do objeto cor e configurá-lo para azul brilhante (e uma expressão correspondente na função onRollOut para re-configurá-la novamente).

Animação Adaptada

Quando o botão Home é pressionado, o movieclip Welcome! (welcome_mc) se atenua de alpha=0 para alpha=100 em incrementos de alpha=5 por quadro. Isto pode ser feito através de uma interpolação de movimento (recurso para criação de uma imagem interpolada entre duas imagens para acelerar a criação de seqüências animadas) no welcome_mc (e alguns gotoAndStop e ações stop), ou com código, como nós fizemos aqui. Para conseguirmos que qualquer coisa seja feita em determinados intervalos de tempo no Flash MX, podemos, ou usar setInterval ou o evento onEnterFrame. Se uma função é atribuída à propriedade .onEnterFrame do movieclip, o código nesta função será levada a cabo uma vez por quadro até que a propriedade .onEnterFrame seja configurada para "null" ou excluída. Este é o código que aumenta o alfa do welcome_mc por 5 desde que seja >= 99 (melhor checar por um valor maior que por algum valor menor - por que erros no arredondamento podem fazer com que o _alpha nunca seja exatamente igual a 100) e então apague a propriedade .onEnterFrame:

home_bmc.onRelease = function() {
   // assign the event handler function to welcome_mc's onEnterFrame property
   ui.welcome_mc.onEnterFrame = function() {
      // "this" = welcome_mc (object this function is attached to)
      if (this._alpha >= 99) {
         delete this.onEnterFrame; // to avoid unnecessary processing
      } else {
         this._alpha += 5;
      }
   };
};

   Para achar welcome_mc de dentro da função onRelease do home_bmc, utilizamos a variável que foi a primeira coisa criada no filme, para mostrar qual linha de tempo contém a interface do usuário que queremos controlar:

var ui = this;

   Neste filme, podemos acessar qualquer coisa sem utilizar variável ui desde que todo o conteúdo existe diretamente no _root, mas é um bom hábito acostumar-se a especificar a linha de tempo da interface no caso desta não ser _root [e, por conseguinte, fora do alvo dos manipuladores de evento (event handlers) dos botões].

   Note que acessamos ui diretamente da rotina home_bmc.onRelease acima. Se uma variável é acessada sem informação de caminho (sem "this." ou "this._parent." ou algo semelhante a precedendo), o Flash vai olhar a linha de tempo na qual o código da função existe para achar aquela variável. Aquela linha de tempo é referida como o alvo da função, e ela é sempre a linha de tempo onde o código da função atual existe (_root, neste caso). Assim, o Flash procurará pela variável ui na linha de tempo principal (_root). Por outro lado, se uma variável (ou instância, propriedade, função, ou método) é precedida de um "this.", o Flash procurará no prõprio objeto no qual o código está anexado para encontrar aquela variável (ou instância, properiedade, função, ou método). Assim, o alvo da função e o "this" utilizado dentro de uma função NÃO se refere à mesma linha de tempo.

Para Ler Texto Externo Utilizando LoadVars

O mesmo mecanismo de endereçamento (utilizando a variável ui para referir-se à linha de tempo da interface) é utilizado para acessar o news_mc do news_bmc. A primeira vez em que o news_bmc é clicado, tem que criar um objeto LoadVars e utilizá-lo para ler o arquivo de texto externo. Este arquivo foi nomeado news.txt. Ele foi criado no Notepad e salvo no formato UTF8, o formato que o MX exige para exibir caracteres ascii fora do padrão. (Esta é uma das opções no menu suspenso Encoding que aparece quando o Save é selecionado no MS Notepad). Ele consiste de 3 pares de variáveis, separados por caracteres &'s, e se parece com isto:

&date1=30 March 2003&
&news1=Posted a downloadable fla with simple examples of the new device components for use with Pocket PC 2002.&

&date2=9 March 2003&
&news2=Put in some non-standard ascii characters to test UTF-8 encoding: Hélène et Françoise toujours dînent ensemble.&

&date3=2 March 2003&
&news3=Updated the shape editor once more with methods that allow point distribution along a path to be specified as a parameter of the getPoints method. The zip includes v1.5 of the Shape class component.&

   Quando o método Load do objeto LoadVars é executado, ele lerá cada uma das seis variáveis (date1, news1, date2, news2, date3, news3) como propriedades do objeto LoadVars. Assim, por exemplo, se news_lv é o objeto LoadVars, o segundo novo item poderá ser acessado, tanto como news_lv.news2 quanto como news_lv["news2"] ou de dentro de uma função atribuída a news_lv, como this.news2 ou this["news2"] ou ainda this["news"+2]. O último é um formato útil para variáveis de endereçamento nomeadas similarmente em um loop. (Veja Movieclips Endereçamentos, pg 2 para maiores informações sobre endereçamento com sintaxe de ponto vs sintaxe de matriz).

   Ler a partir um arquivo de texto é um exemplo de um evento assíncrono - um que não é completado em algum momento previsível, ou depois de algum número previsível de quadros - assim uma função tem que ser criada e atribuída à propriedade .onLoad do objeto LoadVars para manipular os dados (texto) assim que ele tenha sido retornado. Este é o código para criar um objeto LoadVars, atribuir uma função à sua propriedade .onLoad para mostrar o texto no news_txt dentro do news_mc, e então carregar o texto:

news_bmc.onRelease = function() {
   // Create a loadVars object if not already created
   if (news_lv == undefined) {
      news_lv = new LoadVars();
      // Use it to display the news
      news_lv.onLoad = function() {
         var i=1;
         ui.news_mc.news_txt.htmlText = "What's New:";
         // read as many date entries as there are in the file
         while (this["date"+i] != undefined) {
            ui.news_mc.news_txt.htmlText += "<b><font color='#184961'>" + this["date"+i] + "</font></b><br>";
            ui.news_mc.news_txt.htmlText += "<br>" + this["news"+i] + "<br><br>";
            i++;
         }
         ui.news_mc.news_sb._visible = ui.news_mc.news_txt.maxscroll > 1;
      };
      news_lv.load("news.txt");
   }
};

   Esse código é executado na primeira vez que o news_bmc é clicado. Se ele for clicado posteriormente, news_lv ainda existe e o programa simplesmente configurará o news_mc como visível novamente. Note que a propriedade de news_txt que é configurada é .htmlText, e assim a formatação html pode ser aplicada ao campo (ligamos a formatação html para o campo de texto no painel de Properties quando o fla foi criado).

Carregando um arquivo swf externo

O último botão deste exemplo, About, carrega um swf que criamos previamente. Esse filme contém seis movieclips/fotografias que são trocadas randomicamente a intervalos de 3 segundos (veja no quadro 1 do arquivo flashmx_intro_about.fla para ver como). Quando o botão About é liberado (release), seu manipulador (handler) checa se o movieclip about_mc já foi criado. Se não, ele cria um movieclip em branco com aquele nome e carrega o swf nele. Na prática, ele cria um outro movieclip (nomeado holder) dentro do about_mc para carregar dentro o swf - isto previne que a propriedade .onEnterFrame de about_mc's seja cancelada quando começar o carregamento do swf (O mesmo método pode ser usado quando do carregamento de jpg, como descrito na página de LoadJPG). O about_mc.onEnterFrame é usado para checar e exibir o tamanho em bytes de flashmx_intro_about.swf que foi carregado. Para exibir isto, criamos um campo de texto dentro de about_mc que exibe os bytes carregados e é depois apagado assim que o swf tenha sido carregado completamente.

   Por ter o swf somente 34kb, pode ser que você não veja o progresso do carregamento mostrado no seu ambiente de trabalho. Um modo de testar se está funcionando é importar uma jpg pesada fora do palco antes de publicar, de modo que o progresso do carregamento possa ser exibido mesmo em uma conexão rápida (então apague a jpg gigante, uma vez que agora você sabe que o indicador de progresso funciona).

   Este é o código que checa a existência de about_mc, cria ele caso necessário, cria o holder e o msg_txt, além de carregar o flashmx_intro_about.swf dentro de about_mc:

about_bmc.onRelease = function() {
   // create about_mc if not done already, and load content into it
   if (ui.about_mc == undefined) {
      var amc = ui.createEmptyMovieClip("about_mc", 1);
      amc.createEmptyMovieClip("holder", 1);
      amc.createTextField("msg_txt",2, 10, 200, 200, 50);
      amc._x = 100; amc._y = 0;
      amc.holder.loadMovie("flashmx_intro_about.swf");
      amc.onEnterFrame = function() {
         if (this.holder.getBytesLoaded() >= this.holder.getBytesTotal()) {
            delete this.onEnterFrame;
            // get rid of the loading progress textfield
            this.msg_txt.removeTextField();
         } else {
            // show how many bytes have been loaded
            this.msg_txt.text = this.holder.getBytesLoaded() + " loaded";
         }
      };
   } else {
      // if already created and loaded, just set it visible
      ui.about_mc._visible = true;
   }
};

Desligando outras partes do filme

Você notará que um código adicional foi incluído em cada um dos manipuladores de eventos do movieclip botão no .fla para esconder ou desabilitar as partes do filme que não devem ser exibidas. O alfa do welcome_mc está configurada para 0 (de modo que o fade in pode começar novamente quando welcome_bmc for clicado), news_mc está oculto (_visible = false), e/ou about_mc está oculto se existir (porque ele não existe até que About tenha sido clicado uma vez, e não é uma boa idéia endereçar um movieclip que não existe).

Baixe aqui o arquivo .fla

Tradução: Sergio Ramalho



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
1 comentário


Comentário de SilvA
| 13/11/2010 - 12:34 |


quero criar uma busca num txt.txt exemplo input box, um botao e uma caixa dinamica. quando eu colocar ex:1 no input box e aperta o botao a caixa dinamica me mostre um var que esta txt.txt &1=bla bla bla. se ponho 2 me mostre a var &2=ble ble ble voce pode me ajudar naples_usa@hotmail.com