PEDRO CLAUDIO (50 pts)

RICARDO TAKAHASHI (180 pts)

IRAPUAN MARTINEZ (45 pts)

ALEXANDRE PORTO (1281 pts)

LUIZ AVANCI (51 pts)

MUZAK (45 pts)

ÉMERSON ROCHA (85 pts)

DAUTON JANOTA (255 pts)

DEN IVANOV (260 pts)

NETO LEAL (116 pts)

NILTON BICALHO (61 pts)

AMAURY BENTES (123 pts)
Treinamento PontoFlash de Flash e ActionScript

Como utilizar uma função para procurar valores dentro de uma variável?

Problemas com valores de variáveis em string e espressão.

Uma instrução de um movieclip para a timeline principal não funciona.

Como faço para enviar variáveis entre dois swfs?

Posso limitar o tempo de permanência de um usuário numa página?

Preciso de um comando que faça um MC começar a rodar quando outro MC chega em certo ponto?

Como desabilitar um botão quando eu carrego o swf e habilitar quando descarregar o swf.

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

Como redirecionar automaticamente para outra url?

Não conseguir determinar corretamente sua localização (hierarquia ou posição) de uma variável.

Dicas de um designer.

Quer descobrir o nome de uma fonte?

Como configurar um fadeIn e um fadeOut em um arquivo de som?

como eu chamo uma função do Flash a partir do javascript?
Sistema de newsletter utilizando Flash + ASP.

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

Salvando alterações feitas no layout (shared Objects).

Imagens transparentes usando PhotoShop, Fireworks e Flash.

Linha que segue o mouse.

Tratamento de imagens e alguns efeitos no Fireworks

Tracejado no Fireworks

Compartilhando fontes

RIA, Macromedia Flex e Laszlo Presentation Server

Máscaras no Fireworks MX, o mistério!

Mascara animada no Flash MX

Imagens transparentes usando PhotoShop, Fireworks e Flash.
Page Curl

Menu popop de pastas 2

EnterFrame

Bola reflexo

Validação de senha e login

Rayoflight

HitTest e SwapDepths

Lineas 2

Preload com ampulheta

Menu deslizante

Giros color

Tocha 2
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