<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="wordpress/2.2.1" -->
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	>

<channel>
	<title>Alvo Web &#187; Flash</title>
	<link>http://www.alvoweb.com</link>
	<description>Tutoriais inteligentes</description>
	<pubDate>Tue, 22 Dec 2009 11:22:07 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.2.1</generator>
	<language>en</language>
			<item>
		<title>Básico sobre Eventos no AS3</title>
		<link>http://www.alvoweb.com/basico-sobre-eventos-no-as3/</link>
		<comments>http://www.alvoweb.com/basico-sobre-eventos-no-as3/#comments</comments>
		<pubDate>Sat, 03 Oct 2009 00:55:59 +0000</pubDate>
		<dc:creator>Rodrigo</dc:creator>
		
		<category><![CDATA[ActionScript]]></category>

		<guid isPermaLink="false">http://www.alvoweb.com/basico-sobre-eventos-no-as3/</guid>
		<description><![CDATA[Autor: Rodrigo Gonçalves
  Vamos falar um pouco sobre conceito básico de eventos no AS3. Se você já sabe o que é variáveis (propriedades) e funções (métodos) de um objeto, eventos é algo muito importante pra conseguirmos ter alguma atidude no código.
  Se você  está começando programar, as vezes pode ser um pouco [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Autor:</strong> Rodrigo Gonçalves</p>
<p>  Vamos falar um pouco sobre conceito básico de eventos no AS3. Se você já sabe o que é variáveis (propriedades) e funções (métodos) de um objeto, eventos é algo muito importante pra conseguirmos ter alguma atidude no código.</p>
<p>  Se você  está começando programar, as vezes pode ser um pouco difícil para muitos  essa parte no começo (inclusive comigo).<br />
   Mas acredite, uma vez aprendido e entendido pelo menos o básico de como funciona os eventos no Flash e como aplicar eles em um código, as idéias começam a fazer mais sentido conforme praticamos mais e mais.<br />
  Espero que esse artigo te ajude de alguma forma caso esteja começando  com AS3.</p>
<p>  <strong>Índice: <br />
  1. Entendo o conceito de eventos na vida real;<br />
2.  Eventos no AS3;<br />
3. Sintaxe addEventListener;<br />
4. Adicionando um Evento em um objeto;<br />
5. Removendo um Evento de um objeto.<br />
</strong></p>
<p><strong><br />
1. Entendo o conceito de eventos na vida real  </strong></p>
<p>  Afinal o que é Evento? <em>Um Evento é tudo que acontece (eventualmente) ao nosso redor</em>. Um exemplo geral da  vida cotidiana das pessoas. Por exemplo, <strong>quando</strong> acordamos, <strong>quando</strong> tomamos café da manhã,  <strong>quando</strong> o começar a chuver,  <strong>quando</strong> a noite chegar, <strong>quando</strong> tiver uma festa, quando eu parar de falar, etc,&#8230; <strong>Quando&#8230;Quando&#8230;.Quando</strong>&#8230; <br />
  Obviamente você deve ter reparado a palavra <strong>&quot;Quando</strong>&quot; nas frases. E essa palavra pode ser usadas   para nós mesmo  sabermos (e tentar entender) <strong>quando</strong>  usar um tipo de evento para  termos  alguma determinada atitude no código e fazer alguma ação (olha aí um evento novamente).</p>
<p>  Os eventos acontecem, queira ou não queira eles acontecem uma hora ou outra. A diferença básica é, se queremos ouvir (dar atenção) e fazer algo quando (e somente quando!) acontecer alguma coisa  sobre um determinado assunto, ou se preferir pode deixar acontecer as coisas ao redor e simplismente fazer nada. Por exemplo, quando chover, quero pegar um guarda-chuva! Ou quando a noite chegar, quero ir em uma festa! Ou se eu quiser tomar banho de chuva e não ir na festa a noite. Tudo bem! São só eventos que acontecem e eu não quis dar atenção. Bom, acho que você já pegou a idéia.</p>
<p>  Ok! Muito bonito. Muito legal. Muito bacana esse tal de &quot;evento&quot;. Mas e o Flash? Como fica? O que isso tem haver?</p>
<p>  &quot;Quando&quot; você ler o resto, você vai entender&#8230; </p>
<p>
  <strong>2.  Eventos no AS3<br />
  </strong><br />
  No caso do amigo Flash, os eventos também acontecem. Basicamente, existem 2 tipos de eventos: </p>
<p>  Um gerado pela interação do usuário com o conteúdo, quando por exemplo clica no botão, ou quando pressiona uma tecla.<br />
  E outro tipo de evento que acontece pode ser  pelo criado próprio sistema (Player Flash). por exemplo quando começa ou termina  um download ou upload de um arquivo, ou quando carrega uma imagem, video ou som, e por aí vai. </p>
<p>  Quando um evento acontece, surge um cara chamado <a href="http://help.adobe.com/en_US/AS3LCR/Flash_10.0/flash/events/EventDispatcher.html" target="_blank">EventDispatcher</a> que  basicamente podemos dizer que é responsável por enviar informações sobre o tipo de evento que acontece naquele momento.</p>
<p>Em outras palavras, podemos considerar o  &quot;ouvinte de eventos&quot; (addEventListener) como sendo o tal &quot;dedo-duro&quot; da situação. Assim que o ouvinte de eventos  notar e receber algum aviso que algo aconteceu na área do Flash, o &quot;ouvinte de eventos&quot; vai correndo contar pro &quot;chefe&quot; Flash o que algo aconteceu com algum dos seus objetos, e se o Flash foi programado pra ouvir e dar atenção sobre esse evento, ele vai chamar seus &quot;capangas&quot; (Function Event Handler: funções que manipula o tal evento) pra tomar alguma atitude  e &quot;botar ordem na casa&quot;.</p>
<p> No ActionScript 3, os principais eventos estão no package (pacote de classes) <strong>flash.events </strong>e outros no também no <strong> fl.events</strong>. Você pode conhecer esses eventos e ter mais detalhes sempre acessando  <a href="http://help.adobe.com/en_US/AS3LCR/Flash_10.0/flash/events/Event.html" target="_blank">Event no Help do Flash (tecla F1)</a>.<br />
  Importante notar que, cada objeto no Flash tem seus grupos de eventos dedicado para cada situação(objeto). Por exemplo &quot;Evento de clicar em um objeto&quot; visual usamos  o Evento  <strong>MouseEvent.CLICK</strong> que retorna um valor do tipo string (&quot;click&quot;) solicitado no <strong>addEventListener</strong> (Veremos um exemplo sobre isso  a seguir).</p>
<p>
  <strong>3. Sintaxe addEventListener<br />
  </strong><br />
  Pra responder qualquer tipo de  Evento no Flash, precisamos de 3 etapas fundamentais, sendo elas:</p>
<p>  <strong>1º - Escolher um alvo que queremos aplicar o evento.<br />
  </strong>Cadastrar um &quot;ouvinte de eventos&quot; para esse objeto usando a função <strong>addEventListener()</strong>;<br />
  Essa função solicita 2 argumentos  obrigatórios, sendo 1º argumento <strong>Tipo de Evento</strong> e 2º argumento qual <strong>Função do evento</strong> que queremos chamar quando esse tal evento acontecer.</p>
<p>  <strong>Sintaxe cadastrando um evento para um objeto:<br />
  </strong></p>

<div class="wp_syntax"><div class="code"><pre class="actionscript3">  meuObjeto.<span style="color: #004993;">addEventListener</span><span style="color: #000000;">&#40;</span>TipoDeEvento.PROPRIEDADE_DO_EVENTO<span style="color: #000000; font-weight: bold;">:</span><span style="color: #004993;">String</span>, funcaoQueManipulaEvento<span style="color: #000000; font-weight: bold;">:</span><span style="color: #004993;">Function</span><span style="color: #000000;">&#41;</span>;</pre></div></div>

<p>  Ex: <strong>Quando</strong> clicar em um objeto com nome de instância <strong>botao, </strong>chama/executa uma função com nome<strong> quandoClicarNoBotao():</strong></p>

<div class="wp_syntax"><div class="code"><pre class="actionscript3">  botao.<span style="color: #004993;">addEventListener</span><span style="color: #000000;">&#40;</span><span style="color: #004993;">MouseEvent</span>.<span style="color: #004993;">CLICK</span>, quandoClicarNoBotao<span style="color: #000000;">&#41;</span>;</pre></div></div>

<p>  <strong>Obs:</strong> Esses são 2 argumentos obrigatórios para <strong>addEventlistener()</strong>, existe outros argumentos que são opcionais para tratamentos mais avançados. Mas por agora essa estrutura é o que precisamos saber pra funcionar na maioria dos casos. Caso se interessar em maiores detalhes, <a href="http://help.adobe.com/en_US/AS3LCR/Flash_10.0/flash/data/SQLConnection.html#addEventListener%28%29" target="_blank">confira o Help Flash sobre addEventListener</a>.</p>
<p>  <strong>2º - Escolher o tipo de evento que queremos ouvir.</strong> <br />
  Ex.: MouseEvent.CLICK (quando o mouse clicar em algum objeto), etc; </p>
<p><strong>3º - Criar uma função para manipular o evento quando ele acontecer, conhecida como &quot;Event  handler function&quot;.<br />
</strong>É apenas uma  função dedicada para o tipo de evento que você quer dar atenção, fazer alguma coisa quando esse evento acontecer.<br />
  A função é &quot;especial pra manipular eventos&quot;, deve conter apenas um argumento do mesmo tipo de Evento usado no addEventlistener, e também não deve retornar nada (void). Esse argumento da função guarda algumas informações  sobre  tipo de evento quando ele é disparado e podemos usar de forma dinâmica dentro a função (Vamos ver um exemplo simples mais adiante).</p>
<p>  Sintaxe de função que manipula evento (Event handler function):</p>

<div class="wp_syntax"><div class="code"><pre class="actionscript3"><span style="color: #339966; font-weight: bold;">function</span> funcaoQueManipulaEvento<span style="color: #000000;">&#40;</span>argumentoDoEvento<span style="color: #000000; font-weight: bold;">:</span>TipoDoEvento<span style="color: #000000;">&#41;</span><span style="color: #0033ff; font-weight: bold;">void</span> 
<span style="color: #000000;">&#123;</span>
	<span style="color: #009900;">//seu código aqui, faz alguma coisa com o conteudo.</span>
<span style="color: #000000;">&#125;</span></pre></div></div>

<p>&nbsp;</p>
<p>
  <strong>4. Adicionando um Evento em um objeto</strong></p>
<p>  Usar a função <strong>addEventListener</strong> é um padrão para responder eventos no AS3. Com esse conceito aprendido já conseguimos fazer um interação simples por exemplo de clicar em botão e chamar um link.</p>
<p>Ex.: no stage, temos apenas um simbolo do tipo botão com nome de instâncias <strong>botao</strong> e código inserido no 1º frame:
</p>

<div class="wp_syntax"><div class="code"><pre class="actionscript3">botao.<span style="color: #004993;">addEventListener</span><span style="color: #000000;">&#40;</span><span style="color: #004993;">MouseEvent</span>.<span style="color: #004993;">CLICK</span>, quandoClicarNoBotao<span style="color: #000000;">&#41;</span>;
&nbsp;
<span style="color: #339966; font-weight: bold;">function</span> quandoClicarNoBotao<span style="color: #000000;">&#40;</span>evento<span style="color: #000000; font-weight: bold;">:</span><span style="color: #004993;">MouseEvent</span><span style="color: #000000;">&#41;</span><span style="color: #000000; font-weight: bold;">:</span><span style="color: #0033ff; font-weight: bold;">void</span>
<span style="color: #000000;">&#123;</span>
	<span style="color: #004993;">trace</span><span style="color: #000000;">&#40;</span><span style="color: #990000;">&quot;Você clicou no botao com nome: &quot;</span>, evento.<span style="color: #004993;">target</span>.<span style="color: #004993;">name</span><span style="color: #000000;">&#41;</span>;
<span style="color: #000000;">&#125;</span></pre></div></div>

<p>O<strong> evento.target.name</strong>, é um exemplo usando argumento da função para retornar algum valor do objeto usado. Como a variável <strong>evento</strong> representa a classe <strong>MouseEvent</strong> no nosso caso, usando a propriedade <strong>target</strong> (da classe MouseEvent), pegará exatamente o nosso objeto &#8220;alvo&#8221; (<strong>evento.target</strong>) que é no nosso exemplo o objeto<strong> botao</strong> que sofre esse evento de <strong>MouseEvent.CLICK</strong>, e depois podemos usar propriedades do objeto &#8220;botao&#8221;, como exemplo a propriedade <strong>name</strong>, mostrando o nome do objeto em si. </p>
<p>Você também pode usar a mesma função do mesmo tipo de evento para aplicar em diferentes Objetos.</p>
<p>Ex.: No stage instâncias com nomes: <strong>botao1, botao2, botao3</strong>, respondendo a mesma função <strong>quandoClicarNoBotao</strong> quando clicado.</p>

<div class="wp_syntax"><div class="code"><pre class="actionscript3">botao1.<span style="color: #004993;">addEventListener</span><span style="color: #000000;">&#40;</span><span style="color: #004993;">MouseEvent</span>.<span style="color: #004993;">CLICK</span>, quandoClicarNoBotao<span style="color: #000000;">&#41;</span>;
botao2.<span style="color: #004993;">addEventListener</span><span style="color: #000000;">&#40;</span><span style="color: #004993;">MouseEvent</span>.<span style="color: #004993;">CLICK</span>, quandoClicarNoBotao<span style="color: #000000;">&#41;</span>;
botao3.<span style="color: #004993;">addEventListener</span><span style="color: #000000;">&#40;</span><span style="color: #004993;">MouseEvent</span>.<span style="color: #004993;">CLICK</span>, quandoClicarNoBotao<span style="color: #000000;">&#41;</span>;
&nbsp;
<span style="color: #339966; font-weight: bold;">function</span> quandoClicarNoBotao<span style="color: #000000;">&#40;</span>evento<span style="color: #000000; font-weight: bold;">:</span><span style="color: #004993;">MouseEvent</span><span style="color: #000000;">&#41;</span><span style="color: #000000; font-weight: bold;">:</span><span style="color: #0033ff; font-weight: bold;">void</span>
<span style="color: #000000;">&#123;</span>
	<span style="color: #004993;">trace</span><span style="color: #000000;">&#40;</span><span style="color: #990000;">&quot;Você clicou no botao com nome: &quot;</span>, evento.<span style="color: #004993;">target</span>.<span style="color: #004993;">name</span><span style="color: #000000;">&#41;</span>;
<span style="color: #000000;">&#125;</span></pre></div></div>

<p>Se você testar esse código, e clicar em cada botão, irá retornar o nomes de cada um deles, usando a mesma função.</p>
<p>&nbsp;</p>
<p> <strong>5. Removendo um Evento de um objeto</strong></p>
<p>  Também podemos parar de &quot;escutar/respnder&quot; um tipo de evento quando não precisamos mais usar ele no código. É uma boa prática e recomendado fazer isso, pois evitamos consumir memória desnecessária do computador. Pra isso, utilizamos a função <strong>removeEventListener()</strong> que é a mesma idéia da função <strong>addEventListener()</strong>, mas no caso irá remover um evento que já foi cadastrado antes pela função <strong>addEventListener</strong>. Deve passar exatamente as mesmas informações que foi passada no <strong>addEventListener</strong> do <strong>objeto</strong>(alvo), <strong>tipo de evento</strong> e <strong>função do evento</strong> que queremos parar de ouvir.</p>
<p>  Baseando no mesmo exemplo anterior do clique no botão. Depois de clicar apenas 1 vez, eu quero remover esse ouvinte de eventos em seguida para o usuário não poder mais clicar no botão. Ficando algo assim:
</p>
</p>

<div class="wp_syntax"><div class="code"><pre class="actionscript3">botao.<span style="color: #004993;">addEventListener</span><span style="color: #000000;">&#40;</span><span style="color: #004993;">MouseEvent</span>.<span style="color: #004993;">CLICK</span>, quandoClicarNoBotao<span style="color: #000000;">&#41;</span>;
&nbsp;
<span style="color: #339966; font-weight: bold;">function</span> quandoClicarNoBotao<span style="color: #000000;">&#40;</span>evento<span style="color: #000000; font-weight: bold;">:</span><span style="color: #004993;">Event</span><span style="color: #000000;">&#41;</span><span style="color: #000000; font-weight: bold;">:</span><span style="color: #0033ff; font-weight: bold;">void</span>
<span style="color: #000000;">&#123;</span>
	<span style="color: #004993;">trace</span><span style="color: #000000;">&#40;</span><span style="color: #990000;">&quot;Você clicou no botao com nome: &quot;</span>, evento.<span style="color: #004993;">target</span>.<span style="color: #004993;">name</span><span style="color: #000000;">&#41;</span>;
	botao.<span style="color: #004993;">removeEventListener</span><span style="color: #000000;">&#40;</span><span style="color: #004993;">MouseEvent</span>.<span style="color: #004993;">CLICK</span>, quandoClicarNoBotao<span style="color: #000000;">&#41;</span>;
<span style="color: #000000;">&#125;</span></pre></div></div>

<p>Esse foi um conceito básico sobre de Evento no AS3, não pare por aqui, o próprio Help do Flash tem bastante informação de como usar e pra que usar eventos. A idéia de utilização é bastante consistente durante  todo o código AS3 pra maioria dos casos. Iremos utilizar muitos esses conceitos de eventos nos próximos artigos que tivermos.</p>
<p>Um exemplo de eventos pra quando a carregar externamente uma imagem, poder fazer algo com ela:<a href="http://www.alvoweb.com/manipulando-carregamento-externo-com-as3/" target="_blank"><br />
Manipulando carregamento externo com AS3</a></p>
<p>Abraço e até a próxima!</p>
<p><a href="http://www.rodrigopixel.com.br" target="_blank">Rodrigo Gonçalves</a><br />
Equipe AlvoWeb</p>
<p><script type="text/javascript"><!--
google_ad_client = "pub-1122471812070813";
google_ad_width = 336;
google_ad_height = 280;
google_ad_format = "336x280_as";
google_ad_type = "text_image";
google_color_border = "fafafa";
google_color_bg = "fafafa";
google_color_link = "003366";
google_color_text = "7d7d7d";
google_color_url = "78b749";

//--></script>
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
</p>
]]></content:encoded>
			<wfw:commentRss>http://www.alvoweb.com/basico-sobre-eventos-no-as3/feed/</wfw:commentRss>
		</item>
		<item>
		<title>HexoSearch - Search Engine dedicado para conteúdo Flash e ActionScript</title>
		<link>http://www.alvoweb.com/hexosearch-search-engine-dedicado-para-conteudo-flash-e-actionscript/</link>
		<comments>http://www.alvoweb.com/hexosearch-search-engine-dedicado-para-conteudo-flash-e-actionscript/#comments</comments>
		<pubDate>Thu, 17 Sep 2009 16:20:21 +0000</pubDate>
		<dc:creator>Rodrigo</dc:creator>
		
		<category><![CDATA[Notícias]]></category>

		<category><![CDATA[Flash]]></category>

		<guid isPermaLink="false">http://www.alvoweb.com/hexosearch-search-engine-dedicado-para-conteudo-flash-e-actionscript/</guid>
		<description><![CDATA[Fala galera tranquilo?
  Acredito que pelo menos uma vez na vida você já usou(ou irá usar) um site de busca pra tentar achar algum conteúdo de Flash/AcstionScript. Seja  pra tirar alguma dúvida, ou talvez curiosidade, ter como referências de estudos e inspiração.
  Agora, já imaginou ter uma Search Engine(buscador online) dedicado exclusivamente [...]]]></description>
			<content:encoded><![CDATA[<p>Fala galera tranquilo?</p>
<p>  Acredito que pelo menos uma vez na vida você já usou(ou irá usar) um site de busca pra tentar achar algum conteúdo de Flash/AcstionScript. Seja  pra tirar alguma dúvida, ou talvez curiosidade, ter como referências de estudos e inspiração.</p>
<p>  Agora, já imaginou ter uma Search Engine(buscador online) dedicado exclusivamente pra conteúdo plataforma Flash, Flex e ActionScript?<br />
  Ou melhor, já pensou em otimizar seu tempo de pesquisa por conteúdo e referências de Flash/AS?</p>
<p>  Coloque um sorriso no rosto amigo(a)!<br />
  Esse projeto existe e chama <a href="http://www.hexosearch.com" target="_blank">HexoSearch (hexosearch.com)</a>.</p>
<p>  A grande sacada do projeto, é otimizar seu tempo de pesquisa. O <a href="http://www.hexosearch.com" target="_blank">HexoSearch</a> é focado em conteúdo na plataforma Flash/Flex/AS, e ainda dá oportunidade de você votar no conteúdo que você achou útil. Com tempo, esse resultado da votação tende a otimizar e agilizar as próximas buscas dentro do <a href="http://www.hexosearch.com" target="_blank">HexoSearch</a>, pois outras pessoas como a mesma dúvidas ou curiosidades que você teve também já procuram(ou irão procurar) algo parecido. Compartilhar informações úteis!</p>
<p>Possui  também ferramentas plugin/add-ons pra instalar no browser pra facilitar sua busca do conteúdo sem precisar entrar no site.</p>
<p>Embora o projeto esteja na versão Beta, a comunidade Flash/AS é ativa e só tende a crescer com melhorias constantes nas novas versões.<br />
Confira atualizações <a href="http://www.hexosearch.com" target="_blank">pelo site HexoSearch</a> ou pelo <a href="http://twitter.com/realhexosearch" target="_blank">Twitter do HexoSearch</a>.</p>
<p>  Vale a pena no mínimo coferir o site <a href="http://www.hexosearch.com" target="_blank">HexoSearch</a>.</p>
<p>  Há! E não esquece do <a href="http://help.adobe.com/en_US/Flash/10.0_UsingFlash/WS816BB12E-70DE-48c7-9C6C-4735B11BC9E9.html" target="_blank">Help do Flash</a>. Antes de tudo, ele também é dedicado pra Flash/ActionScript e só está esperando você apertar a tecla <strong>F1</strong>.</p>
<p>  Abraço e até a próxima.<br />
  <br />
  <a href="http://www.rodrigopixel.com.br" target="_blank">Rodrigo Gonçalves<br />
</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.alvoweb.com/hexosearch-search-engine-dedicado-para-conteudo-flash-e-actionscript/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Livros: Flash e ActionScript</title>
		<link>http://www.alvoweb.com/livros-flash-actionscript/</link>
		<comments>http://www.alvoweb.com/livros-flash-actionscript/#comments</comments>
		<pubDate>Tue, 09 Jun 2009 19:25:29 +0000</pubDate>
		<dc:creator>Rodrigo</dc:creator>
		
		<category><![CDATA[Animação]]></category>

		<category><![CDATA[ActionScript]]></category>

		<category><![CDATA[Flash]]></category>

		<guid isPermaLink="false">http://www.alvoweb.com/livros-flash-actionscript/</guid>
		<description><![CDATA[Fala galera, tranquilo!?
Se você curte(muito mesmo) Flash &#38;  ActionScript e passa dias/mêses/anos trabalhando e estudando sobre isso, ou se você é apenas um &#34;curioso dedicado&#34;. Talvez  esse post seja pra você.
  Passarei algumas referências de livros que são no mínimo interessantes sobre do mundo Flash &#38; ActionScript. Acredito que esse material possa [...]]]></description>
			<content:encoded><![CDATA[<p>Fala galera, tranquilo!?</p>
<p>Se você curte(muito mesmo) Flash &amp;  ActionScript e passa dias/mêses/anos trabalhando e estudando sobre isso, ou se você é apenas um &quot;curioso dedicado&quot;. Talvez  esse post seja pra você.<br />
  Passarei algumas referências de livros que são no mínimo interessantes sobre do mundo Flash &amp; ActionScript. Acredito que esse material possa  ajudar a quem busca estudar por conta própria. Com toda certeza, boas referências nos ajudarão e muito melhorar nossos estudos e  trabalhos.</p>
<p>  Os assuntos dos livros são bem variados e também focados para cada proposta de acordo com cada tema. Tem assunto  pra Developers também Designers, Animador, iniciante ao avançado ou apenas fã do assunto Flash/AS. Alguns dos temas e contextos do livros podem ser semelhantes, mas com  técnicas e ponto de vistas diferentes(ou focos diferentes) em muito deles com base na experiencia de cada autor e de cada público alvo.</p>
<p>  Você encontra assuntos como: animações em timeline, videos pra Flash, criação de jogos em flash, conceitos de  programação orientada objeto(OOP), programação AS3, animação, efeitos e interatividade usando códigos AS, e por aí vai.</p>
<p>Pegue um bom café(vai precisar), uma boa poltrona, e bom estudos!
</p>
<p><BR><br />
  Se você já conhece um pouco sobre ActionScript 2.0 mas no meio aprendizado se deparou com a versão AS3, e gostaria de entender as  principais diferenças entre um código AS2 e AS3 pra fazer migração  sem tanto &quot;trauma/enxaqueca/insonia/tristeza/náuseas/chatice&#8230;&quot;, mesmo assim o autor já assume que você tenha uma boa base em programação AS.  Está aí uma excelente oportunidade pra te convencer sobre o AS3. Um &quot;Fast food&quot;, e o melhor de tudo, não te faz mau algum e ainda te dá mais apetite pra aprender sobre AS3.
</p>
<table width="500" border="0">
<tr>
<td align="left" valign="top" style="border:solid #000000 1px;"><img src="/tutorial/livros/livro1.jpg" alt="Book" width="128" height="156" border="0" align="top"></td>
<td align="left" valign="top"><strong><a href="http://books.google.com.br/books?id=pXMTDFqPIvIC" target="_blank">ActionScript 3.0 Migration Guide:  Making the Move from ActionScript 2.0</a><br />
    </strong>Por Kris Hadlock<br />
Edição: ilustrada<br />
Publicado por Peachpit Press, 2008<br />
ISBN 0321555589, 9780321555588<br />
149 páginas</td>
</tr>
</table>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>Introdução para quem quer começar  bem do básico em AS3 assunto mais simplificado e resumido.
</p>
<table width="550" border="0">
<tr>
<td width="128" align="left" valign="top" style="border:solid #000000 1px;"><a href="http://books.google.com.br/books?id=-LEW5C1jnuMC" target="_blank"><img src="/tutorial/livros/livro2.jpg" alt="book" width="128" height="153" border="0"></a></td>
<td width="412" align="left" valign="top"><strong><a href="http://books.google.com.br/books?id=-LEW5C1jnuMC" target="_blank">Learning ActionScript 3.0: a beginner&#8217;s  guide</a><br />
      </strong>Por Rich Shupe, Zevan Rosser<br />
      Colaborador Zevan Rosser<br />
      Publicado por O&#8217;Reilly, 2007<br />
      ISBN 059652787X, 9780596527877<br />
      363 páginas</td>
</tr>
</table>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>Literalmente um curso/treinamento oficial da Adobe registrado em um livro. Um livro é mais focado em programação AS3 e outro é mais focado na ferramenta Flash CS4. Ótimo complemento pra quem pretende estudar pra tirar certificação Adobe.
</p>
<table width="550" border="0">
<tr>
<td align="left" valign="top" style="border:solid #000000 1px;"><a href="http://books.google.com.br/books?id=ngrD30M5QXgC" target="_blank"><img src="/tutorial/livros/livro3.jpg" alt="Book" width="128" height="158" border="0"></a></td>
<td align="left" valign="top"><strong><a href="http://books.google.com.br/books?id=ngrD30M5QXgC" target="_blank">ActionScript 3.0 for Adobe Flash CS4 Professional</a></strong><br />
Por Chris Florio, Adobe Creative Team<br />
Edição: ilustrada<br />
Publicado por Peachpit Press, 2008<br />
ISBN 0321579216, 9780321579218<br />
367 páginas</td>
</tr>
<tr>
<td width="128" align="left" valign="top" style="border:solid #000000 1px;"><a href="http://books.google.com.br/books?id=Du4XL58JgDsC" target="_blank"><img src="/tutorial/livros/livro4.jpg" alt="Book" width="128" height="159" border="0"></a></td>
<td width="412" align="left" valign="top"><strong><a href="http://books.google.com.br/books?id=ngrD30M5QXgC" target="_blank">Adobe Flash CS4 Professional Classroom in a Book</a></strong><br />
      Por Adobe Creative Team (COR), Russell Chun<br />
      Edição: ilustrada<br />
      Publicado por Peachpit Press, 2008<br />
      ISBN 032157382X, 9780321573827<br />
    355 páginas</td>
</tr>
</table>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>100 técnicas essenciais sobre Flash CS4. Geralmente quem precisa  conhecer o que tem de novo no Flash CS4.
</p>
<table width="550" border="0">
<tr>
<td width="128" align="left" valign="top" style="border:solid #000000 1px;"><a href="http://books.google.com.br/books?id=MCQjPQAACAAJ"><img src="/tutorial/livros/livro5.jpg" alt="book" width="125" height="161" border="0" /></a></td>
<td width="412" align="left" valign="top"><strong><a href="http://books.google.com.br/books?id=MCQjPQAACAAJ" target="_blank">Adobe Flash CS4 Professional How-Tos: 100 Essential Techniques</a></strong><br />
      Por Mark Schaeffer<br />
      Edição: ilustrada<br />
      Publicado por Adobe Press, 2008<br />
      ISBN 0321580044, 9780321580047<br />
    288 páginas</td>
</tr>
</table>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>Pra quem busca algo mais sério, detalhada explicação em ActionScript, esse te dá uma base sólida do essencial que precisa saber em programação  AS3.
</p>
<table width="550" border="0">
<tr>
<td width="128" align="left" valign="top" style="border:solid #000000 1px;"><a href="http://books.google.com.br/books?id=gUHX2fcLKxYC"><img src="/tutorial/livros/livro6.jpg" alt="book" width="128" height="169" border="0" /></a></td>
<td width="412" align="left" valign="top"><strong><a href="http://books.google.com.br/books?id=gUHX2fcLKxYC" target="_blank">Essential ActionScript 3.0</a></strong><br />
Por Colin Moock<br />
Edição: ilustrada<br />
Publicado por O&#8217;Reilly, 2007<br />
ISBN 0596526946, 9780596526948<br />
911 páginas</td>
</tr>
</table>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>Guia de referência AS3. Complementos do livros: <a href="http://books.google.com.br/books?id=gUHX2fcLKxYC" target="_blank">Essential AS3</a>. E outro sobre técnicas de SEO pra Flash.
</p>
<table width="550" border="0">
<tr>
<td align="left" valign="top" style="border:solid #000000 1px;"><a href="http://books.google.com.br/books?id=syHmFLMd-k4C"><img src="/tutorial/livros/livro7.jpg" alt="book" width="128" height="188" border="0" /></a></td>
<td align="left" valign="top"><strong><a href="http://books.google.com.br/books?id=syHmFLMd-k4C" target="_blank">The ActionScript 3.0 Quick Reference Guide: For Developers and Designers Using Flash CS4 Professional</a></strong><br />
Por David Stiller, Darren Richardson, Jen Dehaan, Rich Shupe<br />
Edição: ilustrada<br />
Publicado por O&#8217;Reilly, 2008<br />
ISBN 0596517351, 9780596517359<br />
491 páginas</td>
</tr>
<tr>
<td align="left" valign="top" style="border:solid #000000 1px;"><a href="http://books.google.com.br/books?id=Qlia0Bq-ZmoC" target="_blank"><img src="/tutorial/livros/livro8.jpg" alt="book" width="128" height="172" border="0"></a></td>
<td align="left" valign="top"><strong><a href="http://books.google.com.br/books?id=Qlia0Bq-ZmoC" target="_blank">ActionScript 3.0 cookbook</a></strong><br />
Por Joey Lott, Darron Schall, Keith Peters<br />
Edição: ilustrada<br />
Publicado por O&#8217;Reilly, 2006<br />
ISBN 0596526954, 9780596526955<br />
556 páginas</td>
</tr>
<tr>
<td width="128" align="left" valign="top" style="border:solid #000000 1px;"><a href="http://books.google.com.br/books?id=OLlh6tYz8CcC" target="_blank"><img src="/tutorial/livros/livro32.jpg" alt="book" width="128" height="172" border="0"></a></td>
<td width="412" align="left" valign="top"><strong><a href="http://books.google.com.br/books?id=OLlh6tYz8CcC" target="_blank">Search Engine Optimization for Flash: Best Practices for Using Flash on the Web</a></strong><br />
      Por Todd Perkins<br />
      Editora	O&#8217;Reilly Media, Incorporated, 2009<br />
      ISBN 0596522525, 9780596522520<br />
   278 páginas</td>
</tr>
</table>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>Esses livros focados mais em conceitos, técnicas e práticas de Programação-Orientada-Objeto(OOP) e Design Patterns em AS3.
</p>
<table width="550" border="0">
<tr>
<td align="left" valign="top" style="border:solid #000000 1px;"><a href="http://books.google.com.br/books?id=lgk0Q7pMmLYC"><img src="/tutorial/livros/livro9.jpg" alt="book" width="128" height="169" border="0" /></a></td>
<td align="left" valign="top"><strong><a href="http://books.google.com.br/books?id=lgk0Q7pMmLYC" target="_blank">ActionScript 3.0 Design Patterns: Object Oriented Programming Techniques</a></strong><br />
      Por William B. Sanders, Chandima Cumaranatunge<br />
      Edição: ilustrada<br />
      Publicado por O&#8217;Reilly, 2007<br />
      ISBN 0596528469, 9780596528461<br />
    509 páginas</td>
</tr>
<tr>
<td align="left" valign="top" style="border:solid #000000 1px;"><a href="http://books.google.com.br/books?id=DT7INNE3ui8C&#038;dq"><img src="/tutorial/livros/livro10.jpg" alt="book" width="128" height="168" border="0"></a></td>
<td align="left" valign="top"><strong><a href="http://books.google.com.br/books?id=DT7INNE3ui8C&#038;dq" target="_blank">Advanced ActionScript 3 with Design Patterns</a></strong><br />
      Por 	Joey Lott, Danny Patterson<br />
      Edição:	ilustrada<br />
      Editora:	Adobe Press, 2006<br />
      ISBN	0321426568, 9780321426567<br />
    286 páginas</td>
</tr>
<tr>
<td align="left" valign="top" style="border:solid #000000 1px;"><a href="http://books.google.com.br/books?id=WiedhiREmZkC"><img src="/tutorial/livros/livro11.jpg" alt="book" width="128" height="154" border="0"></a></td>
<td align="left" valign="top"><strong><a href="http://books.google.com.br/books?id=WiedhiREmZkC" target="_blank">Object-oriented Actionscript 3.0</a></strong><br />
Por Peter Elst, Sas Jacobs, Todd Yard<br />
Edição: ilustrada<br />
Publicado por Apress, 2007<br />
ISBN 1590598458, 9781590598450<br />
615 páginas</td>
</tr>
<tr>
<td width="128" align="left" valign="top" style="border:solid #000000 1px;"><a href="http://books.google.com.br/books?id=B4aB0hJsNMoC"><a href="http://books.google.com.br/books?id=B4aB0hJsNMoC"><img src="/tutorial/livros/livro33.jpg" alt="book" width="128" height="154" border="0"></a></a></td>
<td width="412" align="left" valign="top"><strong><a href="http://books.google.com.br/books?id=B4aB0hJsNMoC" target="_blank">Foundation ActionScript 3.0 with Flash CS3 and Flex</a></strong><br />
      Por Steve Webster, Todd Yard, Sean McSharry<br />
      Edição	ilustrada<br />
      Editora	Friends of ED, 2007<br />
      ISBN	1590598156, 9781590598153<br />
    450 páginas</td>
</tr>
</table>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>Livros para quem busca criar aplicativos com Adobe AIR.
</p>
<table width="550" border="0">
<tr>
<td align="left" valign="top" style="border:solid #000000 1px;"><a href="http://books.google.com.br/books?id=CRtvNgAACAAJ" target="_blank"><img src="/tutorial/livros/livro12.jpg" alt="book" width="128" height="168" border="0"></a></td>
<td align="left" valign="top"><strong><a href="http://books.google.com.br/books?id=CRtvNgAACAAJ" target="_blank">Adobe AIR: A Guide for Developers</a></strong><br />
Por Mark Blair, Andrew Muller, Andrew Spaulding<br />
Edição: revisada<br />
Publicado por O&#8217;Reilly Media, Inc., 2009<br />
ISBN 0596521766, 9780596521769<br />
272 páginas</td>
</tr>
<tr>
<td align="left" valign="top" style="border:solid #000000 1px;"><a href="http://books.google.com.br/books?id=-ygfRZ2akQEC" target="_blank"><img src="/tutorial/livros/livro13.jpg" alt="book" width="128" height="168" border="0"></a></td>
<td align="left" valign="top"><strong><a href="http://books.google.com.br/books?id=-ygfRZ2akQEC" target="_blank">Adobe AIR 1.5 Cookbook: Solutions and Examples for Rich Internet Application Developers</a></strong><br />
Por David Tucker, Marco Casario, Koen De Weggheleire, Rich Tretola<br />
Edição: ilustrada<br />
Publicado por O&#8217;Reilly Media, Incorporated, 2008<br />
ISBN 0596522509, 9780596522506<br />
446 páginas</td>
</tr>
<tr>
<td align="left" valign="top" style="border:solid #000000 1px;"><a href="http://books.google.com.br/books?id=Hlx7WFYxkJ4C&#038;dq" target="_blank"><img src="/tutorial/livros/livro14.jpg" alt="book" width="128" height="168" border="0"></a></td>
<td align="left" valign="top"><strong><a href="http://books.google.com.br/books?id=Hlx7WFYxkJ4C&#038;dq" target="_blank">Adobe AIR Bible</a></strong><br />
Por Benjamin Gorton, Peter Elst, Ryan Taylor, Jeff Yamada<br />
Edição:	ilustrada<br />
Publicado por	John Wiley and Sons, 2008<br />
ISBN	0470284684, 9780470284681<br />
480 páginas</td>
</tr>
<tr>
<td width="128" align="left" valign="top" style="border:solid #000000 1px;"><a href="http://books.google.com.br/books?id=2LHDPAAACAAJ" target="_blank"><img src="/tutorial/livros/livro27.jpg" alt="book" width="128" height="168" border="0"></a></td>
<td width="412" align="left" valign="top"><a href="http://books.google.com.br/books?id=2LHDPAAACAAJ" target="_blank"><strong>Adobe AIR in Action</strong></a><br />
      Por	Joseph Lott, Kathryn Rotondo, Samuel Ahn, Ashley Atkins<br />
      Edição	ilustrada<br />
      Editora	Manning, 2008<br />
      ISBN	1933988487, 9781933988481<br />
    317 páginas</td>
</tr>
</table>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>Para quem é mais do tipo &quot;hardcore&quot; e gosta de animação e efeitos   usando  apenas código AS3.
</p>
<table width="550" border="0">
<tr>
<td align="left" valign="top" style="border:solid #000000 1px;"><a href="http://books.google.com.br/books?id=nzyu5TytMEUC" target="_blank"><img src="/tutorial/livros/livro15.jpg" alt="Book" width="128" height="154" border="0"></a></td>
<td align="left" valign="top"><strong><a href="http://books.google.com.br/books?id=nzyu5TytMEUC" target="_blank">Foundation ActionScript 3.0 animation: making things move!</a><br />
    </strong>Por Keith Peters<br />
Edição: ilustrada<br />
Publicado por Apress, 2007<br />
ISBN 1590597915, 9781590597910<br />
542 páginas</td>
</tr>
<tr>
<td align="left" valign="top" style="border:solid #000000 1px;"><a href="http://books.google.com.br/books?id=QuwsOHYA0p4C" target="_blank"><img src="/tutorial/livros/livro16.jpg" alt="Book" width="128" height="156" border="0"></a></td>
<td align="left" valign="top"><strong><a href="http://books.google.com.br/books?id=QuwsOHYA0p4C" target="_blank">AdvancED ActionScript 3.0 Animation</a></strong><br />
Por Keith Peters<br />
Publicado por Friends of ED, 2008<br />
ISBN 1430216085, 9781430216087<br />
472 páginas</td>
</tr>
<tr>
<td width="128" align="left" valign="top" style="border:solid #000000 1px;"><a href="http://books.google.com.br/books?id=lXqBDRKsA4MC" target="_blank"><img src="/tutorial/livros/livro31.jpg" alt="Book" width="128" height="156" border="0"></a></td>
<td width="412" align="left" valign="top"><strong><a href="http://books.google.com.br/books?id=lXqBDRKsA4MC" target="_blank">Foundation ActionScript 3.0 Image Effects</a></strong><br />
      Por Todd Yard<br />
      Editora	Friends of Ed Series, 2009<br />
      ISBN	1430218711, 9781430218715<br />
    700 páginas</td>
</tr>
</table>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>Programação AS3 com PHP. Extremamente útil pra quem precisa conhecer como interagir Flash/AS3 com PHP e servidores.</p>
<table width="550" border="0">
<tr>
<td width="128" align="left" valign="top" style="border:solid #000000 1px;"><a href="http://books.google.com.br/books?id=Q5u7HgAACAAJ&#038;dq" target="_blank"><img src="/tutorial/livros/livro17.jpg" alt="book" width="128" height="168" border="0"></a></td>
<td width="412" align="left" valign="top"><strong><a href="http://books.google.com.br/books?id=Q5u7HgAACAAJ&#038;dq" target="_blank">Flash and PHP Bible</a></strong><br />
      Por Matthew Keefe<br />
      Edição:	ilustrada<br />
   	 Publicado por John Wiley &amp; Sons, Incorporated, 2008<br />
      ISBN	0470258241, 9780470258248<br />
    508 páginas</td>
</tr>
</table>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p> Os 2 primeiros livros, falam uma boa introdução e técnicas sobre produção de players de videos usando Flash CS3/CS4 e AS3, e como exportar seus vídeos de maniera mais apropriada pra projetos Web.  O 3º livro, fala sobre interagração e técnicas dos softwares Adobe After Effetcs CS4 e Flash CS4.</p>
<table width="550" border="0">
<tr>
<td align="left" valign="top" style="border:solid #000000 1px;"><a href="http://books.google.com.br/books?id=VFf8DeJpx0EC" target="_blank"><img src="/tutorial/livros/livro28.jpg" alt="Book" width="128" height="166" border="0"></a></td>
<td align="left" valign="top"><strong><a href="http://books.google.com.br/books?id=VFf8DeJpx0EC" target="_blank">Video with Adobe Flash CS4 Professional Studio Techniques Studio Techniques</a></strong><br />
      Por	Robert Reinhardt<br />
      Editora	Adobe Press, 2009<br />
      ISBN	032160623X, 9780321606235<br />
    376 páginas</td>
</tr>
<tr>
<td align="left" valign="top" style="border:solid #000000 1px;"><a href="http://books.google.com.br/books?id=29egGQAACAAJ&#038;dq=producing+flash+cs3+video" target="_blank"><img src="/tutorial/livros/livro18.jpg" alt="Book" width="128" height="166" border="0"></a></td>
<td align="left" valign="top"><strong><a href="http://books.google.com.br/books?id=29egGQAACAAJ&#038;dq=producing+flash+cs3+video" target="_blank">Producing Flash CS3 Video: Techniques for Video Pros and Web Designers</a></strong><br />
Por John Skidgel<br />
Edição: ilustrada<br />
Publicado por Elsevier Science &amp; Technology Books, 2007<br />
ISBN 0240809106, 9780240809106<br />
243 páginas</td>
</tr>
<tr>
<td width="128" align="left" valign="top" style="border:solid #000000 1px;"><a href="http://books.google.com.br/books?id=IqbV98CZqqAC" target="_blank"><img src="/tutorial/livros/livro29.jpg" alt="Book" width="128" height="166" border="0"></a></td>
<td width="412" align="left" valign="top"><strong><a href="http://books.google.com.br/books?id=IqbV98CZqqAC" target="_blank">After Effects for Flash, Flash for After Effects: Dynamic Animation and Video with Adobe After Effects CS4 and Adobe Flash CS4 Professional</a></strong><br />
      Por Richard Harrington, Marcus Geduld<br />
      Edição	ilustrada<br />
      Editora	Adobe Press, 2009<br />
      ISBN	0321606078, 9780321606075<br />
    360 páginas</td>
</tr>
</table>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>Dobradinha feita pelo animador expert em Flash <a href="http://www.mudbubble.com/" target="_blank">Chris Georgenes</a>. Pra quem gosta de animar em timeline e quer melhorar o fluxo de trabalho em animação em Flash, esses 2 livros,  apresentam dicas e truques valiosos que realmente mudam alguns(ou todos) seus conceitos sobre animação em timeline. O foco do autor é otimizar seu tempo e melhorar suas técnicas no fluxo de trabalho com situações e exemplos do dia-a-dia de um animador Flash. Um livro utiliza a versão Flash CS3 e outro versão Flash CS4. Uma das referências mais que obrigatória pra quem deseja animar em Flash timeline.</p>
<table width="550" border="0">
<tr>
<td align="left" valign="top" style="border:solid #000000 1px;"><a href="http://books.google.com.br/books?id=5f56isOR7yIC&#038;dq=cheat+adobe+flash" target="_blank"><img src="/tutorial/livros/livro19.jpg" alt="Book" width="128" height="167" border="0"></a></td>
<td align="left" valign="top"><strong><a href="http://books.google.com.br/books?id=29egGQAACAAJ&#038;dq=producing+flash+cs3+video" target="_blank">How to Cheat in Adobe Flash CS4: The Art of Design and Animation</a></strong></p>
<p>      Por Chris Georgenes<br />
      Edição: ilustrada<br />
      Publicado por Elsevier Science Ltd, 2009<br />
      ISBN 0240521315, 9780240521312<br />
    336 páginas</td>
</tr>
<tr>
<td width="128" align="left" valign="top" style="border:solid #000000 1px;"><a href="http://books.google.com.br/books?id=pKWAo6x0CMUC&#038;dq=cheat+adobe+flash+cs3" target="_blank"><img src="/tutorial/livros/livro20.jpg" alt="Book" width="128" height="167" border="0"></a></td>
<td width="412" align="left" valign="top"><strong><a href="http://books.google.com.br/books?id=pKWAo6x0CMUC&#038;dq=cheat+adobe+flash+cs3" target="_blank">How to Cheat in Adobe Flash CS3: The Art of Design and Animation</a></strong><br />
      Por Chris Georgenes<br />
      Edição: ilustrada<br />
      Publicado por Focal, 2007<br />
      ISBN 0240520580, 9780240520582<br />
    272 páginas</td>
</tr>
</table>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>Já pensou como são feito alguns jogos em Flash? Pra quem quer conhecer conceitos e fundamentos de desenvolvimento em jogos com Flash CS3/CS4 e AS3. Esses livros mostram alguns exemplos com dificuldade progressivas e estudos de casos mais detalhados a cada capítulo, além sobre discutir técnicas e fundamentos importantes sobre Flash e AS3.</p>
<table width="550" border="0">
<tr>
<td align="left" valign="top" style="border:solid #000000 1px;"><a href="http://books.google.com.br/books?id=LVb1GAAACAAJ" target="_blank"><img src="/tutorial/livros/livro30.jpg" alt="Book" width="128" height="168" border="0" /></a></td>
<td align="left" valign="top"><strong><a href="http://books.google.com.br/books?id=LVb1GAAACAAJ" target="_blank">Foundation Game Design with Flash</a></strong><br />
      Por Rex Van Der Spuy<br />
      Editora	Friends of Ed Series, 2009<br />
      wISBN	1430218215, 9781430218210<br />
    586 páginas</td>
</tr>
<tr>
<td width="128" align="left" valign="top" style="border:solid #000000 1px;"><a href="http://books.google.com.br/books?id=LVb1GAAACAAJ" target="_blank"><img src="/tutorial/livros/livro21.jpg" alt="Book" width="128" height="168" border="0" /></a></td>
<td width="412" align="left" valign="top"><strong><a href="http://books.google.com.br/books?id=LVb1GAAACAAJ" target="_blank">ActionScript 3.0 Game Programming University</a></strong><br />
      Por Gary Rosenzweig<br />
      Publicado por QUE CORP, 2007<br />
      ISBN 0789737027, 9780789737021<br />
      440 páginas</td>
</tr>
</table>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>Pra quem busca uma ótima e didática introdução sobre jogos em Flash. Um dos raros livros traduzido (e muito bem traduzido por sinal) em Português sobre esse tema. Mesmo não sendo versões atuais de Actionscript e Flash, os conceitos e técnicas abordadas no livro são interessantes e práticos.<br />
  O autor é detalhista e usa uma linguagem de fácil entendimento. A cada capitulo tem um exemplo de jogo explicando seu conceito, e introduzindo assuntos importantes sobre AS. A dificuldade também é progressiva a cada capítulo.  O Autor do livro já assume que você tenha conhecimentos em programação AS2. Esse livro não te ensina como programar em AS, mas sim, mostra como criar jogos usando versão Flash 8 e AS2.
</p>
<table width="550" border="0">
<tr>
<td width="128" align="left" valign="top" style="border:solid #000000 1px;"><a href="http://www.thomsonlearning.com.br/detalheLivro.do?id=105225" target="_blank"><img src="/tutorial/livros/livro22.jpg" alt="Book" width="128" height="158" border="0"></a></td>
<td width="412" align="left" valign="top"><strong><a href="http://www.thomsonlearning.com.br/detalheLivro.do?id=105225" target="_blank">DESENVOLVIMENTO DE GAMES COM MACROMEDIA® FLASH® PROFESSIONAL 8 - Série Profissional</a></strong><br />
      Por Glen Rhodes<br />
      Publicado por Cengage Learning, 2008<br />
      ISBN 8522106169, ISBN13:   9788522106165<br />
    520 páginas</td>
</tr>
</table>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>Para quem procura aprender código Actionscript 2 com Flash 8. O livro ensina ótimos conceitos e programação e boas práticas, intercalando com exercícios voltado para criação de jogos e interatividade.</p>
<table width="550" border="0">
<tr>
<td width="128" align="left" valign="top" style="border:solid #000000 1px;"><a href="http://books.google.com.br/books?id=G4h9HQAACAAJ&#038;dq" target="_blank"><img src="/tutorial/livros/livro23.jpg" alt="book" width="125" height="161" border="0"></a></td>
<td width="412" align="left" valign="top"><strong><a href="http://books.google.com.br/books?id=G4h9HQAACAAJ&#038;dq" target="_blank">Macromedia Flash 8 ActionScript: Training from the Source</a></strong><br />
      Por Jobe Makar, Derek Franklin, Danny Patterson, Erik Bianchi<br />
      Editor	Adobe Press, 2006<br />
      ISBN	0321336194, 9780321336194<br />
    516 páginas</td>
</tr>
</table>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>Esse é criação de games Flash para Nitendo Wii. O autor explica em plataforma utilizando Flash CS3 e ActionScript 2. É interessante pra quem busca diferenciar o uso do Flash &amp; AS2 e também conhecer técnicas de interatividade necessárias em games.</p>
<table width="550" border="0">
<tr>
<td width="128" align="left" valign="top" style="border:solid #000000 1px;"><a href="http://books.google.com.br/books?id=Q1AQZ0oI9BcC" target="_blank"><img src="/tutorial/livros/livro24.jpg" alt="Book" width="128" height="159" border="0" /></a></td>
<td width="412" align="left" valign="top"><strong><a href="http://books.google.com.br/books?id=Q1AQZ0oI9BcC" target="_blank">Nintendo Wii Flash Game Creator&#8217;s Guide: Design, Develop, and Share Your Games Online</a></strong><br />
      Por Todd Perkins<br />
      Edição: ilustrada<br />
      Publicado por McGraw-Hill Professional, 2008<br />
      ISBN 0071545255, 9780071545259<br />
    315 páginas</td>
</tr>
</table>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>Conceitos de Jogos e simulação de 3D com Flash. Fala de assuntos e técnicas  que podem ser interessante conhecer sobre esse tema.
</p>
<table width="550" border="0">
<tr>
<td width="128" align="left" valign="top" style="border:solid #000000 1px;"><a href="http://books.google.com.br/books?id=uK0kfAlMb4EC" target="_blank"><img src="/tutorial/livros/livro25.jpg" alt="Book" width="128" height="158" border="0"></a></td>
<td width="412" align="left" valign="top"><strong><a href="http://books.google.com.br/books?id=uK0kfAlMb4EC" target="_blank">Flash 3D: animation, interactivity, and games</a></strong><br />
      Por Jim Ver Hague, Chris Jackson<br />
      Edição: ilustrada<br />
      Publicado por Focal Press, 2006<br />
      ISBN 0240808789, 9780240808789<br />
      402 páginas</td>
</tr>
</table>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>Outro livro recomendado conhecer pra quem quer desenvolver games em Flash. Falam de conceitos considerados úteis conhecer.</p>
<table width="550" border="0">
<tr>
<td width="128" align="left" valign="top" style="border:solid #000000 1px;"><a href="http://books.google.com.br/books?id=sdfWzPrNx2gC&#038;dq" target="_blank"><img src="/tutorial/livros/livro26.jpg" alt="Book" width="128" height="158" border="0"></a></td>
<td width="412" align="left" valign="top"><strong><a href="http://books.google.com.br/books?id=sdfWzPrNx2gC&#038;dq" target="_blank">Título	Macromedia Flash MX game design demystified: the official guide to creating games with Flash</a></strong><br />
      Por	Jobe Makar<br />
      Edição	ilustrada<br />
      Editor	Macromedia Press, 2003<br />
      ISBN	0201770210, 9780201770216<br />
      626 páginas</td>
</tr>
</table>
<p>&nbsp;</p>
<p>
  O <strong>Help Flash</strong> é uma ótima documentação e referência,  pra tirar dúvidas sobre um determinado código, e boa parte e base dos códigos que usamos estão explicado lá, referente a cada Classe, suas propriedades, métodos e eventos, etc.<br />
  A <a href="http://www.adobe.com">Adobe</a> disponibiliza um guia em Português sobre o Actionscript 3.0.<br />
  <a href="http://help.adobe.com/pt_BR/ActionScript/3.0_ProgrammingAS3/flash_as3_programming.pdf">Arquivo em PDF( 10M ) para download.</a></p>
<p>Poderá conferir também diretamente pela página da Adobe:<br />
<a href="http://help.adobe.com/pt_BR/ActionScript/3.0_ProgrammingAS3/">Página de programação ActionScript 3.0 da Adobe</a></p>
<p>E no site da <a href="http://www.adobe.com/br/communities/" target="_blank">Adobe-Communities</a>, existe comunidades tanto pra <a href="http://www.adobe.com/devnet/" target="_blank">Desenvolvedores</a> quanto pra <a href="http://www.adobe.com/designcenter/" target="_blank">Designers</a>.<br />
Vale a pena conferir!</p>
<p>Sugestões finais:</p>
<p> Não pare por aqui, não fique apenas em uma única  referência de estudos, busque mais fontes(internet, livros, fóruns, sites específicos, profissionais e estudantes). Mesmo que as vezes seja temas parecidos e as vezes até &quot;redundante&quot; sobre algum assunto, cada um dos autores tem diferentes experências e habilidades sobre o assunto abordado, usam manieras diferentes também pra comunicar essas mesmas informações(ponto de vista diferentes), que certamente você se indentificará com algum deles, sentirá mais confortável, mais motivado pra estudar e melhor poderá te dar oportunidade pra criar o SEU entendimento o SEU ponto de vista pra poder começar(ou continuar) a SUA jornada. Se puder, tente dar um foco nos estudos que você tem mais facilidade, vá no seu ritmo, e aos poucos vai pegando informações/conhecimentos de outras áreas que te ajudarão melhorar ainda mais a sua especialização.</p>
<p>Se você conhecer boas referências, nos informe! Bons estudos!</p>
<p>
  Grande abraço e até a próxima.</p>
<p>  <a href="http://www.rodrigopixel.com.br">Rodrigo Gonçalves</a><br />
  Equipe AlvoWeb
</p>
<p><script type="text/javascript"><!--
google_ad_client = "pub-1122471812070813";
google_ad_width = 336;
google_ad_height = 280;
google_ad_format = "336x280_as";
google_ad_type = "text_image";
google_color_border = "fafafa";
google_color_bg = "fafafa";
google_color_link = "003366";
google_color_text = "7d7d7d";
google_color_url = "78b749";

//--></script>
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
</p>
]]></content:encoded>
			<wfw:commentRss>http://www.alvoweb.com/livros-flash-actionscript/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Desabilitar objetos interativos com enabled e mouseEnabled AS3</title>
		<link>http://www.alvoweb.com/desabilitar-objetos-interativos-com-enabled-e-mouseenabled-as3/</link>
		<comments>http://www.alvoweb.com/desabilitar-objetos-interativos-com-enabled-e-mouseenabled-as3/#comments</comments>
		<pubDate>Mon, 12 Jan 2009 13:45:17 +0000</pubDate>
		<dc:creator>Rodrigo</dc:creator>
		
		<category><![CDATA[ActionScript]]></category>

		<guid isPermaLink="false">http://www.alvoweb.com/desabilitar-objetos-interativos-com-enabled-e-mouseenabled-as3/</guid>
		<description><![CDATA[]]></description>
			<content:encoded><![CDATA[]]></content:encoded>
			<wfw:commentRss>http://www.alvoweb.com/desabilitar-objetos-interativos-com-enabled-e-mouseenabled-as3/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Carregar imagem externa com MovieClipLoader</title>
		<link>http://www.alvoweb.com/carregar-imagem-externa-com-moviecliploader/</link>
		<comments>http://www.alvoweb.com/carregar-imagem-externa-com-moviecliploader/#comments</comments>
		<pubDate>Thu, 04 Dec 2008 04:08:51 +0000</pubDate>
		<dc:creator>Tiago Braga</dc:creator>
		
		<category><![CDATA[ActionScript]]></category>

		<guid isPermaLink="false">http://www.alvoweb.com/carregar-imagem-externa-com-moviecliploader/</guid>
		<description><![CDATA[


 Autor: Tiago Braga (Xavrim)
Flash 8, CS3 ou CS4
  Classe: MovieClipLoader
  Versão AS: Actionscript 2.0
  Dificuldade: Básico/Intermediário
  
  Obs: Para um bom aproveitamento é interessante ter conhecimento básico de  Actionscript e lógica de programação.
    
  E aí galera, tudo  tranqüilo?
  Bom, primeiro  [...]]]></description>
			<content:encoded><![CDATA[<style type="text/css">
<!--
.style1 {
	color: #006699;
	font-weight: bold;
}
-->
</style>
<p> <strong>Autor:</strong> Tiago Braga (Xavrim)</p>
<p><strong>Flash 8, CS3 ou CS4<br />
  Classe: </strong>MovieClipLoader<strong><br />
  Versão AS: </strong>Actionscript 2.0<strong><br />
  Dificuldade: </strong>Básico/Intermediário</p>
<p>  <strong><br />
  Obs:</strong> Para um bom aproveitamento é interessante ter conhecimento básico de  Actionscript e lógica de programação.<strong><br />
    </strong><br />
  E aí galera, tudo  tranqüilo?<br />
  Bom, primeiro  agradeço ao Rodrigo Gonçalves e a equipe AlvoWeb por deixarem colaborar com esta comunidade.<br />
  Segundo,  estarei abordando um assunto de muita serventia para os &quot;flasheiros&quot;, que é  carregar um arquivo externo, como uma imagem (JPG, PNG, GIF) ou swf.</p>
<p>  Neste primeiro  tutorial, estarei falando sobre a classe <strong>MovieClipLoader</strong> do AS2 e porque utilizar ela  em vez do famoso método <strong>loadMovie()</strong>, e em breve, estaremos fazendo um exemplo em outros tutoriais montando um &quot;site&quot; inteiro com a classe  MovieClipLoader.</p>
<p>No final deste tutorial temos um arquivo disponível deste exemplo para download.</p>
<p>Mãos a obra,  melhor,  dedão no código&#8230; </p>
<p>Crie um novo arquivo Flash  com <strong>500&#215;400</strong>.<br />
Crie duas camadas. A  primeira com o nome de <strong>arquivo_externo</strong> e a outra com o nome de <strong>AS</strong>. <br />
Bloqueie a  camada <strong>AS</strong> e logo em seguida <strong>criem um Movie Clip vazio</strong>. Como mostra na imgem 1 a seguir.</p>
<p><img width="157" height="156" src="http://www.alvoweb.com/tutorial/img/mcloader/img1.gif" alt="movieclip_vazio.png"><br />
  <strong>Imagem 1:</strong> Menu, <strong>Insert &gt; New Symbol</strong> (Ctrl + F8), criando um Movie Clip vazio.</p>
<p>  Na próxima janela (Create New Symbol),  coloque o nome do Movie Clip de alvo (Em nível de organização da library).<br />
<img width="339" height="125" src="http://www.alvoweb.com/tutorial/img/mcloader/img2.gif" alt="nome_mc_vazio.png"><br />
<strong>Imagem 2:</strong> Janela Create New Symbol, configurando símbolo para tipo<em>(type)</em> <strong>MovieClip</strong> e com nome <strong>alvo</strong>.
</p>
<p>Você entrará no Movie  Clip Alvo. Volte ao nível raiz (SCENE). Abra a library e localize o Movie Clip  alvo. Arraste ele para o palco e logo em seguida posicione na posição x=0 e  y=0.</p>
<p><img width="189" height="106" src="http://www.alvoweb.com/tutorial/img/mcloader/img3.gif" alt="movieclip_x_y.png"><br />
  <strong>Imagem 3:</strong> Alvo vazio no stage.</p>
<p>Selecione o Movie  Clip vazio. Abra o painel <strong>properties</strong>(Ctrl + F3) e no campo <strong>&lt;Instancie Name&gt;</strong>, coloque o  nome de <strong>alvo_arquivo</strong>.<br />
<img width="350" height="76" src="http://www.alvoweb.com/tutorial/img/mcloader/img4.gif" alt="nome_mc.png"><br />
  <strong>Imagem 4:</strong> Painel Properties, inserindo nome de intância no Movie Clip vazio.
</p>
<p>Agora que temos toda  está estrutura feita, clique no <strong>frame 1</strong> da camada <strong>AS</strong>, abra o painel <strong>Actions  </strong>(F9) e insira o seguinte código:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
</pre></td><td class="code"><pre class="actionscript"><span style="color: #000000; font-weight: bold;">var</span> objOuvinte:<span style="color: #0066CC;">Object</span> = <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #0066CC;">Object</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #000000; font-weight: bold;">var</span> objMCLoader:<span style="color: #0066CC;">MovieClipLoader</span> = <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #0066CC;">MovieClipLoader</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
objMCLoader.<span style="color: #0066CC;">loadClip</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;imagem/imagem.jpg&quot;</span>,alvo_arquivo<span style="color: #66cc66;">&#41;</span>;
objMCLoader.<span style="color: #0066CC;">addListener</span><span style="color: #66cc66;">&#40;</span>objOuvinte<span style="color: #66cc66;">&#41;</span>;</pre></td></tr></table></div>

<p>
<img width="445" height="101" src="http://www.alvoweb.com/tutorial/img/mcloader/img5.gif" alt="código.jpg"><br />
<strong>Imagem 5:</strong> Painel Actions, Inserindo código no <strong>frame 1</strong> na camada <strong>AS</strong>.</p>
<p>Salve seu arquivo  dentro de uma pasta.<br />
Ex.: <br />
- Nome pasta: <strong>Tutorial_mcLoader<br />
</strong>– Nome do  arquivo: <strong>MovieClipLoader</strong>. <br />
Dentro da pasta <strong>Tutorial_mcLoader</strong>, crie outra  pasta chamada <strong>imagem</strong>. Seu diretório terá está ordem:</p>
<p><strong class="style1">Tutorial_mcLoader </strong>&lt;- Pasta.<br />
  <strong class="style1">Arquivo_fla.fla</strong> &lt;- Arquivo  salvo dentro da pasta.<br />
  <strong class="style1">Arquivo_fla.swf</strong> &lt;- Arquivo  que será criado quando você apertar <strong>CTRL+ENTER</strong>.<br />
  <strong class="style1">imagem </strong>&lt;- Pasta<strong>. </strong><br />
  <strong class="style1">imagem.jpg</strong> &lt;- uma imagem que está dentro da pasta <strong>imagem</strong>.</p>
<p><strong>Execute o projeto -&gt; CTRL + ENTER</strong></p>
<p><span class="style1">Linha 1: </span>Objeto  do tipo genérico que irá executar os eventos da classe MovieCLipLoader.<br />
    <strong class="style1">Linha 2: </strong>Objeto  do tipo MovieClipLoader, criado para acessar os métodos e propriedades da  classe.<br />
    <strong class="style1">Linha 3: </strong>Está  linha é o que esperamos fazer, carregar a imagem.<br />
    <strong>Obs.: </strong>Meu  arquivo <strong>*.fla</strong> está salvo na mesma pasta da pasta imagem (Pasta: <strong>Tutorial_mcLoader</strong>).</p>
<p>    <strong class="style1">Linha 4: </strong>addListener  do objeto objMCLoader é o objeto genérico (objOuvinte). Mais detalhes continue  o tutorial.<br />
Quando executado o  arquivo, aparece à imagem, tudo tranqüilo até ai.  Aí você me pergunta. Por que você fez isso  tudo se com loadMovie eu só preciso fazer isso <strong>alvo_arquivo.loadMovie(&quot;imagem/goku.jpg&quot;,this);</strong>?  Respondo-te fazendo uma pergunta. Quero agora que apareça aquela famosa barra  de carregando ou até mesmo uma caixinha aparecendo à porcentagem. Como faço  isso? Aí que vem a grande vantagem. Com a classe MovieClipLoader, além de ser  mais organizado, não vou precisar ficar calculando muito, com alguns passos  irei executar aquilo que quero.</p>
<p>Então vamos lá, faça  aparecer a porcentagem! Então tá, vou fazer agora&#8230;</p>
<p><img width="597" height="167" src="http://www.alvoweb.com/tutorial/img/mcloader/img6.gif" alt="código2.jpg"><br />
    <strong>Imagem 5:</strong> Painel Actions, inserindo código no <strong>frame 1</strong> na camada <strong>AS</strong>.</p>
<p><strong class="style1">A linha 9 que era linha 4: </strong>Toda vez que iniciar um carregamento, o evento onLoadProgress será  executado. Na frente do nome <strong>onLoadProgress</strong> está assim: <strong>objOuvinte.onLoadProgress</strong>,  então podemos concluir que toda vez que carregamos uma imagem, o objeto <strong>MovieClipLoader </strong>irá executar <strong>onLoadProgress</strong>, pois adicionamos o objeto genérico (<strong>objOuvinte</strong>)  como ouvinte. </p>
<p><span class="style1"><strong>Linha 4 e 5: </strong></span>No  evento <strong>onLoadProgress</strong> foi atribuído uma função. Está função tem 3 parâmetros.<br />
  <strong>- MC:</strong> que é seu Movie Clip vazio.<br />
  <strong>- btLoader:</strong> é o total de bytes que foram  carregados até o momentos.<br />
  <strong>-<br />
btTotal:</strong> é o total de bytes que seu arquivo tem.</p>
<p>O código completo deste exemplo ficou da seguinte forma:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
</pre></td><td class="code"><pre class="actionscript"><span style="color: #000000; font-weight: bold;">var</span> objOuvinte:<span style="color: #0066CC;">Object</span> = <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #0066CC;">Object</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #000000; font-weight: bold;">var</span> objMCLoader:<span style="color: #0066CC;">MovieClipLoader</span> = <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #0066CC;">MovieClipLoader</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
objOuvinte.<span style="color: #0066CC;">onLoadProgress</span> = <span style="color: #000000; font-weight: bold;">function</span><span style="color: #66cc66;">&#40;</span>mc:<span style="color: #0066CC;">MovieClip</span>, btLoader:<span style="color: #0066CC;">Number</span>, btTotal:<span style="color: #0066CC;">Number</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span>
	<span style="color: #0066CC;">trace</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;MC é o Movie Clip vazio &quot;</span>+mc+<span style="color: #ff0000;">&quot; ---- &quot;</span>+<span style="color: #66cc66;">&#40;</span>btLoader<span style="color: #66cc66;">/</span>btTotal<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">*</span><span style="color: #cc66cc;">100</span> <span style="color: #66cc66;">&#41;</span>
<span style="color: #66cc66;">&#125;</span>
&nbsp;
objMCLoader.<span style="color: #0066CC;">loadClip</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;imagem/imagem.jpg&quot;</span>,alvo_arquivo<span style="color: #66cc66;">&#41;</span>;
objMCLoader.<span style="color: #0066CC;">addListener</span><span style="color: #66cc66;">&#40;</span>objOuvinte<span style="color: #66cc66;">&#41;</span>;</pre></td></tr></table></div>

</p>
<p>Teste seu arquivo.  Aperte <strong>CTRL+ENTER</strong> 2 vezes para simular um &quot;download&quot;. </p>
<p>A classe <strong>MovieClipLoade</strong>r te oferecer outros tratamentos(eventos),  como:<br />
    <strong class="style1">onLoadComplete</strong> &lt;- Quase a mesma  coisa do <strong>onLoadInit</strong>, mas quando se usa uma máscara no objeto carregado, este  método não irá funcionar.<br />
    <strong class="style1">onLoadInit</strong> &lt;- Quando o objeto for  totalmente carregando.<br />
    <strong class="style1">onLoadError </strong>&lt;-  Verifica erros existentes no carregamento.<br />
    <strong class="style1">onLoadStart </strong>&lt;-  Executado quando começar a carregar.</p>
<p>Para mais informações, procure pela classe <strong>MovieClipLoader</strong> para <strong>AS2</strong> no <strong>help do flash (F1)</strong>.</p>
<p>Meu primeiro tutorial vai ficando por aqui, mas dá próxima,  montaremos um site com carregamento externo de arquivo com a classe  <strong>MovieClipLoade</strong>r.</p>
<p>  <a href="http://www.alvoweb.com/download/exemplo1_MovieClipLoader_AlvoWeb.zip"><span class="style1">Download - exemplo 1 com a classe MovieclipLoader</span></a><br />
<a href="http://www.alvoweb.com/download/exemplo2_MovieClipLoader_AlvoWeb.zip"><span class="style1">Download - exemplo 2 com a classe MovieclipLoader</span></a>
</p>
<p>Até.</p>
<p>  <a href="http://www.tiagobraga.com" target="_blank">Tiago Braga (xavrim)</a><br />
  Equipe Alvo Web
</p>
<p>
<a rel="license" href="http://creativecommons.org/licenses/by-nc-sa/2.5/br/"><img alt="Creative Commons License" style="border-width:0" src="http://i.creativecommons.org/l/by-nc-sa/2.5/br/80x15.png" /></a> <br />
O Conteúdo do <a xmlns:cc="http://creativecommons.org/ns#" href="http://www.alvoweb.com" property="cc:attributionName" rel="cc:attributionURL">Alvo Web Developers</a> está  licenciada sob uma <a rel="license" href="http://creativecommons.org/licenses/by-nc-sa/2.5/br/">Creative Commons Atribuição-Uso Não-Comercial-Compartilhamento pela mesma Licença 2.5 Brasil License</a>.<br />
<br />
<script type="text/javascript"><!--
google_ad_client = "pub-1122471812070813";
google_ad_width = 336;
google_ad_height = 280;
google_ad_format = "336x280_as";
google_ad_type = "text_image";
google_color_border = "fafafa";
google_color_bg = "fafafa";
google_color_link = "003366";
google_color_text = "7d7d7d";
google_color_url = "78b749";

//--></script>
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
</p>
]]></content:encoded>
			<wfw:commentRss>http://www.alvoweb.com/carregar-imagem-externa-com-moviecliploader/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Guia de Programação ActionScript 3.0 da Adobe</title>
		<link>http://www.alvoweb.com/guia-de-programacao-actionscript-3-da-adobe/</link>
		<comments>http://www.alvoweb.com/guia-de-programacao-actionscript-3-da-adobe/#comments</comments>
		<pubDate>Mon, 01 Dec 2008 14:09:19 +0000</pubDate>
		<dc:creator>Rodrigo</dc:creator>
		
		<category><![CDATA[Notícias]]></category>

		<category><![CDATA[ActionScript]]></category>

		<category><![CDATA[Flash]]></category>

		<guid isPermaLink="false">http://www.alvoweb.com/guia-de-programacao-actionscript-30-da-adobe/</guid>
		<description><![CDATA[Fala galera! tranquilo?
Para quem curte programação ActionScript.
A Adobe disponibiliza um guia em Português sobre o Actionscript 3.0.
Arquivo em PDF( 10M ) para download.
Poderá conferir também diretamente pela página da Adobe:
Página de programação ActionScript 3.0 da Adobe
Vale a pena conferir!
Grande abraço e até a próxima.
Rodrigo Gonçalves
Equipe AlvoWeb



]]></description>
			<content:encoded><![CDATA[<p>Fala galera! tranquilo?</p>
<p>Para quem curte programação ActionScript.<br />
A <a href="http://www.adobe.com">Adobe</a> disponibiliza um guia em Português sobre o Actionscript 3.0.</p>
<p><a href="http://help.adobe.com/pt_BR/ActionScript/3.0_ProgrammingAS3/flash_as3_programming.pdf">Arquivo em PDF( 10M ) para download.</a></p>
<p>Poderá conferir também diretamente pela página da Adobe:<br />
<a href="http://help.adobe.com/pt_BR/ActionScript/3.0_ProgrammingAS3/">Página de programação ActionScript 3.0 da Adobe</a></p>
<p>Vale a pena conferir!</p>
<p>Grande abraço e até a próxima.</p>
<p><a href="http://www.rodrigopixel.com.br">Rodrigo Gonçalves</a><br />
Equipe AlvoWeb</p>
<p><script type="text/javascript"><!--
google_ad_client = "pub-1122471812070813";
google_ad_width = 336;
google_ad_height = 280;
google_ad_format = "336x280_as";
google_ad_type = "text_image";
google_color_border = "fafafa";
google_color_bg = "fafafa";
google_color_link = "003366";
google_color_text = "7d7d7d";
google_color_url = "78b749";

//--></script>
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
</p>
]]></content:encoded>
			<wfw:commentRss>http://www.alvoweb.com/guia-de-programacao-actionscript-3-da-adobe/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Formulário e-mail AS3 com PHP</title>
		<link>http://www.alvoweb.com/formulario-email-as3-com-php/</link>
		<comments>http://www.alvoweb.com/formulario-email-as3-com-php/#comments</comments>
		<pubDate>Wed, 05 Nov 2008 15:50:50 +0000</pubDate>
		<dc:creator>Rodrigo</dc:creator>
		
		<category><![CDATA[ActionScript]]></category>

		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.alvoweb.com/formulario-email-as3-com-php/</guid>
		<description><![CDATA[


Autor: Rodrigo Gonçalves
Flash CS3 ou superior
 Package: flash.net 
  Classe: public final class URLRequest,
  Classe: public class URLLoader,
  Classe: public dynamic class URLVariables,
  Versão AS: ActionScript 3.0
  Player: Flash Player 9 ou superior
 Dificuldade: Básico.
  Obs: Para um bom aproveitamento deste artigo é interessante ter lógica de programação, noções [...]]]></description>
			<content:encoded><![CDATA[<style type="text/css">
<!--
.style1 {
	color: #FF0000;
	font-weight: bold;
}
.style2 {color: #0066CC}
.style4 {color: #0066CC; font-weight: bold; }
.style5 {
	font-size: 14px;
	font-weight: bold;
	color: #0066CC;
}
.style6 {color: #FF0000}
-->
</style>
<p><strong>Autor:</strong> Rodrigo Gonçalves</p>
<p><strong>Flash CS3 ou superior</strong><br />
 <strong>Package:</strong> flash.net <br />
  <strong>Classe:</strong> public final class URLRequest,<br />
  <strong>Classe:</strong> public class URLLoader,<br />
  <strong>Classe:</strong> public dynamic class URLVariables,</p>
<p>  <strong>Versão AS:</strong> ActionScript 3.0<br />
  <strong>Player:</strong> Flash Player 9 ou superior</p>
<p> <strong>Dificuldade:</strong> Básico.<br />
  <strong>Obs:</strong> Para um bom aproveitamento deste artigo é interessante ter lógica de programação, noções  básicas para leitura de sintaxe  ActionScript 3.0 e  PHP.</p>
<p> Fala galera, tranquilo?!</p>
<p>Vamos ver uma das maneiras de criar um formulário  de e-mail utilizando AS3 em conjunto com um script PHP.<br />
  O exemplo mostrado é relativamente simples, mas acredito ser um bom ponto de partida pra começar. Depois você mesmo poderá incrementá-lo conforme achar necessário.<br />
Pra fazer os testes, você precisa de um servidor para hospedar seu arquivo PHP. O seu servidor deve ter suporte pra função <strong>mail()</strong> do PHP.</p>
<p>No final deste artigo, está disponível para download o mesmo exemplo abordado aqui para testes.</p>
<p>    <span class="style5">Indice:</span></p>
<p>  <strong>1. Introdução;<br />
  2. Criando os objetos na tela;<br />
  3. Organização do código;<br />
  &gt; 3.1. Divida uma grande tarefa em pequenas tarefas;  <br />
 &gt; 3.2. Nomes de variaveis, funções e comentários de código;<br />
  4. Inserindo código AS3;<br />
  6. Criando script PHP;<br />
  7. Download.</strong></p>
<p><span class="style5"><strong>1. Introdução</strong></span><strong><br />
  </strong><br />
  No Flash, basicamente, para este exemplo do formulário, além de utilizarmos um script PHP que irá &quot;interagir&quot; com Actionscript, precisamos utilizar 3 classes mais notáveis no AS3 que fazem parte do <strong>Package</strong> <em><strong>flash.net</strong></em>, sendo elas:<br />
  <strong>- URLRequest()</strong>, é responsável por armazenar endereços externos. No nosso caso, será um <strong>arquivo PHP</strong>;<br />
  <strong>- URLLoader()</strong>, é responsável por &#8220;recuperar&#8221; dados/informações externas. A qual iremos manipular informações externas com uso de Eventos.<br />
  <strong>- URLVariables()</strong>, criamos &quot;variáveis&quot; que recebem o conteúdo digitado nos campos de textos do Flash. Com isso, conseguimos comunicar com o arquivo PHP e enviar as informações para o destinatário de e-mail.</p>
<p>E de quebra, pra incrementar  um pouco mais a funcionalidade do nosso Formulário. Utilizaremos a <strong>classe Timer()</strong>, em que a sua aplicação é muito semelhante com as funções <strong>setInterval()</strong> e <strong>setTimeout(). </strong>No nosso caso, a classe <strong>Timer()</strong> simplesmente   irá  chamar/executar uma determinada função depois de um tempo específico estipulado. Veremos isso mais adiante.</p>
<p><strong class="style5">2. Criando os objetos na tela</strong></p>
<p>É possível também criar esses objetos usando apenas código AS3. Mas como nosso objetivo aqui será apenas enviar e-mail, e dar ênfase ao código que tem maior importância para não fugir do nosso foco. Para esse exemplo estamos criando os objetos visuais (caixa de textos e botão) manualmente usando as ferramentas no ambiente do Flash.</p>
<p><strong>Dica:</strong>  É sempre bom criarmos um hábito de organização com web. No Flash não é diferente e você vai agradecer você mesmo mais tarde por lembrar de ter feito essa organização. Sugiro criar uma pasta para  guardar  todos seus arquivos Flash e PHP.</p>
<p>   Com o Flash aberto, crie  um arquivo novo documento: <strong>versão Actionscript 3.0</strong>.</p>
<p>  Para organizar os conteúdos crie 2 camadas, sendo elas:<br />
    <strong>- Actions<br />
- Objetos</strong></p>
<p><strong><img src="http://www.alvoweb.com/tutorial/img/form_as3_php/img1.gif" alt="img" width="278" height="99" /><br />
Imagem 1</strong>: Criando camadas para organizar os objetos.</p>
<p>Na camada<strong> Objetos </strong>será destinada para os objetos visuais (caixa de textos e botão).<br />
Iremos criar 5 campos de texto, sendo:<br />
- 4 deles serão dinâmicos do tipo <strong>&quot;input Text&quot;</strong>, com instâncias na seguinte ordem:<strong><strong><span class="style1"> nomeTxt</span></strong></strong>, <strong class="style1">emailTxt</strong>, <strong class="style1">assuntoTxt </strong>e <strong class="style1">mensagemTxt</strong>; <br />
-  1 campo de texto  do tipo <strong>Dynamic Text </strong>com nome de instância <strong class="style1">avisoTxt</strong>, que será destinado para mostrar os avisos ao usuário sobre o que acontece quando ele tenta enviar os dados.<br />
- 1 botão com nome de instância <strong class="style1">enviarBtn</strong>, que será responsável por enviar os dados.</p>
<p>  Cada objeto estão organizados com seus respectivos nomes de instâncias. Repare também que todos os campos estão configurado pra aceitar apenas uma única linha <strong>(Single line)</strong>. Apenas os campos <strong>mensagemTxt</strong> e caixa e <strong>avisoTxt</strong> devem ser configurado para aceitar mais de uma linha  <strong>(Multiline)</strong>, você confere essa configuração pelo painel de propriedades da caixa de texto. </p>
<p>  Você poderá acompanhar na imagem 2 a seguir, na seguinte ordem:</p>
<p>  - Campo <strong>Nome</strong>:<br />
  - Tipo: <span class="style4">Input Text </span><br />
  -  Instância<strong>: <strong><span class="style1">nomeTxt</span><br />
  </strong></strong>- Aceitar quantas linhas: <strong><strong><strong><strong><strong><strong><strong><strong>Single line</strong></strong></strong></strong></strong></strong> </p>
<p>  </strong></strong>- Campo<strong><strong> E-mail:<br />
  </strong></strong>- Tipo:<strong><strong> <strong class="style2">Input Text </strong><br />
  </strong></strong>-  Instância<strong><strong><strong>: <strong class="style1">emailTxt</strong></strong><br />
  </strong></strong>- Aceitar quantas linhas:<strong><strong><strong><strong><strong><strong><strong><strong> Single line</strong></strong></strong></strong></strong></strong>  </p>
<p>  </strong></strong>- Campo<strong> <strong><strong>Assunto</strong>:<br />
  </strong></strong>- Tipo:<strong><strong> <strong class="style4">Input Text</strong><br />
  </strong></strong>-  Instância:<strong><strong><strong> <span class="style1"><strong>assuntoTxt</strong></span><strong><br />
  </strong></strong></strong></strong>- Aceitar quantas linhas:<strong><strong><strong><strong><strong><strong> Single line</strong></strong>  <br />
  </strong></strong><br />
  </strong></strong> - Campo<strong> Mensagem</strong>:<br />
  - Tipo: <strong class="style4">Input Text</strong> <br />
     -  Instância<strong> <strong class="style1">mensagemTxt</strong><br />
     </strong>- Aceitar quantas linhas: <strong><strong><strong>Multiline </strong></strong> </p>
<p>- Botão<strong><br />
</strong></strong>- Tipo:<strong><strong> <strong class="style4">MovieClip</strong><br />
</strong></strong>-  Instância<strong><strong class="style1"><strong> <strong>enviarBtn</strong></strong></strong></p>
<p>    </strong>- Campo<strong> <strong>Aviso</strong>:<br />
      </strong>- Tipo:<strong> <strong class="style4">Text Dynamic</strong><br />
        </strong>-  Instância<strong><strong> <strong class="style1">avisoTxt</strong><br />
        </strong></strong>- Aceitar quantas linhas:<strong><strong> Multiline        <br />
                </strong><br />
          </strong><img src="http://www.alvoweb.com/tutorial/img/form_as3_php/img2.gif" alt="img" width="275" height="274" /><br />
          <strong>Imagem 2</strong>: Criando os objetos e configurando.</p>
<p>&nbsp;</p>
<p><span class="style5"><strong>3. Organização do código</strong></span></p>
<p>Com os objetos criados e configurados, agora vem a parte mais legal. ActionScript. É ele que vai dar vida. Mas precisamos nos organizar e pensar no que fazer antes.<br />
E aqui vai algumas dicas que me ajudam muito na hora de começar programar algo, e talvez esse método possa te ajudar também. </p>
<p>No começo, pode parecer que perdemos tempo tendo esses cuidados. Mas, acredite, vai facilitar a sua vida e de quem for trabalhar com você.</p>
<p>
<span class="style5"><strong>3.1. Divida uma grande tarefa em pequenas tarefas</strong></span><strong></p>
<p></strong>No código a seguir, repere que foi criado várias funções dedicada para cada pequena tarefa. Isso facilita muito na organização, manutenção e reutilização de código. Pois, é muito mais fácil enfrentarmos algum problema e criar soluções pra eles, se antes dividirmos em pequenos pedaços e dedicando soluções por partes (criando funções específicas). </p>
<p>Por exemplo, quando queremos fazer uma &quot;grande tarefa&quot;, como no nosso caso  &quot;enviar e-mail&quot;, se quebrarmos essa &quot;grande tarefa&quot; (grande função) em &quot;pequenas tarefas&quot; (funções dedicadas), BINGO! Ficará muito mais fácil de atingir seus objetivos passo-a-passo, além de te ajudar na organização e agilizar caso precise fazer manutenção ou melhorias futuramente.</p>
<p>
<span class="style5"><strong>3.2. Nomes de variaveis, funções e comentários de código</strong></span><strong></p>
<p></strong>Não tenha medo também de dar nomes &quot;grandes&quot; pra funções e variáveis, desde que esses nomes sejam descritivas e tenha um padrão durante todo código. Nomes descritivos irão ajudar ter um código mais &quot;auto-explicável&quot; possível e tentar poupar comentários desnecessários. </p>
<p>O comentários também são bastante válidos para não só &quot;documentar o seu código&quot;, mas pra te ajudar a lembrar a lógica do que o programa faz. Você não vai querer perder tempo e reaprender algo que você mesmo já fez. Ou quer? <br />
Os comentários no código estão com  objetivos mais &quot;didáticos&quot;, mas sempre poderá melhorar pra não ser  tão redundante na explicação, algo que o o próprio nomes das funções e variáveis já conseguem (e devem) explicarem por si só.</p>
<p>
<span class="style5"><strong>4. Inserindo o código AS3</strong></span><strong><br />
</strong><br />
Vamos ao código de fato.<br />
O código está dividido por funções dedicadas pra cada pequena tarefa, brevemente comentado e auto-explicativo.<br />
Na camada <strong>Actions</strong>, selecione o 1º e único frame, e abra o painel de <strong>Actions</strong>, atalho [F9], e insira o código:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
</pre></td><td class="code"><pre class="actionscript3"><span style="color: #3f5fbf;">/* @Autor: Rodrigo Gonçalves [Rodrigo PiXEL]
 * @Créditos: www.AlvoWeb.com */</span>
&nbsp;
&nbsp;
<span style="color: #3f5fbf;">/***************************
 * VARIAVEIS
 * Criamos todas variaveis usadas durante o código
 ****************************/</span>
&nbsp;
<span style="color: #6699cc; font-weight: bold;">var</span> tempoMensagem<span style="color: #000000; font-weight: bold;">:</span><span style="color: #004993;">Timer</span>; <span style="color: #009900;">//intervalo entre mensagens de aviso</span>
<span style="color: #6699cc; font-weight: bold;">var</span> variaveis<span style="color: #000000; font-weight: bold;">:</span><span style="color: #004993;">URLVariables</span>; <span style="color: #009900;">//receber dados no flash pra enviar pro script php</span>
<span style="color: #6699cc; font-weight: bold;">var</span> urlPhp<span style="color: #000000; font-weight: bold;">:</span><span style="color: #004993;">URLRequest</span>; <span style="color: #009900;">//vai armazenar o arquivo php externo</span>
<span style="color: #6699cc; font-weight: bold;">var</span> <span style="color: #004993;">loader</span><span style="color: #000000; font-weight: bold;">:</span><span style="color: #004993;">URLLoader</span>; <span style="color: #009900;">//carregar e comunicar com arquivo php</span>
&nbsp;
<span style="color: #009900;">//iniciamos o programa</span>
<span style="color: #004993;">init</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>;
&nbsp;
&nbsp;
&nbsp;
<span style="color: #3f5fbf;">/***************************
 * FUNÇÕES
 * Toda mecânica está separada em pequenas funções
 ****************************/</span>
&nbsp;
<span style="color: #009900;">//inicia e configura todo o programa</span>
<span style="color: #339966; font-weight: bold;">function</span> <span style="color: #004993;">init</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000000; font-weight: bold;">:</span><span style="color: #0033ff; font-weight: bold;">void</span>
<span style="color: #000000;">&#123;</span>
	<span style="color: #009900;">//habilitamos acentuação</span>
	<span style="color: #004993;">System</span>.<span style="color: #004993;">useCodePage</span> = <span style="color: #0033ff; font-weight: bold;">true</span>;
&nbsp;
	<span style="color: #009900;">//limpamos todos os campos de texto antes de começar.</span>
	limpaTodosCamposTextos<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>;
&nbsp;
	<span style="color: #009900;">//cria o Timer com 3 segundos(3000 milesegundos) executa quandoTempoAcabar() apenas 1 vez.</span>
	tempoMensagem = <span style="color: #0033ff; font-weight: bold;">new</span> <span style="color: #004993;">Timer</span><span style="color: #000000;">&#40;</span><span style="color: #000000; font-weight:bold;">3000</span>, <span style="color: #000000; font-weight:bold;">1</span><span style="color: #000000;">&#41;</span>; 
	tempoMensagem.<span style="color: #004993;">addEventListener</span><span style="color: #000000;">&#40;</span><span style="color: #004993;">TimerEvent</span>.<span style="color: #004993;">TIMER</span>, quandoAcabarTempo<span style="color: #000000;">&#41;</span>;
&nbsp;
	<span style="color: #009900;">//quando clicar no botão executa a função enviaMensagem();</span>
	enviarBtn.<span style="color: #004993;">addEventListener</span><span style="color: #000000;">&#40;</span><span style="color: #004993;">MouseEvent</span>.<span style="color: #004993;">CLICK</span>, quandoEnviarBtn<span style="color: #000000;">&#41;</span>;
<span style="color: #000000;">&#125;</span>
&nbsp;
&nbsp;
<span style="color: #009900;">//função de evento, executa a quando clicar no botao enviarBtn</span>
<span style="color: #339966; font-weight: bold;">function</span> quandoEnviarBtn<span style="color: #000000;">&#40;</span>e<span style="color: #000000; font-weight: bold;">:</span><span style="color: #004993;">MouseEvent</span><span style="color: #000000;">&#41;</span><span style="color: #000000; font-weight: bold;">:</span><span style="color: #0033ff; font-weight: bold;">void</span>
<span style="color: #000000;">&#123;</span>
	verificaDadosAntesDeEnviar<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>;
<span style="color: #000000;">&#125;</span>
&nbsp;
&nbsp;
<span style="color: #3f5fbf;">/* Verificar e se qualquer um dos campos estão vazios ou incorretos,
 * caso esteja errado, mostra mensagem de aviso.
 * Se não, no final envia começa enviar os dados...*/</span>
<span style="color: #339966; font-weight: bold;">function</span> verificaDadosAntesDeEnviar<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000000; font-weight: bold;">:</span><span style="color: #0033ff; font-weight: bold;">void</span>
<span style="color: #000000;">&#123;</span>
	<span style="color: #0033ff; font-weight: bold;">if</span><span style="color: #000000;">&#40;</span>nomeTxt.<span style="color: #004993;">length</span> <span style="color: #000000; font-weight: bold;">&lt;</span> <span style="color: #000000; font-weight:bold;">3</span><span style="color: #000000;">&#41;</span>
	<span style="color: #000000;">&#123;</span>
		mostraMensagemAviso<span style="color: #000000;">&#40;</span><span style="color: #990000;">&quot;Coloque um nome com pelo menos 3 letras&quot;</span><span style="color: #000000;">&#41;</span>;
	<span style="color: #000000;">&#125;</span>
	<span style="color: #0033ff; font-weight: bold;">else</span> <span style="color: #0033ff; font-weight: bold;">if</span><span style="color: #000000;">&#40;</span>emailTxt.<span style="color: #004993;">length</span> == <span style="color: #000000; font-weight:bold;">0</span><span style="color: #000000;">&#41;</span>
	<span style="color: #000000;">&#123;</span>
		mostraMensagemAviso<span style="color: #000000;">&#40;</span><span style="color: #990000;">&quot;Preciso do seu e-mail pra te responder.&quot;</span><span style="color: #000000;">&#41;</span>;
	<span style="color: #000000;">&#125;</span>
	<span style="color: #0033ff; font-weight: bold;">else</span> <span style="color: #0033ff; font-weight: bold;">if</span><span style="color: #000000;">&#40;</span>emailTxt.<span style="color: #004993;">text</span>.<span style="color: #004993;">indexOf</span><span style="color: #000000;">&#40;</span><span style="color: #990000;">&quot;@&quot;</span><span style="color: #000000;">&#41;</span> == <span style="color: #000000; font-weight:bold;">-1</span> <span style="color: #000000; font-weight: bold;">||</span>
			emailTxt.<span style="color: #004993;">text</span>.<span style="color: #004993;">indexOf</span><span style="color: #000000;">&#40;</span><span style="color: #990000;">&quot;.&quot;</span><span style="color: #000000;">&#41;</span> == <span style="color: #000000; font-weight:bold;">-1</span><span style="color: #000000;">&#41;</span>
	<span style="color: #000000;">&#123;</span>
		mostraMensagemAviso<span style="color: #000000;">&#40;</span><span style="color: #990000;">&quot;Ops! Esse e-mail não é valido!&quot;</span><span style="color: #000000;">&#41;</span>;
	<span style="color: #000000;">&#125;</span>
	<span style="color: #0033ff; font-weight: bold;">else</span> <span style="color: #0033ff; font-weight: bold;">if</span><span style="color: #000000;">&#40;</span>assuntoTxt.<span style="color: #004993;">length</span> == <span style="color: #000000; font-weight:bold;">0</span><span style="color: #000000;">&#41;</span>
	<span style="color: #000000;">&#123;</span>
		mostraMensagemAviso<span style="color: #000000;">&#40;</span><span style="color: #990000;">&quot;Insira um assunto.&quot;</span><span style="color: #000000;">&#41;</span>;
	<span style="color: #000000;">&#125;</span>
	<span style="color: #0033ff; font-weight: bold;">else</span> <span style="color: #0033ff; font-weight: bold;">if</span><span style="color: #000000;">&#40;</span>mensagemTxt.<span style="color: #004993;">length</span> == <span style="color: #000000; font-weight:bold;">0</span><span style="color: #000000;">&#41;</span>
	<span style="color: #000000;">&#123;</span>
		mostraMensagemAviso<span style="color: #000000;">&#40;</span><span style="color: #990000;">&quot;Ahh! Não esquece da mensagem.&quot;</span><span style="color: #000000;">&#41;</span>;
	<span style="color: #000000;">&#125;</span>
	<span style="color: #0033ff; font-weight: bold;">else</span><span style="color: #000000;">&#123;</span> 
		enviaDadosParaPHP<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>;
	<span style="color: #000000;">&#125;</span>
<span style="color: #000000;">&#125;</span>
&nbsp;
&nbsp;
<span style="color: #009900;">//responsável por interagir informação do Flash com script PHP</span>
<span style="color: #339966; font-weight: bold;">function</span> enviaDadosParaPHP<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000000; font-weight: bold;">:</span><span style="color: #0033ff; font-weight: bold;">void</span>
<span style="color: #000000;">&#123;</span>
	mostraMensagemAviso<span style="color: #000000;">&#40;</span><span style="color: #990000;">&quot;Enviando mensagem...&quot;</span><span style="color: #000000;">&#41;</span>;
&nbsp;
	<span style="color: #3f5fbf;">/* iniciamos e criamos variaveis dinamicas
	 * que recebem o conteúdo digitado nos campos do flash
	 * essas variáveis servirão de ponto entre o Flash e script PHP */</span>
	variaveis = <span style="color: #0033ff; font-weight: bold;">new</span> <span style="color: #004993;">URLVariables</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>;
	variaveis.nomePhp = nomeTxt.<span style="color: #004993;">text</span>;
	variaveis.emailPhp = emailTxt.<span style="color: #004993;">text</span>;
	variaveis.assuntoPhp = assuntoTxt.<span style="color: #004993;">text</span>;
	variaveis.mensagemPhp = mensagemTxt.<span style="color: #004993;">text</span>;
&nbsp;
	<span style="color: #3f5fbf;">/* iniciamos variavel que tem o arquivo PHP
	 * devemos aplicar método POST de envio de dados
	 * e transmitimos os dados dos campos do Flash para o script PHP */</span>
	urlPhp = <span style="color: #0033ff; font-weight: bold;">new</span> <span style="color: #004993;">URLRequest</span><span style="color: #000000;">&#40;</span><span style="color: #990000;">&quot;http://www.SEU_SITE_AQUI.com/mail.php&quot;</span><span style="color: #000000;">&#41;</span>;
	urlPhp.<span style="color: #004993;">method</span> = <span style="color: #004993;">URLRequestMethod</span>.<span style="color: #004993;">POST</span>;
	urlPhp.<span style="color: #004993;">data</span> = variaveis;
&nbsp;
	<span style="color: #3f5fbf;">/* iniciamos variavel responsável por &quot;recuperar&quot; dados/informações do PHP
	 * quando estiver completo o carregamento do arquivo PHP, executa a função que confirma envio.
	 * quando surgir erro durante o envio, executa a função que mostra mensagem de erro.
	 * e carregamos o arquivo PHP armazenado na variavel urlPhp */</span>
	<span style="color: #004993;">loader</span> = <span style="color: #0033ff; font-weight: bold;">new</span> <span style="color: #004993;">URLLoader</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>;
 	<span style="color: #004993;">loader</span>.<span style="color: #004993;">addEventListener</span><span style="color: #000000;">&#40;</span><span style="color: #004993;">Event</span>.<span style="color: #004993;">COMPLETE</span>, quandoEnviadoMensagem<span style="color: #000000;">&#41;</span>;
 	<span style="color: #004993;">loader</span>.<span style="color: #004993;">addEventListener</span><span style="color: #000000;">&#40;</span><span style="color: #004993;">IOErrorEvent</span>.<span style="color: #004993;">IO_ERROR</span>, quandoHouverErroNoEnvio<span style="color: #000000;">&#41;</span>;
 	<span style="color: #004993;">loader</span>.<span style="color: #004993;">load</span><span style="color: #000000;">&#40;</span>urlPhp<span style="color: #000000;">&#41;</span>;
<span style="color: #000000;">&#125;</span>
&nbsp;
&nbsp;
<span style="color: #009900;">//Função de evento, mostra ao usuário que a mensagem foi enviada com sucesso.</span>
<span style="color: #339966; font-weight: bold;">function</span> quandoEnviadoMensagem<span style="color: #000000;">&#40;</span>e<span style="color: #000000; font-weight: bold;">:</span><span style="color: #004993;">Event</span><span style="color: #000000;">&#41;</span><span style="color: #000000; font-weight: bold;">:</span><span style="color: #0033ff; font-weight: bold;">void</span>
<span style="color: #000000;">&#123;</span>
	mostraMensagemAviso<span style="color: #000000;">&#40;</span><span style="color: #990000;">&quot;Mensagem enviada!&quot;</span><span style="color: #000000;">&#41;</span>;
	iniciatempoMensagemDeAviso<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>;
	limpaTodosCamposTextos<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>;
<span style="color: #000000;">&#125;</span>
&nbsp;
&nbsp;
<span style="color: #009900;">//Função de evento, mostra ao usuário que houve algum erro durante o envio.</span>
<span style="color: #339966; font-weight: bold;">function</span> quandoHouverErroNoEnvio<span style="color: #000000;">&#40;</span>e<span style="color: #000000; font-weight: bold;">:</span><span style="color: #004993;">IOErrorEvent</span><span style="color: #000000;">&#41;</span><span style="color: #000000; font-weight: bold;">:</span><span style="color: #0033ff; font-weight: bold;">void</span>
<span style="color: #000000;">&#123;</span>
	mostraMensagemAviso<span style="color: #000000;">&#40;</span><span style="color: #990000;">&quot;Ops! Surgiu erro! Tenta novamente.&quot;</span><span style="color: #000000;">&#41;</span>;
 	iniciatempoMensagemDeAviso<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>;
<span style="color: #000000;">&#125;</span>
&nbsp;
&nbsp;
<span style="color: #009900;">//Função de evento do Timer, limpa o campo de aviso, função do Timer</span>
<span style="color: #339966; font-weight: bold;">function</span> quandoAcabarTempo<span style="color: #000000;">&#40;</span>e<span style="color: #000000; font-weight: bold;">:</span><span style="color: #004993;">TimerEvent</span><span style="color: #000000;">&#41;</span><span style="color: #000000; font-weight: bold;">:</span><span style="color: #0033ff; font-weight: bold;">void</span>
<span style="color: #000000;">&#123;</span>
	mostraMensagemAviso<span style="color: #000000;">&#40;</span><span style="color: #990000;">&quot;&quot;</span><span style="color: #000000;">&#41;</span>;
<span style="color: #000000;">&#125;</span>
&nbsp;
&nbsp;
<span style="color: #3f5fbf;">/* Limpa todos os campos de textos digitados pelo usuário
 * depois aplica foco do cursor de texto no campo nomeTxt */</span>
<span style="color: #339966; font-weight: bold;">function</span> limpaTodosCamposTextos<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000000; font-weight: bold;">:</span><span style="color: #0033ff; font-weight: bold;">void</span>
<span style="color: #000000;">&#123;</span>
	nomeTxt.<span style="color: #004993;">text</span> = emailTxt.<span style="color: #004993;">text</span> = assuntoTxt.<span style="color: #004993;">text</span> = mensagemTxt.<span style="color: #004993;">text</span> = <span style="color: #990000;">&quot;&quot;</span>;
	<span style="color: #004993;">stage</span>.<span style="color: #004993;">focus</span> = nomeTxt;
<span style="color: #000000;">&#125;</span>
&nbsp;
&nbsp;
<span style="color: #3f5fbf;">/* Destinada pra enviar mensagem de aviso
 * e apaga esse aviso após 3 segundos usando timer.*/</span>
<span style="color: #339966; font-weight: bold;">function</span> mostraMensagemAviso<span style="color: #000000;">&#40;</span>texto<span style="color: #000000; font-weight: bold;">:</span><span style="color: #004993;">String</span><span style="color: #000000;">&#41;</span><span style="color: #000000; font-weight: bold;">:</span><span style="color: #0033ff; font-weight: bold;">void</span>
<span style="color: #000000;">&#123;</span>
	avisoTxt.<span style="color: #004993;">text</span> = texto;
<span style="color: #000000;">&#125;</span>
&nbsp;
&nbsp;
<span style="color: #3f5fbf;">/* Destinado pra reiniciar e iniciar intervalo Timer
 * Pra não atropelar o tempoMensagem de cada mensagem de aviso que foi disparada antes*/</span>
<span style="color: #339966; font-weight: bold;">function</span> iniciatempoMensagemDeAviso<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000000; font-weight: bold;">:</span><span style="color: #0033ff; font-weight: bold;">void</span>
<span style="color: #000000;">&#123;</span>
	tempoMensagem.<span style="color: #004993;">reset</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>;
	tempoMensagem.<span style="color: #004993;">start</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>;
<span style="color: #000000;">&#125;</span></pre></td></tr></table></div>

<p> Terminamos nosso código AS3. Vamos agora para o script PHP.</p>
<p><span class="style5">5- Criando script PHP</span></p>
<p>Vamos criar o script PHP, que está brevemente comentado no próprio código. O script PHP faz comunicação com flash e recebe todas as variáveis dinâmicas que recebem valores dos campos de textos digitados pelo usuário dentro do Flash.<br />
Abra um bloco de notas, ou seu editor de códigos, e salve este arquivo na mesma pasta do seu arquivo Flash. Dêmos o nome do arquivo de: <strong>mail.php</strong></p>
<p>Insira o seguinte código PHP:
</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
</pre></td><td class="code"><pre class="php"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
<span style="color: #666666; font-style: italic;">//coloque o email de destinatário:</span>
<span style="color: #000033;">$enviaPara</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'seu email aqui'</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">//Criamos variaveis PHP que recupera as Variaveis criadas no Flash</span>
<span style="color: #000033;">$campoNome</span> <span style="color: #339933;">=</span> <span style="color: #000033;">$_POST</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'nomePhp'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">//retorna o valor digitado no campo &quot;nomeTxt&quot; do Flash</span>
<span style="color: #000033;">$campoEmail</span> <span style="color: #339933;">=</span> <span style="color: #000033;">$_POST</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'emailPhp'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">//retorna o valor digitado no campo &quot;emailTxt&quot; do Flash</span>
<span style="color: #000033;">$campoAssunto</span> <span style="color: #339933;">=</span> <span style="color: #000033;">$_POST</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'assuntoPhp'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">//retorna o valor digitado no campo &quot;assuntoTxt&quot; do Flash</span>
<span style="color: #000033;">$campoMensagem</span> <span style="color: #339933;">=</span> <span style="color: #000033;">$_POST</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'mensagemPhp'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">//retorna o valor digitado no campo &quot;mensagemTxt&quot; do Flash</span>
&nbsp;
<span style="color: #666666; font-style: italic;">//Assunto padrão do seu e-mail</span>
<span style="color: #000033;">$subject</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'Essa mensagem veio do seu site'</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">//Monta o corpo da mensagem enviada</span>
<span style="color: #000033;">$mensagem</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;Nome: &quot;</span><span style="color: #339933;">.</span><span style="color: #000033;">$_POST</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'nomePhp'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot; <span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #339933;">;</span>
<span style="color: #000033;">$mensagem</span> <span style="color: #339933;">.=</span> <span style="color: #0000ff;">&quot;E-mail: &quot;</span><span style="color: #339933;">.</span><span style="color: #000033;">$_POST</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'emailPhp'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot; <span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #339933;">;</span>
<span style="color: #000033;">$mensagem</span> <span style="color: #339933;">.=</span> <span style="color: #0000ff;">&quot;Assunto: &quot;</span><span style="color: #339933;">.</span><span style="color: #000033;">$_POST</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'assuntoPhp'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot; <span style="color: #000099; font-weight: bold;">\n</span><span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #339933;">;</span>
<span style="color: #000033;">$mensagem</span> <span style="color: #339933;">.=</span> <span style="color: #0000ff;">&quot;Mensagem: <span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #339933;">.</span> <span style="color: #000033;">$_POST</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'mensagemPhp'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">//e-mail do remetente:</span>
<span style="color: #000033;">$mail_headers</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'From: '</span><span style="color: #339933;">.</span><span style="color: #000033;">$_POST</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'emailPhp'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">//envia o e-mail</span>
<span style="color: #990000;">mail</span><span style="color: #009900;">&#40;</span><span style="color: #000033;">$enviaPara</span><span style="color: #339933;">,</span> <span style="color: #000033;">$subject</span><span style="color: #339933;">,</span> <span style="color: #000033;">$mensagem</span><span style="color: #339933;">,</span> <span style="color: #000033;">$mail_headers</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre></td></tr></table></div>

<p>Basta hospedar seu arquivo PHP em algum servidor e fazer os testes.</p>
<p>  <strong>Obs:</strong> <span class="style6">Lembra-se de  informar o endereço do arquivo PHP no código AS. Importante também sempre  fazer teste online com seus arquivos PHP e SWF no seu servidor web pra garantir que tudo esteja funcionando como esperado.</span></p>
<p>
  <span class="style5">6 - Download<br />
  </span><a href="http://www.alvoweb.com/download/exemplo_form_as3_php_AlvoWeb.zip">Download  deste exemplo final.</a>
</p>
<p>Abraços e até a próxima!</p>
<p> <a href="http://www.rodrigopixel.com.br" target="_blank">Rodrigo Gonçalves</a><br />
  Equipe Alvo Web
</p>
<p>
<a rel="license" href="http://creativecommons.org/licenses/by-nc-sa/2.5/br/"><img alt="Creative Commons License" style="border-width:0" src="http://i.creativecommons.org/l/by-nc-sa/2.5/br/80x15.png" /></a> <br />
O Conteúdo do <a xmlns:cc="http://creativecommons.org/ns#" href="http://www.alvoweb.com" property="cc:attributionName" rel="cc:attributionURL">Alvo Web Developers</a> está  licenciada sob uma <a rel="license" href="http://creativecommons.org/licenses/by-nc-sa/2.5/br/">Creative Commons Atribuição-Uso Não-Comercial-Compartilhamento pela mesma Licença 2.5 Brasil License</a>.<br />
<br />
<script type="text/javascript"><!--
google_ad_client = "pub-1122471812070813";
google_ad_width = 336;
google_ad_height = 280;
google_ad_format = "336x280_as";
google_ad_type = "text_image";
google_color_border = "fafafa";
google_color_bg = "fafafa";
google_color_link = "003366";
google_color_text = "7d7d7d";
google_color_url = "78b749";

//--></script>
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
</p>
]]></content:encoded>
			<wfw:commentRss>http://www.alvoweb.com/formulario-email-as3-com-php/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Loop de animação com rotação no Flash CS3</title>
		<link>http://www.alvoweb.com/loop-de-animacao-com-rotacao-no-flash-cs3/</link>
		<comments>http://www.alvoweb.com/loop-de-animacao-com-rotacao-no-flash-cs3/#comments</comments>
		<pubDate>Thu, 24 Jul 2008 17:40:15 +0000</pubDate>
		<dc:creator>Rodrigo</dc:creator>
		
		<category><![CDATA[Animação]]></category>

		<category><![CDATA[Flash]]></category>

		<guid isPermaLink="false">http://www.alvoweb.com/loop-de-animacao-com-rotacao-no-flash-cs3/</guid>
		<description><![CDATA[


Autor: Rodrigo Gonçalves
Tema: Loop de animação com rotação no Flash CS3.
  Versão: Flash CS3. Poderá utilizar  versões anteriores também.
  Dificuldade: Básico.
  Obs: Para um bom aproveitamento deste artigo é interessante ter conhecimentos básicos de funcionamento do Flash, conhecimentos de símbolos e animação Motion Tween.
  Vamos ver um pouco sobre loop [...]]]></description>
			<content:encoded><![CDATA[<style type="text/css">
<!--
.style1 {
	font-size: 16px;
	color: #0099FF;
}
.style3 {font-size: 16px; color: #0099FF; font-weight: bold; }
-->
</style>
<p><strong>Autor:</strong> Rodrigo Gonçalves</p>
<p><strong>Tema:</strong> Loop de animação com rotação no Flash CS3.<br />
  <strong>Versão:</strong> Flash CS3. Poderá utilizar  versões anteriores também.<br />
  <strong>Dificuldade:</strong> Básico.<br />
  <strong>Obs:</strong> Para um bom aproveitamento deste artigo é interessante ter conhecimentos básicos de funcionamento do Flash, conhecimentos de símbolos e animação Motion Tween.</p>
<p>  Vamos ver um pouco sobre loop de animação com rotação no Flash CS3. É algo bastante simples. Mas, que já conseguimos criar  coisas legais apenas utilizando conceitos de Tween Motion(ou Motion Tween), e que pode ser bastante utilizado para diversos fins da animação com o Flash.<br />
  Estamos utilizando versão Flash CS3 para este tutorial. Mas,  podemos aplicar esse conceito em versões anteriores do Flash. Não iremos ver Actionscript nesse tópico.</p>
<p>  <strong>Download:</strong> Ao final deste tópico existe um link para download deste exemplo.</p>
<table width="200" border="0" cellspacing="0" cellpadding="0">
<tr>
<td>
  <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,28,0" width="200" height="200"></p>
<param name="movie" value="/tutorial/img/loop_rotacao/rotacao_loop_exemplo4.swf" />
<param name="quality" value="high" />
    <embed src="/tutorial/img/loop_rotacao/rotacao_loop_exemplo4.swf" quality="high" pluginspage="http://www.adobe.com/shockwave/download/download.cgi?P1_Prod_Version=ShockwaveFlash" type="application/x-shockwave-flash" width="200" height="200"></embed><br />
  </object>
    </td>
</tr>
</table>
<p>  <strong>Indice:</strong></p>
<p>  <strong>- Introdução<br />
  </strong><strong>1. Configure o documento para animação;</strong><br />
  <strong>2. Crie o objeto que receberá animação</strong>;<br />
  <strong>3. Animação Motion Tween com rotação;<br />
  4. Ajustando detalhes de animação;</strong><br />
  <strong>5. Download do exemplo;</strong><br />
  <strong>6. Considerações finais.</strong></p>
<p>
  <strong><span class="style1">Introdução</span><br />
  </strong><br />
  Um &quot;loop&quot; podemos considerar como uma &quot;repetição&quot;. Iremos rotacionar(animar) uma imagem qualquer que será convertida antes em um símbolo Movie Clip.<br />
Não importa o objeto ou imagem que queira animar. Acredito que, entendendo um conceito de algo e para quê e como usá-lo, tudo parece ser mais fácil na hora de praticar. Iremos utilizar esses conceitos em futuros tópicos de animação.</p>
<p>Estão &quot;animados&quot;?<br />
<em><font style="text-decoration:line-through">Obs.: Isso não foi trocadilho.</font></em></p>
<p>Flash, luzes, camera&#8230; Animação!<br />
  Divirta-se.
</p>
<p class="style1"><strong>1 - Configure o documento para animação.</strong></p>
<p>  Antes de partimos para animação de fato, precisamos configurar adequadamente nosso documento Flash para cada animação. É bem simples e fácil. Mas, se esquecer desse detalhe pode comprometer toda a qualidade da sua animação, por mais simples que seja.</p>
<p>  O ponto principal é ajustar o número de <strong>FPS</strong>(<strong>F</strong>rames <strong>P</strong>er <strong>S</strong>econd), que traduzindo seria &quot;quadros por segundo&quot;. O FPS  irá determinar uma maior &quot;fluência&quot; ou &quot;naturalidade&quot; de uma animação. Isso porque temos uma maior quantidade de imagens para realizar algum movimento em apenas 1 segundo.</p>
<p>Dica:<br />
Caso utilize sua animação para Web(como a maioria dos casos), fique atento com a quantidade de FPS, dependo da quantidade de elementos, se for algo muito pesado, pode gerar grande consumo de CPU e certamente o desempenho da sua animação não será tão boa. E pior, dependendo do caso poderá até travar o computador do seu usuário. Na maioria dos casos podemos resolver apenas baixando a quantidade de FPS. Se possível, faça testes em diversos computadores com diferentes configurações para ter uma idéia do que a maioria dos usuários conseguirão ver realmente.</p>
<p>O padrão do flash é 12 FPS. No nosso exemplo, estamos utilizando tamanho de 200&#215;200 pixels com 30 FPS para fazer nossa animação.<br />
Assim como mostra na imagem 1. Podemos configurar o tamanho em largura, altura, bem como o número de FPS, isso de acordo com seu projeto e necessidades do mesmo. Geralmente são utilizados em média de 15 à 30 FPS para animações no Flash.</p>
<p>
<img src="/tutorial/img/loop_rotacao/img1.gif" width="371" height="399"><br />
<strong>Imagem 1:</strong> configurando o documento Flash.</p>
<p>Para definir essa configuração como padrão caso queira utilizar sempre a mesma  em novos documentos. Logo após ter configurado este painel, aperte o botão <strong>Make Default</strong> (criar  padrão). Isso fará com que  o novo documento será criado  exatamente com as mesmas configurações definidas nesta janela <strong>Document Properties</strong> (imagem 1 logo acima).</p>
<p>Também podemos configurar rapidamente pela janela de propriedades. Para termos o acesso a propriedades de uma ferramenta, objeto, componentes, etc. Temos que ter o painel de <strong>properties</strong>(propriedades) habilitado e ao selecionar o que precisamos configurar, no nosso caso o stage(palco) do flash. Basta clicar apenas uma vez em qualquer área para habilitar essas configurações do stage.<br />
Por alí, podemos fazer as modificações do documento e também ter acesso ao painel de <strong>Document Properties</strong> clicando no botão <strong>Size.</strong> Como mostra na imagem 2:</p>
<p>  Caso não esteja aberto o painel propriedades, acesse pelo menu <strong>window &gt; properties &gt;&gt; properties</strong>, atalho <strong>[Ctrl] + [F3].<br /> <br />
  </strong><br />
  <img src="/tutorial/img/loop_rotacao/propriedades_stage.gif" width="529" height="163" /><br />
<strong>Imagem 2:</strong> Painel de propriedades, configuração do stage.</p>
<p>&nbsp;</p>
<p class="style1"><strong>2. Crie o objeto que receberá animação</strong></p>
<p>Vamos criar uma imagem qualquer. No nosso caso será uma quadrado na cor preta que no nosso exemplo é o suficiente para mostrar uma animação em loop. Use sua imaginação: pode ser uma roda de carro, uma bola de praia, uma hélice de helicóptero, um sol girando, etc.</p>
<p>  <strong>Dica:</strong><br />
  Uma recomendação. Sempre que quiser fazer animação utilizando o <strong>Motion Tween</strong> (quando os quadros da timeline ficam na cor azul claro) converta antes o objeto que receberá animação  em um Símbolo do tipo: Movie Clip ou Graphic. O mais utilizado é o Movie Clip. Pois, além de possuir uma timeline independente da timeline principal, que nos dá liberdade pra criar loops de animação, temos também a possibilidade de  dar nomes de instância para conseguir manipular com código Actionscript se for necessário.</p>
<p>  A grande vantagem de converter sempre em símbolo antes da animação é, caso precise alterar o objeto por algum motivo, ele estará disponível na biblioteca, basta abrir sua biblioteca e clicar duas vezes no objeto para editá-lo. depois que fizer sua edição  automaticamente ele irá ser atualizado no stage sem precisar alterar diretamente na timeline, o que  tomaria um tempo precioso.</p>
<p>  Continuando&#8230;</p>
<p>  Para converter uma imagem vetorial ou bitmap(pixel) em um símbolo, basta selecioná-lo com a ferramenta <strong>Selection tool</strong>, atalho <strong>[v]</strong>. Após selecionado  acesse pelo menu <strong>Modify &gt; Convert to Symbol</strong>, atalho <strong>[F8]</strong>. Como mostra a figura 3 logo a seguir. </p>
<p>  Outra maneira de converter uma imagem em símbolo, é clicar com botão direito do mouse exatamente sobre o objeto e na lista de menu que irá aparecer, clique na opção <strong>&quot;Convert to Symbol..&quot;</strong> irá abrir a mesma  janela <strong>Convert to Symbol&#8230;.</strong> Basta configura-lo de acordo com a sua necessidade.</p>
<p>  Ao abrir a janela <strong>Convert to Symbol</strong> coloque um nome que identifique-o  na biblioteca, isso irá facilitar na sua organização conforme crie mais símbolos.<br />
  Escolha um tipo(Type) de símbolo,  <strong>Movie clip</strong>, e o mais importante, o ponto de registro deve estar no centro. Este ponto de registro que será nosso &quot;eixo&quot; para fazer uma rotação. Feito essa configuração clique em OK e seu objeto agora estará disponível na biblioteca do flash. Como mostra na <strong>imagem 3</strong> logo a seguir.</p>
<p>  <img src="/tutorial/img/loop_rotacao/img2.gif" width="488" height="252"><br />
    <strong>Imagem 3:</strong> Convertendo uma imagem em símbolo Movie clip com ponto de registro no centro.</p>
<p>Com o nosso símbolo devidamente criado e configurado no Stage. Caso não esteja visualizando, temos também este símbolo agora disponível no painel <strong>Library</strong>(biblioteca). <strong>Window &gt; Library</strong>, atalho <strong>[F11]</strong> ou <strong>[Ctrl] + [L]</strong>. Se ele não estiver no stage, basta abrir a biblioteca e arrastar o objeto no stage.</p>
<p>
Até agora sua imagem deve ter ficado algo parecido como a <strong>imagem 4</strong> logo a seguir:</p>
<p><img src="/tutorial/img/loop_rotacao/img3.png" width="564" height="329"><br />
<strong>Imagem 4:</strong> Objeto configurado no stage.</p>
<p>Vamos a animação Motion Tween.
</p>
<p>&nbsp;</p>
<p>
  <strong class="style1">3. Animação Motion Tween com rotação.</strong></p>
<p>No 1º e única layer(camada) clique uma vez no frame 20 para selecioná-lo. como mostra na <strong>imagem 5</strong>:</p>
<p>    <img src="/tutorial/img/loop_rotacao/img4.png" width="356" height="92"><br />
      <strong>Imagem 5:</strong> Selecione o quadro 20 clicando apenas uma vez sobre ele.</p>
<p>      Com o frame ainda selecionado vamos agora inserir um <strong>keyframe</strong>(quadro chave), atalho <strong>[F6]</strong>. Ou também clique com botão direito sobre o frame 20 e escolha pela lista de menu a opção <strong>Insert keyframe</strong> para inserir um quadro chave. Isso fará  uma copia do último quadro chave(keyframe). Como mostra na <strong>imagem 6</strong>:</p>
<p>
  <img src="/tutorial/img/loop_rotacao/img5.png" width="356" height="154"><br />
  <strong>Imagem 6:</strong> com botão direito do mouse sobre o quadro selecione <strong>insert keyframe.</strong></p>
<p>  <img src="/tutorial/img/loop_rotacao/img6.png" width="353" height="90"><strong><br />
  Imagem 7:</strong>keyframe no frame 20 criado.</p>
<p>Agora clique com botão direito do mouse em qualquer frame sendo a partir do 1º keyframe até o frame 19, e selecione a opção <strong>Create Motion Tween</strong>. Iremos criar um animação entre estes  2 quadros chaves que foram criados.  Como mostra na imagem 8.</p>
<p>  <img src="/tutorial/img/loop_rotacao/img7.gif" width="348" height="84" /><br />
      <strong>Imagem 8:</strong> Criando um Motion Tween.</p>
<p>&quot;flecha&quot; mostrando a interação que há entre os keyframes, no nosso caso a partir do 1º keyframe até o keyframe seguinte (frame 20). como mostra na imagem 9.</p>
<p>    <img src="/tutorial/img/loop_rotacao/img8.gif" width="348" height="84" /><br />
    <strong>Imagem 9:</strong> Tween Motion Criado.</p>
<p>Pronto! Agora para vermos o objeto animando de fato, ou melhor, rotacionando em loop. O flash fará todo esse trabalho para nós. Mas, precisamos antes fazer alguns ajustes na propriedades da timeline. Com o painel de <strong>Properties</strong> aberto(atalho [Ctrl] + [F3]). Clique apenas uma vez em qualquer frame (entre o 1º a 20º frame) que tenha animação Tween Motion (barra azul na timeline),  isso irá habilita as propriedades de animação Tween Motion e da timeline.<br />
  No painel de propriedades  do frame, acesse a opção em <strong>Rotate</strong> e coloque para ser rotacionado no &quot;sentido horário&quot; <strong>CW</strong>(Clock Wise). Tem outras opções de escolher sentido anti-horário <strong>CCW</strong>(Counter Clock Wise). A opção <strong>Auto</strong> é quando fazemos a rotação do objeto manualmente no keyframe seguinte. A opção <strong>None</strong> desabilita a rotação entre os quadros chaves.</p>
<p>  No nosso caso deixamos apenas como <strong>CW</strong> para <strong>Rotate</strong>, e automaticamente ficará também com a quantidade 1 para os <strong>times</strong>(vezes que irá rotacionar). Lembrando que o objeto irá rotacionar em torno do seu eixo(ponto de registro do objeto). Como mostra na imagem 10 a seguir e animação.</p>
<p>  <img src="/tutorial/img/loop_rotacao/img9.gif" width="384" height="358" /><br />
<strong>Imagem 10:</strong> configurando o objeto para rotacionar na animação.</p>
<table width="200" border="0" cellspacing="0" cellpadding="0">
<tr>
<td>
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,28,0" width="200" height="200"></p>
<param name="movie" value="/tutorial/img/loop_rotacao/rotacao_loop_exemplo1.swf" />
<param name="quality" value="high" />
      <embed src="/tutorial/img/loop_rotacao/rotacao_loop_exemplo1.swf" quality="high" pluginspage="http://www.adobe.com/shockwave/download/download.cgi?P1_Prod_Version=ShockwaveFlash" type="application/x-shockwave-flash" width="200" height="200"></embed><br />
    </object>
    </td>
</tr>
</table>
<p>
    <strong>Swf:</strong> Animação com rotação.</p>
<p>  Mas observe que ainda nossa animação parece dar um pequena &quot;quebra&quot;. Alguém sabe o porque isso acontece? Isso que iremos resolver agora.
</p>
<p><span class="style3">4. Ajustando detalhes de animação.</span></p>
<p>Lembra que o 1º keyframe e o keyframe seguinte(no nosso caso o frame 20) são extamemente iguais. Já que quando criamos um keyframe ele faz uma copia exata to ultimo. Então, temos 2 quadros iguais fazendo com que animação cria uma pequena &quot;pausa&quot; impedindo que a animação flua corretamente. Para resolver isso, devemos registrar um  keyframe um quadro antes do ultimo keyframe e em seguida apagar o ultimo quadro. Como mostra na <strong>imagem 11, 12</strong> e <strong>13</strong> a seguir.</p>
<p><img src="/tutorial/img/loop_rotacao/img11.gif" width="186" height="204" /><br />
<strong>Imagem 11:</strong> Selecionando o frame 19, anterior ao ultimo keyframe.</p>
<p><img src="/tutorial/img/loop_rotacao/img12.gif" width="186" height="204" /><br />
  <strong>Imagem 12:</strong> Registramos um novo keyframe.</p>
<p>
Remova este ultimo keyframe pelo menu clicando com botão direito sobre ele e escolhendo a opção Remove Frames. Ou selecione o frame e aperte a tecla de atalho <strong>[Shift] + [F5]</strong>. Como mostra a imagem 13 logo abaixo.</p>
<p>  <img src="/tutorial/img/loop_rotacao/img13.gif" width="313" height="193" /><br />
  <strong>Imagem 13:</strong> removendo o ultimo keyframe.</p>
<p>
  Deste modo, sua timeline deve ter ficado algo parecido como a <strong>imagem 14</strong>.
</p>
<p><img src="/tutorial/img/loop_rotacao/img14.gif" width="295" height="292" /><br />
  <strong>Imagem 14:</strong> Agora os keyframes estão configurados. Não havendo repetições dos quadros.</p>
<p>  Agora basta testar seu filme, teclas <strong>[Ctrl] + [Enter]</strong> e ver o resultado mais fluente na animação.<br />
  Provavalmente sua animação pode ocorre o seguinte:</p>
<table width="200" border="0" cellspacing="0" cellpadding="0">
<tr>
<td>
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,28,0" width="200" height="200"></p>
<param name="movie" value="/tutorial/img/loop_rotacao/rotacao_loop_exemplo2.swf" />
<param name="quality" value="high" />
    <embed src="/tutorial/img/loop_rotacao/rotacao_loop_exemplo2.swf" quality="high" pluginspage="http://www.adobe.com/shockwave/download/download.cgi?P1_Prod_Version=ShockwaveFlash" type="application/x-shockwave-flash" width="200" height="200"></embed><br />
  </object>
  </td>
</tr>
</table>
<p>
<strong>Swf:</strong> Animação fica mais rápida.</p>
<p>Caso isso ocorra em algum momento com sua animação, para resolver isso devemos mudar no painel de propriedades da animação o numero de rotação inserindo 0(zero). Esta rotação é referente ao número de vezes que o objeto irá rotacionar entre um quadro chaves ao outro. Isto  não é o numero de vezes que a animação irá repetir. Com mostra na imagem 15.</p>
<p><img src="/tutorial/img/loop_rotacao/img15.gif" width="455" height="359" /><br />
  Imagem 15: Configurando o numero de vezes que irá rotacionar.</p>
<p>  Teste sue filme novamente, <strong>[Ctrl] + [Enter].</strong> Com isso sua animação volta ao normal.
</p>
<table width="200" border="0" cellspacing="0" cellpadding="0">
<tr>
<td>
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,28,0" width="200" height="200"></p>
<param name="movie" value="/tutorial/img/loop_rotacao/rotacao_loop_exemplo3.swf" />
<param name="quality" value="high" />
    <embed src="/tutorial/img/loop_rotacao/rotacao_loop_exemplo3.swf" quality="high" pluginspage="http://www.adobe.com/shockwave/download/download.cgi?P1_Prod_Version=ShockwaveFlash" type="application/x-shockwave-flash" width="200" height="200"></embed><br />
  </object>
  </td>
</tr>
</table>
<p>
  <strong>Swf:</strong> Animação finalizada.</p>
<p>
  Dica: Claro que depende da sua animação e intenção. Mas evite  colocar mais de 2 vezes para rotacionar o objeto na animação. Dependendo da sua intenção a rotação começa criar um aspecto esquisito. Vale a pena fazer alguns testes para conhecer as possibilidades.
</p>
<p>  Esta animação apenas está na timeline principal. Precisamos colocar colocar está animação dentro de um Movie clip. Com isso conseguimo reaproveitarmos em outra animações do palco.</p>
<p>Selecione todos os frames em seguida clique com botão direito do mouse sobre os frames selecionados e selecione na lista a opção <strong>Cut Frames</strong>, ou utilizar o atalho <strong>[Ctrl] + [Alt] + [x]</strong> para recortar os frames selecionados. Com isso além de retirar os frames da timeline  ao mesmo tempo copiamos esses frames. Como mostra na <strong>imagem 16</strong> e <strong>17</strong>. Iremos colocar esses frames em um novo símbolo mais adiante.</p>
<p><img src="/tutorial/img/loop_rotacao/img16.gif" width="455" height="259" /><br />
<strong>Imagem 16:</strong> recortando os frames da timeline principal.</p>
<p><img src="/tutorial/img/loop_rotacao/img17.gif" width="193" height="56" /><br />
<strong>Imagem 17:</strong> Frames vazios na  timeline principal, porque recortamos para inserir em um novo símbolo.</p>
<p>Agora vamos criar um novo símbolo do tipo Movie clip para insrir essa animação que criamos. Para isto, basta ir pelo menu <strong>Insert &gt; New Symbol</strong>, atalho <strong>[Ctrl] + [F8].</strong><br />
Irá abrir um painel <strong>Create New symbol</strong>, dê um nome que irá identificá-lo na biblioteca depois, para este símbolo e escolha  o tipo para ser  <strong>Movie clip</strong>. Como mostra na <strong>imagem 18</strong>.</p>
<p><img src="/tutorial/img/loop_rotacao/img18.gif" width="407" height="129" /><br />
<strong>Imagem 18:</strong> Criando um novo siimbolo do tipo Movie clip.</p>
<p>Automaticamente ao criar um símbolo novo iremos visualizar a timeline deste Movie clipe. <strong>Imagem 19</strong>.</p>
<p><img src="/tutorial/img/loop_rotacao/img19.gif" width="407" height="129" /><br />
<strong>Imagem 19:</strong> Visualizando a timeline do novo símbolo.</p>
<p>
Agora clique com o botão direito do mouse sobre o único frame desta timeline, e na lista selecione a opção <strong>Paste Frames</strong>, ou atalho <strong>[Ctrl] + [Alt] + [v]</strong> para inserir  os quadros de animação que criamos anteriormente. Como mostra na <strong>imagem 20</strong> e <strong>21</strong>.<br />
<img src="/tutorial/img/loop_rotacao/img20.gif" width="392" height="322" /><br />
<strong>Imagem 20:</strong> Inserindo a animação neste novo símbolo.</p>
<p>
<img src="/tutorial/img/loop_rotacao/img21.gif" width="353" height="204" /><br />
<strong>Imagem 21:</strong> Novo símbolo com a animação inserida.</p>
<p>Repare que automaticamente a layer tem o nome que definimos anteriormente e também exatamente a mesma animação que criamos na timeline principal. A diferença que agora essa animação está inserida em um Novo Movie clip.</p>
<p><strong>Obs:</strong><br />
Poderiamos criar um novo símbolo desde do começo e inserir a animação nele. Mas como fizemos neste exemplo antes na timeline principal, está é uma das maneiras de resolver isso caso precise converter sua animação em um novo Símbolo. Não necessariamente precisa ser desta ordem de criação.</p>
<p>
 Agora, para retornar ao palco principal clique no botão <strong>Scene1</strong>.<br />
Como mostra na <strong>imagem 22</strong>.</p>
<p><img src="/tutorial/img/loop_rotacao/img22.gif" width="241" height="132" /><br />
<strong>Imagem 22:</strong> retornando ao palco principal do Flash.</p>
<p>
Este Movie clipe que denominamos de <strong>Animação Objeto</strong> agora está disponível na <strong>library</strong>(biblioteca) do flash. Para visualizar abra a biblioteca <strong>Window &gt; Library</strong>, atalho da biblioteca <strong>[F11]</strong> ou <strong>[Ctrl ]+[L]</strong>.<br />
Basta selecioná-lo e arastar para o stage e utilizar em sua animação da maneira como achar necessário.</p>
<p><img src="/tutorial/img/loop_rotacao/img23.gif" width="450" height="292" /><br />
<strong>Imagem 23:</strong> Inserindo objeto no stage.</p>
<p>Experimente  duplicar o objeto (selecione-o e com a tecla <strong>[Alt]</strong> ou tecla<strong> [Ctrl]</strong> pressionadas arraste o objeto no palco, isso fará com que duplique o objeto. Depois experimente modificar suas características. Por exemplo, podemos modificar  largura, altura, rotacionar ou &quot;deformar&quot;(skew) o objeto utilizando o painel <strong>Transform</strong>, <strong>Window &gt; Transform</strong>, atalho<strong> [Ctrl] + [T]</strong>. Com este painel, podemos criar efeitos facilmente de &quot;perspectiva&quot; no objeto. Vale a penas fazer testes pra conhecer melhor. Como mostra na <strong>imagem 24</strong>.</p>
<p><img src="/tutorial/img/loop_rotacao/img24.gif" width="450" height="292" /><br />
<strong>Imagem 24:</strong> Alterando caracteristicas do objeto pelo painel <strong>Transform</strong>.</p>
<p>
E também mudar caracterisca de cor, alpha, brilho do Movie clip pelo painel properties(propriedades), atalho <strong>[Ctrl] + [F3]</strong>.</p>
<p><img src="/tutorial/img/loop_rotacao/img25.gif" width="450" height="292" /><br />
<strong>Imagem 25:</strong> Alterando caracteristicas do Movie clip pelo painel Properties(propriedades).</p>
<p></p>
<table width="200" border="0" cellspacing="0" cellpadding="0">
<tr>
<td>
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,28,0" width="200" height="200"></p>
<param name="movie" value="/tutorial/img/loop_rotacao/rotacao_loop_exemplo4.swf" />
<param name="quality" value="high" />
  <embed src="/tutorial/img/loop_rotacao/rotacao_loop_exemplo4.swf" quality="high" pluginspage="http://www.adobe.com/shockwave/download/download.cgi?P1_Prod_Version=ShockwaveFlash" type="application/x-shockwave-flash" width="200" height="200"></embed><br />
</object>
</td>
</tr>
</table>
<p>
<strong>Swf:</strong> Exemplo final da animação.</p>
<p>
  <span class="style1"><strong>5. Download do exemplo</strong></span><br />
  <a href="http://www.alvoweb.com/download/exemplo_loop_rotacao_AlvoWeb.zip"><br />
  Donwload deste exemplo.</a></p>
<p>    <span class="style3">6.   Considerações finais</span></p>
<p>O MovieClipe possui a vantagem de ter uma  timeline própria que não depende de número de quadros da timeline principal  para rodar animação. E conseguimos também inserir nome de instância nele para podermos controlar pelo código Actionscript caso for necessário. Além de poder aplicar filtros nele.</p>
<p>Já o símbolo do tipo Graphic(gráfico) também possuí uma timeline própria. Mas ele depende de número de quadros inserido na timeline principal para rodar, e não conseguimos inserir nome de instância nele. Não é possível também utilizar filtros em símbolo do tipo &#8220;Graphic&#8221;. Este tipo de simbolo é mais utilizado quando não desejamos ter animações em sua timeline. Geralmente, o mais utilizado são símbolos do tipo Movie clip tanto para animações quando para controlar objetos pelo Actionscript.</p>
<p>Claro que este exemplo é bastante simples. Mas, pense que no lugar deste simples quadrado você pode utilizar qualquer outra imagem que precisar animar e rotacionar. Com isso já podemos fazer exemplos legais que vemos em banners ou animações pela internet. seja curioso, o conceito é o mesmo utilizado e com tempo e prática certamente você mesmo descobrirá novas técnicas que sinta mais confortável em trabalhar. Divirta-se.</p>
<p>Abraços e até a próxima!</p>
<p><a href="http://www.rodrigopixel.com.br" target="_blank">Rodrigo Gonçalves</a><br />
Equipe Alvo Web
</p>
<p>
<script type="text/javascript"><!--
google_ad_client = "pub-1122471812070813";
google_ad_width = 336;
google_ad_height = 280;
google_ad_format = "336x280_as";
google_ad_type = "text_image";
google_color_border = "fafafa";
google_color_bg = "fafafa";
google_color_link = "003366";
google_color_text = "7d7d7d";
google_color_url = "78b749";

//--></script>
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
</p>
]]></content:encoded>
			<wfw:commentRss>http://www.alvoweb.com/loop-de-animacao-com-rotacao-no-flash-cs3/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Manipulando carregamento externo com AS3</title>
		<link>http://www.alvoweb.com/manipulando-carregamento-externo-com-as3/</link>
		<comments>http://www.alvoweb.com/manipulando-carregamento-externo-com-as3/#comments</comments>
		<pubDate>Mon, 09 Jun 2008 19:44:28 +0000</pubDate>
		<dc:creator>Rodrigo</dc:creator>
		
		<category><![CDATA[ActionScript]]></category>

		<guid isPermaLink="false">http://www.alvoweb.com/manipulando-carregamento-externo-com-eventos-as3/</guid>
		<description><![CDATA[


Autor: Rodrigo Gonçalves
 Flash CS3 Professional
Versão AS: ActionScript 3.0
Versão do Player: Flash Player 9
Package: flash.display
Classe: public class Loader
Dificuldade: conhecimentos básicos de funcionamento do Flash, Actionscript 3.0 e lógica de programação.
Fala galera, tranqüilo?!
  Já vimos como podemos carregar uma imagem externa(jpg, gif, png ou swf) no AS3. Carregar imagem externa com Classe Loader AS3.
Agora, vamos [...]]]></description>
			<content:encoded><![CDATA[<style type="text/css">
<!--
.style1 {
	font-size: 14px;
	color: #0066CC;
}
-->
</style>
<p><strong>Autor:</strong> Rodrigo Gonçalves</p>
<p><strong> Flash CS3 Professional<br />
Versão AS: </strong><em>ActionScript 3.0</em><br />
<strong>Versão do Player: </strong><em>Flash Player 9</em><br />
<strong>Package:</strong> <em>flash.display</em><br />
<strong>Classe: </strong><em>public class Loader<br />
</em><strong>Dificuldade:</strong> conhecimentos básicos de funcionamento do Flash, Actionscript 3.0 e lógica de programação.</p>
<p>Fala galera, tranqüilo?!<br />
  Já vimos como podemos carregar uma imagem externa(jpg, gif, png ou swf) no AS3. <a href="http://www.alvoweb.com/carregar-imagem-externa-com-classe-loader-as3/" target="_blank">Carregar imagem externa com Classe Loader AS3</a>.<br />
Agora, vamos ver como podemos fazer a manipulação do conteúdo carregado externamente.<br />
Pra quem já conhecia o a função loadMovie() a classe MovieClipLoader()  na versão AS2. Agora passamos à utilizar a Classe <strong>Loader()</strong> e <strong>URLResquet()</strong> no AS3 para carregar imagens externas. Para conseguirmos manipular o conteúdo externo precisamos utilizar os Eventos que recebem informações sobre o carregamento externo vinda da propriedade <strong>contentLoaderInfo</strong> da classe<strong> Loader()</strong>. As classes de Eventos também podem ser aplicadas para carregamento de dados externos(ex: arquivos Txt, XML, HTML, entre alguns outros). Mas falaremos   sobre carregamento de imagens/filmes externos.</p>
</p>
<p><a href="http://www.alvoweb.com/download/exemplo_loader_as3_manipulacaoComEventos_AlvoWeb.zip" class="style1">Download de um exemplo simples sobre carregamento externo com uso de Eventos.</a></p>
<p>&nbsp;</p>
<p><strong><span class="style1">Quando e pra quê aplicar Eventos em arquivo externos?</span></p>
<p>- Alguns exemplos:</strong><br />
-Pode ser útil para informar ao usuário do que acontece sobre o conteúdo externo que está sendo carregado naquele momento.</p>
<p> -Poderá  também executar/chamar alguma função no começo do carregamento, durante ou após concluir o mesmo, e  ainda informar ao usuário caso eventualmente houver erros no carregamento deste conteúdo.</p>
<p>-O arquivo principal(swf) fica mais &quot;leve&quot; por não precisar conter imagens internamente em seu arquivo swf e facilita manutenção. Os arquivos externos, são carregados somente quando solicitados(Eventualmente) pelo programa ou pelo usuário.</p>
<p>&nbsp;</p>
<p class="style1"><strong>Manipulando carregamentos externos com Eventos</strong>
</p>
<p>Para manipular o conteúdo carregado externamente, podemos usar a propriedade chamada <strong>contentLoaderInfo</strong> da <strong>classe Loader().</strong> Quando utilizado, esta propriedade retorna um objeto da classe <strong>LoaderInfo</strong>().</p>
<p>Antes de entendermos  o código, vamos ver  como fica a sintaxe para entender melhor sua aplicação:</p>
<p>A propriedade Loader.<strong>contentLoaderInfo</strong> &quot;dispara&quot; informações e o &quot;Ouvinte de Eventos&quot;( <em>addEventListener()</em> ) verifica estas informações recebidas e quando ocorrer o tipo de evento definido neste ouvinte, executa/chama a função. Vejamos:</p>

<div class="wp_syntax"><div class="code"><pre class="actionscript3">objeto_Da_Classe_Loader.<span style="color: #004993;">contentLoaderInfo</span>.<span style="color: #004993;">addEventListener</span><span style="color: #000000;">&#40;</span> TipoClasseEvento.PROPRIEDADE_EVENTO, nomeDaFuncao <span style="color: #000000;">&#41;</span>;</pre></div></div>

<p>
</p>
<p> Para cada Evento devemos ter ou criar uma função   que será chamada quando ocorrer o determinado Evento. Esta função, deve ter um único parâmetro/argumento cadastrado, e este parâmetro deve ser do mesmo tipo (:) do Evento cadastrado dentro da  addEventlistener(). Precisamos deste argumento cadastrado na função, porque ele contém informações sobre o objeto carregado, e com isso, podemos utilizar na função   os métodos e propriedades do Evento. A função criada não precisa retornar algo. Ou seja, devemos definir como tipo (:) de retorno ( void ). Vejamos:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
</pre></td><td class="code"><pre class="actionscript3"><span style="color: #339966; font-weight: bold;">function</span> nomeDaFuncao<span style="color: #000000;">&#40;</span> argumentoDoEvento<span style="color: #000000; font-weight: bold;">:</span>TipoClasseEvento <span style="color: #000000;">&#41;</span><span style="color: #000000; font-weight: bold;">:</span><span style="color: #0033ff; font-weight: bold;">void</span>
<span style="color: #000000;">&#123;</span>
	<span style="color: #009900;">//declarações da função</span>
<span style="color: #000000;">&#125;</span></pre></td></tr></table></div>

<p>
</p>
<p>  Alguns do Eventos mais notáveis para manipulação de carregamento de arquivos externos:<br />
  <strong><br />
  * Event.OPEN <em>(open)</em></strong><br />
  Quando iniciar  o carregamento do arquivo. </p>
<p>  <strong>* ProgressEvent.PROGRESS <em>(progress)</em></strong><br />
  Verifica o progresso do carregamento do arquivo externo.</p>
<p><strong>* Event.COMPLETE <em>(complete)</em></strong><br />
  É quando termina o carregamento.</p>
<p>      <strong>* Event.INIT <em>(init)</em></strong><br />
  É gerado quando as propriedades e métodos do conteúdo que foi carregado estão habilitados para uso após seu carregamento completo. Geralmente quando está disponível a visualização da imagem no stage.
</p>
<p><strong>* HTTPStatusEvent.HTTP_STATUS <em>(httpStatus)</em></strong><br />
  Surge quando houve falha no status de uma solicitação HTTP, não consegue carregar o arquivo solicitado.</p>
<p>      <strong>* IOErrorEvent.IO_ERROR <em>(ioError)</em></strong><br />
  Aparece quando tem um &quot;erro fatal&quot; que resulta em um &quot;cancelamento&quot; na hora de carregar o arquivo.</p>
<p>      <strong>* SecurityErrorEvent.SECURITY_ERROR <em>(securityError)</em></strong><br />
É gerado quando o arquivo que está sendo  carregado está &quot;fora da área&quot; de segurança permitida.</p>
<p><strong>* Event.UNLOAD <em>(unload)</em></strong><br />
  É também gerado quando  utilizamos o método <strong>Loader.unload()</strong> para remover o arquivo que foi carregado ou quando utilizamos o método <strong>Loader.load()</strong> para substituir um conteúdo que já foi carregado no mesmo &quot;container&quot;(alvo onde a imagem é carregada do objeto Loader).
</p>
<p><strong>Dica:</strong> <br />
  Todas as Classes de Eventos podem ser encontradas no package(pasta) <strong>flash.events</strong> do Flash. Também existe mais informações  no &quot;Help do Flash&quot;.(atalho F1) procurando pelo nome da Classe de Evento. Ex.: <strong>ProgressEvent</strong>, <strong>Event</strong>, <strong>IOErrorEvent</strong>, entre outros. Lá você encontra métodos, propriedades e constantes de cada Evento e também alguns exemplos de sua utilização.<br />
  Vale a pena também conferir no Help do Flash as Classes <strong>Loader()</strong> e <strong>LoaderInfo() </strong>para maiores informações.
</p>
<p><strong class="style1">Exemplo</strong></p>
<p>  No exemplo que montamos logo abaixo está brevemente comentado no próprio código.<br />
  Crie um novo documento <strong>&quot;.Fla&quot;</strong> na <strong>versão AS3</strong> e salve-o em uma  pasta.<br />
  Coloque também  uma imagem externa com tamanho relativamente  grande em peso de KBytes nesta mesma pasta do arquivo Fla. Isso para fazermos &quot;testes&quot; de carregamento  externo e conseguirmos entender melhor como funciona cada tipo de Evento. <br />
  Para simular uma conexão de internet, teste filme pressionando as teclas (Ctrl + Enter, 2 vezes seguidas). Ou também poderá fazer testes com imagens que estão na internet. Ex.: <em>&quot;http://www.seusite.com/suaImagem.jpg&quot;</em>.<br /> <br />
  As informações de carregamento serão mostradas na caixa de saída &quot;Output&quot; para facilitar nosso entendimento e dar maior foco nos tipos de Eventos utilizados. <br />
  Pense que ali no lugar do método trace(), você poderá chamar/executar alguma ação/método que queira fazer  no início do carregamento, durante e depois que completar o mesmo.</p>
<p><em><strong>Obs:</strong> Lembra-se, estamos utilizando a versão <strong>Flash CS3</strong> Adobe para trabalhar com a versão <strong>AS3</strong>.</em></p>
<p>No próprio código logo abaixo está inserido uma breve explicação.<br />
Abra o seu arquivo Fla, selecione a primeira camada(layer) e no 1º frame abra o painel de Actions(atalho F9) e coloque o seguinte código:</p>
<p>
<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
</pre></td><td class="code"><pre class="actionscript3"><span style="color: #3f5fbf;">/* 
 * Criamos variaveis da Classe URLRequest e Loader:
 * carregamos o arquivo e adicionamos o objeto Loader no stage.
 */</span>
<span style="color: #6699cc; font-weight: bold;">var</span> <span style="color: #004993;">url</span><span style="color: #000000; font-weight: bold;">:</span><span style="color: #004993;">URLRequest</span> = <span style="color: #0033ff; font-weight: bold;">new</span> <span style="color: #004993;">URLRequest</span><span style="color: #000000;">&#40;</span><span style="color: #990000;">&quot;endereco_da_imagem_aqui&quot;</span><span style="color: #000000;">&#41;</span>;
<span style="color: #6699cc; font-weight: bold;">var</span> carregador<span style="color: #000000; font-weight: bold;">:</span><span style="color: #004993;">Loader</span> = <span style="color: #0033ff; font-weight: bold;">new</span> <span style="color: #004993;">Loader</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>;
carregador.<span style="color: #004993;">load</span><span style="color: #000000;">&#40;</span> <span style="color: #004993;">url</span> <span style="color: #000000;">&#41;</span>;
<span style="color: #004993;">addChild</span><span style="color: #000000;">&#40;</span>carregador<span style="color: #000000;">&#41;</span>;
&nbsp;
<span style="color: #3f5fbf;">/*
Logo abaixo utilizamos Event handlers (Eventos de manipulação) do conteúdo externo.
Devemos utilizar a propriedade &quot;contentLoaderInfo&quot; da Classe Loader()
que verifica informações sobre o conteúdo à ser carregado e consegue &quot;disparar&quot; informações para os Eventos.
Estamos utilizando alguns dos principais.
*/</span>
&nbsp;
&nbsp;
<span style="color: #3f5fbf;">/*
 * Event.OPEN
 * Este evento Event.OPEN verifica quando iniciar(abrir) o carregamento do conteudo
 */</span>
carregador.<span style="color: #004993;">contentLoaderInfo</span>.<span style="color: #004993;">addEventListener</span><span style="color: #000000;">&#40;</span> <span style="color: #004993;">Event</span>.<span style="color: #004993;">OPEN</span>, iniciaCarregamento <span style="color: #000000;">&#41;</span>;
<span style="color: #339966; font-weight: bold;">function</span> iniciaCarregamento<span style="color: #000000;">&#40;</span> evento<span style="color: #000000; font-weight: bold;">:</span><span style="color: #004993;">Event</span> <span style="color: #000000;">&#41;</span><span style="color: #000000; font-weight: bold;">:</span><span style="color: #0033ff; font-weight: bold;">void</span>
<span style="color: #000000;">&#123;</span>
	<span style="color: #009900;">//poderá fazer qualquer coisa quando iniciar o carregamento</span>
	<span style="color: #004993;">trace</span><span style="color: #000000;">&#40;</span><span style="color: #990000;">&quot;começou o carregamento. Usamos o Event.OPEN<span style="">\n</span>&quot;</span><span style="color: #000000;">&#41;</span>;
<span style="color: #000000;">&#125;</span>
&nbsp;
&nbsp;
<span style="color: #3f5fbf;">/*
 * ProgressEvent.PROGRESS
 * Este evento ProgressEvent.PROGRESS verifica o progresso de carregamento do conteudo
 */</span>
carregador.<span style="color: #004993;">contentLoaderInfo</span>.<span style="color: #004993;">addEventListener</span><span style="color: #000000;">&#40;</span> <span style="color: #004993;">ProgressEvent</span>.<span style="color: #004993;">PROGRESS</span>, progressoDeCarregamento <span style="color: #000000;">&#41;</span>;
<span style="color: #339966; font-weight: bold;">function</span> progressoDeCarregamento<span style="color: #000000;">&#40;</span> evento<span style="color: #000000; font-weight: bold;">:</span><span style="color: #004993;">ProgressEvent</span> <span style="color: #000000;">&#41;</span><span style="color: #000000; font-weight: bold;">:</span><span style="color: #0033ff; font-weight: bold;">void</span>
<span style="color: #000000;">&#123;</span>
	<span style="color: #009900;">//pegamos o valor carregado e valor total do conteudo(evento.target)</span>
	<span style="color: #6699cc; font-weight: bold;">var</span> carregado<span style="color: #000000; font-weight: bold;">:</span><span style="color: #004993;">Number</span> = evento.<span style="color: #004993;">target</span>.<span style="color: #004993;">bytesLoaded</span>;
	<span style="color: #6699cc; font-weight: bold;">var</span> total<span style="color: #000000; font-weight: bold;">:</span><span style="color: #004993;">Number</span> = evento.<span style="color: #004993;">target</span>.<span style="color: #004993;">bytesTotal</span>;
	<span style="color: #6699cc; font-weight: bold;">var</span> porcentagem<span style="color: #000000; font-weight: bold;">:</span><span style="color: #004993;">uint</span> = <span style="color: #004993;">Math</span>.<span style="color: #004993;">round</span><span style="color: #000000;">&#40;</span> carregado <span style="color: #000000; font-weight: bold;">/</span> total <span style="color: #000000; font-weight: bold;">*</span> <span style="color: #000000; font-weight:bold;">100</span> <span style="color: #000000;">&#41;</span>;
	<span style="color: #004993;">trace</span><span style="color: #000000;">&#40;</span>porcentagem <span style="color: #000000; font-weight: bold;">+</span><span style="color: #990000;">&quot; % carregados. Usamos o ProgressEvent.PROGRESS&quot;</span><span style="color: #000000;">&#41;</span>;
<span style="color: #000000;">&#125;</span>
&nbsp;
<span style="color: #3f5fbf;">/*
 * Event.COMPLETE
 * Imagem carrega por completo mas ainda não está visivel no stage.
 */</span>
carregador.<span style="color: #004993;">contentLoaderInfo</span>.<span style="color: #004993;">addEventListener</span><span style="color: #000000;">&#40;</span> <span style="color: #004993;">Event</span>.<span style="color: #004993;">COMPLETE</span>, imagemCompleta <span style="color: #000000;">&#41;</span>;
<span style="color: #339966; font-weight: bold;">function</span> imagemCompleta<span style="color: #000000;">&#40;</span> evento<span style="color: #000000; font-weight: bold;">:</span><span style="color: #004993;">Event</span> <span style="color: #000000;">&#41;</span><span style="color: #000000; font-weight: bold;">:</span><span style="color: #0033ff; font-weight: bold;">void</span><span style="color: #000000;">&#123;</span>
<span style="color: #004993;">trace</span><span style="color: #000000;">&#40;</span><span style="color: #990000;">&quot;Conteudo carregado por completo! Usamos o Event.COMPLETE<span style="">\n</span>&quot;</span><span style="color: #000000;">&#41;</span>;
<span style="color: #000000;">&#125;</span>
&nbsp;
<span style="color: #3f5fbf;">/* 
 * Event.INIT
 * Imagem carreda e está visivel no stage. Está pronta para utilizar propriedades/métodos para manipular a imagem.
 * Este evento é parceido com Event.COMPLETE porém é melhor caso queira fazer algo com o conteúdo.
 */</span>
carregador.<span style="color: #004993;">contentLoaderInfo</span>.<span style="color: #004993;">addEventListener</span><span style="color: #000000;">&#40;</span> <span style="color: #004993;">Event</span>.<span style="color: #004993;">INIT</span>, mostraImagem <span style="color: #000000;">&#41;</span>;
<span style="color: #339966; font-weight: bold;">function</span> mostraImagem<span style="color: #000000;">&#40;</span> evento<span style="color: #000000; font-weight: bold;">:</span><span style="color: #004993;">Event</span> <span style="color: #000000;">&#41;</span><span style="color: #000000; font-weight: bold;">:</span><span style="color: #0033ff; font-weight: bold;">void</span>
<span style="color: #000000;">&#123;</span>
	<span style="color: #004993;">trace</span><span style="color: #000000;">&#40;</span><span style="color: #990000;">&quot;Agora poderá utilizar as proprieddades/métodos para fazer algo com a imagem!<span style="">\n</span>Usamos o Event.INIT<span style="">\n</span>&quot;</span><span style="color: #000000;">&#41;</span>;
	<span style="color: #009900;">//depois de carregar pode fazer algo com a imagem. Ex:</span>
	<span style="color: #0033ff; font-weight: bold;">this</span>.<span style="color: #004993;">alpha</span> = <span style="color: #000000; font-weight:bold;">0.5</span> <span style="color: #009900;">//alpga de 50%</span>
	<span style="color: #0033ff; font-weight: bold;">this</span>.<span style="color: #004993;">rotation</span> = <span style="color: #000000; font-weight:bold;">30</span>; <span style="color: #009900;">//rotação de 30</span>
<span style="color: #000000;">&#125;</span>
&nbsp;
<span style="color: #3f5fbf;">/* 
 * IOErrorEvent
 * Também é possivel disparar Eventos de Erros, quando por exemplo a imagem não puder ser carregada ou não existe.
 * Para simular um erro, basta alterar o endereço para um inexistente.
 */</span>
carregador.<span style="color: #004993;">contentLoaderInfo</span>.<span style="color: #004993;">addEventListener</span><span style="color: #000000;">&#40;</span><span style="color: #004993;">IOErrorEvent</span>.<span style="color: #004993;">IO_ERROR</span>, ioErrorImagem<span style="color: #000000;">&#41;</span>;
<span style="color: #339966; font-weight: bold;">function</span> ioErrorImagem<span style="color: #000000;">&#40;</span> evento<span style="color: #000000; font-weight: bold;">:</span><span style="color: #004993;">IOErrorEvent</span> <span style="color: #000000;">&#41;</span><span style="color: #000000; font-weight: bold;">:</span><span style="color: #0033ff; font-weight: bold;">void</span>
<span style="color: #000000;">&#123;</span> 
	<span style="color: #004993;">trace</span><span style="color: #000000;">&#40;</span><span style="color: #990000;">&quot;Conteudo&quot;</span>, evento.<span style="color: #004993;">target</span>, <span style="color: #990000;">&quot;não pode ser carregado.<span style="">\n</span>Verifique se a imagem existe no local ou a conexão falhou!<span style="">\n</span>Usamos o IOErrorEvent.IO_ERROR&quot;</span><span style="color: #000000;">&#41;</span>;
<span style="color: #000000;">&#125;</span></pre></td></tr></table></div>

<p><a href="http://www.alvoweb.com/download/exemplo_loader_as3_manipulacaoComEventos_AlvoWeb.zip" class="style1">Download 1</a><br />
<a href="http://www.alvoweb.com/download/exemplo2_loader_as3_manipulacaoComEventos_AlvoWeb.zip" class="style1">Download 2</a>
  </p>
</p>
<p>Abraços e até a próxima!</p>
<p>  <a href="http://www.rodrigopixel.com.br" target="_blank">Rodrigo Gonçalves</a><br />
Equipe Alvo Web
</p>
<p>
<a rel="license" href="http://creativecommons.org/licenses/by-nc-sa/2.5/br/"><img alt="Creative Commons License" style="border-width:0" src="http://i.creativecommons.org/l/by-nc-sa/2.5/br/80x15.png" /></a> <br />
O Conteúdo do <a xmlns:cc="http://creativecommons.org/ns#" href="http://www.alvoweb.com" property="cc:attributionName" rel="cc:attributionURL">Alvo Web Developers</a> está  licenciada sob uma <a rel="license" href="http://creativecommons.org/licenses/by-nc-sa/2.5/br/">Creative Commons Atribuição-Uso Não-Comercial-Compartilhamento pela mesma Licença 2.5 Brasil License</a>.<br />
<br />
<script type="text/javascript"><!--
google_ad_client = "pub-1122471812070813";
google_ad_width = 336;
google_ad_height = 280;
google_ad_format = "336x280_as";
google_ad_type = "text_image";
google_color_border = "fafafa";
google_color_bg = "fafafa";
google_color_link = "003366";
google_color_text = "7d7d7d";
google_color_url = "78b749";

//--></script>
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
</p>
]]></content:encoded>
			<wfw:commentRss>http://www.alvoweb.com/manipulando-carregamento-externo-com-as3/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Como converter String em Array</title>
		<link>http://www.alvoweb.com/como-converter-string-em-array/</link>
		<comments>http://www.alvoweb.com/como-converter-string-em-array/#comments</comments>
		<pubDate>Thu, 08 May 2008 07:24:32 +0000</pubDate>
		<dc:creator>Rodrigo</dc:creator>
		
		<category><![CDATA[ActionScript]]></category>

		<guid isPermaLink="false">http://www.alvoweb.com/como-converter-string-em-array/</guid>
		<description><![CDATA[Autor: Rodrigo Gonçalves
Classe:  String 
Versão AS:  ActionScript 2.0 e 3.0
Obs.: Para um bom aproveitamento deste artigo é interessante ter conhecimento básico de Strings e Arrays.

Fala galera, tranquilo?
Vamos ver como podemos converter um valor do tipo String (texto) em &#34;elementos&#34; de Array.
Para isto, utilizamos o método split() da Classe String().
Sintaxe do método String.split():

split&#40;delimiter:String, limit:Number&#41;:Array


O [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Autor:</strong> Rodrigo Gonçalves</p>
<p><strong>Classe:</strong>  String<br /> <br />
<strong>Versão AS:</strong>  ActionScript 2.0 e 3.0</p>
<p><strong>Obs.:</strong> Para um bom aproveitamento deste artigo é interessante ter conhecimento básico de Strings e Arrays.<br />
</p>
<p>Fala galera, tranquilo?</p>
<p>Vamos ver como podemos converter um valor do tipo <strong>String</strong> (texto) em &quot;elementos&quot; de <strong>Array</strong>.<br />
Para isto, utilizamos o método <strong>split()</strong> da <strong>Classe String()</strong>.</p>
<p><strong>Sintaxe do método String.split():</strong></p>

<div class="wp_syntax"><div class="code"><pre class="actionscript3"><span style="color: #004993;">split</span><span style="color: #000000;">&#40;</span>delimiter<span style="color: #000000; font-weight: bold;">:</span><span style="color: #004993;">String</span>, limit<span style="color: #000000; font-weight: bold;">:</span><span style="color: #004993;">Number</span><span style="color: #000000;">&#41;</span><span style="color: #000000; font-weight: bold;">:</span><span style="color: #004993;">Array</span></pre></div></div>

<p>
O método <strong>String.slpit()</strong> &quot;divide&quot; valor inserido em um objeto String e retorna como valor do tipo Array. Ou seja,  podemos controlar/manipular valores de um &quot;texto&quot;(String) como elementos de Array.<br />
Este método <strong>split()</strong> tem dois parâmetros, sendo eles:
</p>
<p><strong>delimiter</strong>:<br />
Primeiro parâmetro, é o &quot;delimitador&quot;. Ou seja, utiliza uma &quot;palavra chave&quot; que você determina(pode ser qualquer valor que estiver inserido na String) a qual será usado como separador. Este parâmetro  deve  ser colocado entre aspas duplas &quot; &quot; pois é do tipo String. Este delimitador funciona como uma espécie de &quot;separador&quot; entre cada elemento que você quer separar. Claro que você deverá inserir um caracter comum para todos os elementos que você quer separar. <br />
Desta maneira, conseguirmos &quot;dividir&quot; valores de uma String como  elementos de Array e manipulá-los  como tal. Caso  seja indefinido( undefined ) este primeiro parâmetro,  o objeto   String inteiro será inserido no primeiro elemento do Array. Sabendo que um &quot;index Array&quot; começa a contagem de elementos a partir do número 0 (zero) e não a partir do número 1.</p>
<p><strong>limit</strong>:<br />
Segundo parâmetro, é o &quot;limite&quot;. Pode ser opcional, é o &quot;número máximo&quot; de elementos que você quer separar e inserir em um objeto Array. Caso não seja colocado o segundo parâmetro, por padrão  irá inserir todos elementos separados pelo delimitador.</p>
<p>
Vamos ver alguns exemplos de como utilizar o método <strong>split()</strong>.</p>
<p>  Vamos criar um objeto String que recebe como valor uma lista de &quot;dias da semana&quot;, estes valores estão separado por vírgulas(poderia ser qualquer caracteres que quisermos).<br />
  Crie um novo arquivo Fla(pode ser versão AS2 ou AS3). Clique no primeiro e único frame da primeira layer e abra o painel de Actions  (atalho F9), digite:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
</pre></td><td class="code"><pre class="actionscript3"><span style="color: #6699cc; font-weight: bold;">var</span> listaTexto<span style="color: #000000; font-weight: bold;">:</span><span style="color: #004993;">String</span> = <span style="color: #990000;">&quot;domingo,segunda,terça,quarta,quinta,sexta,sábado&quot;</span>;
<span style="color: #004993;">trace</span><span style="color: #000000;">&#40;</span>listaTexto<span style="color: #000000;">&#41;</span>; <span style="color: #009900;">//retorna o valor da String</span></pre></td></tr></table></div>

</p>
<p>Teste o filme(Ctrl + Enter). Repare que retorna o valores da <strong>listaTexto</strong> na caixa de saída(Output). Mas, não conseguimos manipular ou &quot;controlar&quot; este valor da String &quot;pegando&quot; apenas um dos valores da nossa lista de &quot;dias da semana&quot;.</p>
<p>Certo. Agora vamos utilizar o método <strong>String.split()</strong> para conseguirmos manipular os valores desta lista. Apague a última linha 2:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>2
</pre></td><td class="code"><pre class="actionscript3"><span style="color: #004993;">trace</span><span style="color: #000000;">&#40;</span>listaTexto<span style="color: #000000;">&#41;</span>;</pre></td></tr></table></div>

</p>
<p> E digite:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
</pre></td><td class="code"><pre class="actionscript3"><span style="color: #3f5fbf;">/* criamos um objeto Array que recebe valor do Objeto String
 * separando cada elemento pelo demilitador virgula */</span>
&nbsp;
<span style="color: #6699cc; font-weight: bold;">var</span> listaArray<span style="color: #000000; font-weight: bold;">:</span><span style="color: #004993;">Array</span> = listaTexto.<span style="color: #004993;">split</span><span style="color: #000000;">&#40;</span><span style="color: #990000;">&quot;,&quot;</span><span style="color: #000000;">&#41;</span>;
&nbsp;
<span style="color: #009900;">// manipulando os valores recebidos</span>
<span style="color: #004993;">trace</span><span style="color: #000000;">&#40;</span>listaArray<span style="color: #000000;">&#91;</span><span style="color: #000000; font-weight:bold;">0</span><span style="color: #000000;">&#93;</span><span style="color: #000000;">&#41;</span>;	<span style="color: #009900;">// retorna domingo</span>
<span style="color: #004993;">trace</span><span style="color: #000000;">&#40;</span>listaArray<span style="color: #000000;">&#91;</span><span style="color: #000000; font-weight:bold;">1</span><span style="color: #000000;">&#93;</span><span style="color: #000000;">&#41;</span>;	<span style="color: #009900;">// retorna segunda</span>
<span style="color: #004993;">trace</span><span style="color: #000000;">&#40;</span>listaArray<span style="color: #000000;">&#91;</span><span style="color: #000000; font-weight:bold;">2</span><span style="color: #000000;">&#93;</span><span style="color: #000000;">&#41;</span>;	<span style="color: #009900;">// retorna terça</span>
<span style="color: #004993;">trace</span><span style="color: #000000;">&#40;</span>listaArray<span style="color: #000000;">&#91;</span><span style="color: #000000; font-weight:bold;">3</span><span style="color: #000000;">&#93;</span><span style="color: #000000;">&#41;</span>;	<span style="color: #009900;">// retorna quarta</span>
<span style="color: #004993;">trace</span><span style="color: #000000;">&#40;</span>listaArray<span style="color: #000000;">&#91;</span><span style="color: #000000; font-weight:bold;">4</span><span style="color: #000000;">&#93;</span><span style="color: #000000;">&#41;</span>;	<span style="color: #009900;">// retorna quinta</span>
<span style="color: #004993;">trace</span><span style="color: #000000;">&#40;</span>listaArray<span style="color: #000000;">&#91;</span><span style="color: #000000; font-weight:bold;">5</span><span style="color: #000000;">&#93;</span><span style="color: #000000;">&#41;</span>;	<span style="color: #009900;">// retorna sexta</span>
<span style="color: #004993;">trace</span><span style="color: #000000;">&#40;</span>listaArray<span style="color: #000000;">&#91;</span><span style="color: #000000; font-weight:bold;">6</span><span style="color: #000000;">&#93;</span><span style="color: #000000;">&#41;</span>;	<span style="color: #009900;">// retorna sábado</span>
<span style="color: #004993;">trace</span><span style="color: #000000;">&#40;</span>listaArray<span style="color: #000000;">&#41;</span>;		<span style="color: #009900;">// retorna a lista completa</span></pre></td></tr></table></div>

</p>
<p>Teste o filme(Ctrl + Enter). Repare que agora você consegue manipular estes valores da String utilizando como elementos de Array[ ].<br />
  O Array também aceita valores numéricos, strings, booleano(true ou false) ou objetos inseridos como valores na mesma variável.
</p>
<p>Também posso utilizar o valor &quot; &quot;(espaço) que é inserido entre cada palavra do texto(String), sendo como  meu &quot;delimitador&quot;. Ou seja, podemos &quot;separar&quot; cada palavra da frase aproveitando apenas o espaço entre elas, conseguindo manipular cada palavra individualmente  como um elemento de Array.<br />
  Outro exemplo:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
</pre></td><td class="code"><pre class="actionscript3"><span style="color: #6699cc; font-weight: bold;">var</span> texto<span style="color: #000000; font-weight: bold;">:</span><span style="color: #004993;">String</span> = <span style="color: #990000;">&quot;O menino estava ouvindo música.&quot;</span>
<span style="color: #6699cc; font-weight: bold;">var</span> listaArray<span style="color: #000000; font-weight: bold;">:</span><span style="color: #004993;">Array</span> = texto.<span style="color: #004993;">split</span><span style="color: #000000;">&#40;</span><span style="color: #990000;">&quot; &quot;</span><span style="color: #000000;">&#41;</span>; 
<span style="color: #004993;">trace</span><span style="color: #000000;">&#40;</span>listaArray<span style="color: #000000;">&#41;</span>;		<span style="color: #009900;">// retorna a frase, no lugar do &quot;espaço&quot; está vírgulas</span>
<span style="color: #004993;">trace</span><span style="color: #000000;">&#40;</span>listaArray<span style="color: #000000;">&#91;</span><span style="color: #000000; font-weight:bold;">0</span><span style="color: #000000;">&#93;</span><span style="color: #000000;">&#41;</span>;	<span style="color: #009900;">// retorna O</span>
<span style="color: #004993;">trace</span><span style="color: #000000;">&#40;</span>listaArray<span style="color: #000000;">&#91;</span><span style="color: #000000; font-weight:bold;">1</span><span style="color: #000000;">&#93;</span><span style="color: #000000;">&#41;</span>;	<span style="color: #009900;">// retorna menino</span>
<span style="color: #004993;">trace</span><span style="color: #000000;">&#40;</span>listaArray<span style="color: #000000;">&#91;</span><span style="color: #000000; font-weight:bold;">2</span><span style="color: #000000;">&#93;</span><span style="color: #000000;">&#41;</span>;	<span style="color: #009900;">// retorna estava</span>
<span style="color: #004993;">trace</span><span style="color: #000000;">&#40;</span>listaArray<span style="color: #000000;">&#91;</span><span style="color: #000000; font-weight:bold;">3</span><span style="color: #000000;">&#93;</span><span style="color: #000000;">&#41;</span>;	<span style="color: #009900;">// retorna ouvindo</span>
<span style="color: #004993;">trace</span><span style="color: #000000;">&#40;</span>listaArray<span style="color: #000000;">&#91;</span><span style="color: #000000; font-weight:bold;">4</span><span style="color: #000000;">&#93;</span><span style="color: #000000;">&#41;</span>;	<span style="color: #009900;">// retorna música.</span></pre></td></tr></table></div>

<p>
</p>
<p>
</p>
<p><strong>Qual a utilidade em converter uma String em Array?</strong></p>
<p>  Também podemos trabalhar com variáveis externas(ex.: um arquivo.txt) e converter este valor da variável em elementos Arrays. Sabendo que os valores da variável externa é &quot;tratada&quot; como tipo String pelo Flash. Você consegue converter em  Arrays e manipular este valores como Array.</p>
<p>  Isto pode ser  muito útil quando queremos trabalhar por exemplo, com apenas uma variável (seja inseridas no flash ou de algum arquivo externo) que recebem um ou mais tipos de valores como uma &quot;lista&quot; de diversos valores<strong>(ex. de lista: valor1, valor2, valor3,&#8230;valorN)</strong>. <br />
 Você pode criar  apenas uma variável que recebe varios   valores desta  &quot;lista&quot;. Este valores da variavel devem ser separados cada um utilizando qualquer caracter em comum que você determinar(ex.: uma vírgula, uma letra, numero, etc),  e manipular estes mesmo valores utilizando comportamento de index Array[0, 1, 3,&#8230;N] como mostrado nos exemplos acima.</p>
<p> Para aplicar o método <strong>split()</strong> em uma caixa de texto dinâmica. Ao invés de utilizar o método trace() que retorna o valor na caixa de saída(Output), basta aplicar os valores do Array na caixa de texto dinâmica utilizando a propriedade <em>TextField.<strong>text</strong></em>.
</p>
<p> Ex.:<br />
 <strong></p>

<div class="wp_syntax"><div class="code"><pre class="actionscript3">meuCampo.<span style="color: #004993;">text</span> = listaArray<span style="color: #000000;">&#91;</span><span style="color: #000000; font-weight:bold;">0</span><span style="color: #000000;">&#93;</span>;
meuCampo.<span style="color: #004993;">text</span> = listaArray<span style="color: #000000;">&#91;</span><span style="color: #000000; font-weight:bold;">1</span><span style="color: #000000;">&#93;</span>;
meuCampo.<span style="color: #004993;">text</span> = listaArray<span style="color: #000000;">&#91;</span><span style="color: #000000; font-weight:bold;">2</span><span style="color: #000000;">&#93;</span>;</pre></div></div>

<p></p>
<p>Abraços e até a próxima!</p>
<p>
<a href="http://www.rodrigopixel.com.br" target="_blank">Rodrigo Gonçalves</a><br />
Equipe Alvo Web
</p>
<p>
<a rel="license" href="http://creativecommons.org/licenses/by-nc-sa/2.5/br/"><img alt="Creative Commons License" style="border-width:0" src="http://i.creativecommons.org/l/by-nc-sa/2.5/br/80x15.png" /></a> <br />
O Conteúdo do <a xmlns:cc="http://creativecommons.org/ns#" href="http://www.alvoweb.com" property="cc:attributionName" rel="cc:attributionURL">Alvo Web Developers</a> está  licenciada sob uma <a rel="license" href="http://creativecommons.org/licenses/by-nc-sa/2.5/br/">Creative Commons Atribuição-Uso Não-Comercial-Compartilhamento pela mesma Licença 2.5 Brasil License</a>.<br />
<br />
<script type="text/javascript"><!--
google_ad_client = "pub-1122471812070813";
google_ad_width = 336;
google_ad_height = 280;
google_ad_format = "336x280_as";
google_ad_type = "text_image";
google_color_border = "fafafa";
google_color_bg = "fafafa";
google_color_link = "003366";
google_color_text = "7d7d7d";
google_color_url = "78b749";

//--></script>
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
</p>
]]></content:encoded>
			<wfw:commentRss>http://www.alvoweb.com/como-converter-string-em-array/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
