<?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</title>
	<link>http://www.alvoweb.com</link>
	<description>Tutoriais inteligentes</description>
	<pubDate>Mon, 29 Dec 2008 02:49:48 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.2.1</generator>
	<language>en</language>
			<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 />
</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></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
 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  básicas [...]]]></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</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.</p>
<p>No final deste artigo, está disponível para download o mesmo exemplo abordado aqui.</p>
<p>    <span class="style5">Indice:</span></p>
<p>  <strong>1- Introdução;<br />
  2- Criando os objetos na tela;<br />
  3- Inserindo código AS3;<br />
  4- Explicando o código AS3;<br />
  5- Criando script PHP;<br />
6- 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 faz 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 no 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><strong>Dica:</strong>  É sempre bom criarmos um hábito de organização com web. Sugiro criar uma pasta para  guardar  seus arquivos Flash e PHP;</p>
<p>   Com Flash CS3 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 <strong>camada Objetos</strong>, iremos criar 5 campos de texto, sendo que, 4 deles serão dinâmicos do tipo <strong>&quot;input Text&quot;</strong>, e 1 campo de texto  do tipo <strong>Dynamic Text </strong>que será destinado para mostrar os avisos ao usuário sobre o que acontece quando ele tenta enviar os dados. E também precisamos de um botão com nome de instância <strong>enviarBtn</strong>, que será responsável por enviar os dados.</p>
<p>  Cada objeto estão organizados com seus respectivos nomes de instâncias. 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></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">nomeTxt</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>avisoTxt</strong></span><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></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><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.</p>
<p>&nbsp;</p>
<p><span class="style5"><strong>3- Inserindo o código AS3</strong></span></p>
<p>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
</pre></td><td class="code"><pre class="actionscript3"><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: #6699cc; font-weight: bold;">var</span> tempo<span style="color: #000000; font-weight: bold;">:</span><span style="color: #004993;">Timer</span> = <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>; 
	tempo.<span style="color: #004993;">addEventListener</span><span style="color: #000000;">&#40;</span> <span style="color: #004993;">TimerEvent</span>.<span style="color: #004993;">TIMER</span>, limpaAviso <span style="color: #000000;">&#41;</span>;
&nbsp;
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>, enviaMensagem <span style="color: #000000;">&#41;</span>;
&nbsp;
&nbsp;
<span style="color: #3f5fbf;">/* ##########################
 * Funções
 * #########################*/</span>
<span style="color: #339966; font-weight: bold;">function</span> enviaMensagem<span style="color: #000000;">&#40;</span> event<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: #0033ff; font-weight: bold;">if</span><span style="color: #000000;">&#40;</span>nomeTxt.<span style="color: #004993;">text</span> == <span style="color: #990000;">&quot;&quot;</span> <span style="color: #000000; font-weight: bold;">||</span> emailTxt.<span style="color: #004993;">text</span> == <span style="color: #990000;">&quot;&quot;</span> <span style="color: #000000; font-weight: bold;">||</span> assuntoTxt.<span style="color: #004993;">text</span> == <span style="color: #990000;">&quot;&quot;</span> <span style="color: #000000; font-weight: bold;">||</span> mensagemTxt.<span style="color: #004993;">text</span> == <span style="color: #990000;">&quot;&quot;</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#123;</span>
		avisoTxt.<span style="color: #004993;">text</span> = <span style="color: #990000;">&quot;Preencha os campos.&quot;</span>;
		tempo.<span style="color: #004993;">start</span><span style="color: #000000;">&#40;</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;
<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;">&#123;</span>
	avisoTxt.<span style="color: #004993;">text</span> = <span style="color: #990000;">&quot;Enviando mensagem...&quot;</span>;			
&nbsp;
	<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: #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: #6699cc; font-weight: bold;">var</span> urlPhp<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;seu aqruivo php aqui&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: #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: #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>, envio <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>, erroNoEnvio <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;
<span style="color: #339966; font-weight: bold;">function</span> envio<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>
	avisoTxt.<span style="color: #004993;">text</span> = <span style="color: #990000;">&quot;Mensagem enviada!&quot;</span>;
	limpaCampos<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>;
 	tempo.<span style="color: #004993;">start</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>;
<span style="color: #000000;">&#125;</span>
&nbsp;
<span style="color: #339966; font-weight: bold;">function</span> erroNoEnvio<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>
	avisoTxt.<span style="color: #004993;">text</span> = <span style="color: #990000;">&quot;Ops! Surgio erro! Tenta novamente.&quot;</span>;
 	tempo.<span style="color: #004993;">start</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>;
<span style="color: #000000;">&#125;</span>
&nbsp;
<span style="color: #339966; font-weight: bold;">function</span> limpaCampos<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</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: #000000;">&#125;</span>
&nbsp;
<span style="color: #339966; font-weight: bold;">function</span> limpaAviso<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>
	avisoTxt.<span style="color: #004993;">text</span> = <span style="color: #990000;">&quot;&quot;</span>;
<span style="color: #000000;">&#125;</span></pre></td></tr></table></div>

<p><span class="style5">4 - Explicando o código AS3</span></p>
<p>  <strong class="style4">Linha 1</strong>: simplesmente habilitamos para o Flash receber textos com acentuação.</p>
<p><strong class="style4">Linha 3</strong>: criamos uma nova instância <strong>tempo</strong>, que faz parte da Classe <strong>Timer()</strong>, nesta classe Timer, o seu construtor solicita 2 parâmetros: tempo de intervalo em milesegundos, e referência da função. Ou seja, após 3 segundos(3000 milesegundos) irá chamar uma função que denominamos de <strong>limpaAviso()</strong>, está função veremos mais adiante.</p>
<p><strong class="style4">Linha 6</strong>: para o botão com nome de instância <strong>enviarBtn</strong>, adicionamos um &quot;ouvinte de Eventos&quot;(<strong>addEventlistener</strong>), e quando este botão receber um &quot;evento de clique do mouse&quot;(<strong>MouseEvent.CLICK</strong>), irá chamar/executar a função <strong>enviaMensagem()</strong> que veremos a seguir.</p>
<p>A partir de <span class="style2">linha 12</span> em diante, temos uma sequência de funções, as quais cada uma terá um seu objetivo. Vamos analisá-las.</p>
<p>  <strong class="style4">Linha 12 a 19:</strong><br />
Vamos começar com a função <strong>enviaMensagem()</strong>. Esta  simplesmente verifica se(<strong>if</strong>) todos  os campos de textos foram preenchidos(<strong>nome, email, assunto, mensagem</strong>), caso alguns destes campos estiverem vazios, mostra mensagem na caixa de aviso(<strong>avisoTxt.text</strong>), informando o usuário que precisa preencher todos os campos.</p>
<p>Logo a seguir, utilizamos o método  <strong>Timer.start() </strong>da nossa instância <strong>tempo</strong>, cujo função é apenas disparar uma determinada função depois de um intervalo  específico. Ou seja, o código <strong>tempo.start()</strong>  irá chamar a função  <strong>limpaAviso()</strong> que apenas apaga o campo de texto <strong>avisoTxt</strong> logo após o intervalo de  3 segundos.</p>
<p> Agora, caso todos os campos estiverem preenchidos,  simplesmente executa a função <strong>enviaDadosParaPHP()</strong> e prosseguimos adiante.</p>
<p> <strong class="style4">Linha 21 a 38:</strong><br />
Temos a função <strong>enviaDadosParaPHP()</strong> que é responsável por enviar as  informações de fato.<br />
Na <span class="style2">linha 22</span> informamos ao usuário que estamos enviando a mensagem.</p>
<p>Em seguida, temos que utilizar 3 classes:<strong>URLVariables</strong>, <strong>URLRequest</strong>, <strong>URLLoader</strong>. Vamos começar pela classe URLVariables.<br />
Na <span class="style2">linha 24 a 28</span>, criamos a instância denominada de variaveis que faz parte da classe URLVariables().</p>
<p>Precisamos criar 4 variáveis referente a cada campo de texto do formulário. Estas variáveis serão responsáveis por armazenar informações digitadas pelo usuário, depois o Flash fará comunicação com o scrit PHP, ficando responsável por reter essas informações do Flash e enviar os dados para o e-mail do destinatário.</p>
<p>Para criarmos uma variável da classe URLVaribles, simplesmente utilizamos qualquer nome sugestivo como propriedade da classe URLVariavels. Com isso criamos as seguintes variáveis, sendo elas:</p>
<p><span class="style2">variaveis.<strong>nomePhp</strong><br />
variaveis.<strong>emailPhp</strong><br />
variaveis.<strong>assuntoPhp</strong><br />
variaveis.<strong>mensagemPhp</strong></span></p>
<p> Em cada variável criada, recebem informações quando o usuário digitar alguma informação nos campos de texto dinâmico.<br />
Por exemplo, informo que a variável <strong class="style2">variavies.nomePhp</strong>, recebe informações vinda do campo de texto dinâmico <span class="style1"><strong>nomeTxt</strong></span><strong>.<span class="style2">text</span></strong>. E assim por diante.</p>
<p><strong class="style4">Linha 30 a 32:</strong><br />
  Na <span class="style2">linha 30</span>, criamos a instância chamada <strong>urlPhp</strong> a partir da classe <strong>URLRequest()</strong>, que será responsável por armazenar um endereço externo, no caso o próprio script PHP que iremos criar depois.</p>
<p>  Na <span class="style2">linha 31</span>, utilizamos a propriedade URLRequest.<strong>method</strong> que informa o tipo de envio que faremos no caso o método POST(<strong>URLRequestMethod.POST</strong>).</p>
<p>  Na <span class="style2">linha 32</span>, informamos pela propriedade URLRequest.<strong>data</strong> que todas informações digitadas pelo usuário, estarão contidas em  nossa variável denominada <strong>variaveis</strong> da classe URLVariables().<br />
Ou seja, isso tudo simplesmente fala algo como: enviar todas as informações inseridas no formulário  para o script PHP.</p>
<p>    <span class="style4"><strong>Linha 34 a 37:</strong></span><strong><br />
    </strong>Agora, na <span class="style2">linha 34</span>, criamos nossa instância denominada de <strong>infoPhp</strong> da classe <strong>URLLoader()</strong>, que simplesmente será responsável por recuperar informações sobre o que acontece com os dados enviados pelo formulário. Com URLLoader, conseguimos obter informações e disparar eventos para podermos informar ao usuário se os dados foram enviados com sucesso ou se surgiu algum erro durante o envio.</p>
<p>    Na <span class="style2">linha 35</span>, adicionamos para a instância <strong>infoPhp</strong>, um ouvinte de eventos(<strong>addEventlistener</strong>), que verifica quando os dados forem enviados/carregados por completo(<strong>Event.COMPLETE</strong>), dispara a função <strong>envio()</strong>, que informa ao usuário que os dados foram enviados com sucesso.</p>
<p>Na <span class="style2">linha 36</span>, novamente para a instância <strong>infoPhp</strong>, adicionamos um ouvinte de eventos(<strong>addEventlistener</strong>), que verifica se tem um &quot;erro fatal&quot; que resulta em um &quot;cancelamento&quot; na hora de carregar o arquivo externo(<strong>IOErrorEvent.IO_ERROR</strong>), dispara a função <strong>erroNoEnvio()</strong>, que informa ao usuário que surgiu algum erro durante o envio.</p>
<p>E finalmente na <span class="style2">linha 37</span>, apenas carregamos pelo método URLLoader.load(), o dados externo, no caso, o arquivo PHP que iremos criar mais tarde.<br />
Isto encerra nossa função <strong>enviaDadosParaPHP()</strong>.</p>
<p>As 4 funções a seguir, como cada nome já sugere, simplesmente são utilizados  durante todo o processo de verificação. Vejamos:<br />
 <strong><br />
 <span class="style4">Linha 40 a 44:</span></strong> a função  <strong>envio()</strong>, simplesmente mostra o aviso ao usuário que as informações foram enviadas. Em seguida chama a função limpaCampos() que apenas deixa os campos sem nenhum conteúdo. Depois, chamamos a função <strong>limpaAviso()</strong> logo após 3 segundos, para apagar o aviso mostrado ao usuário.</p>
<p><strong class="style4">Linha 51 a 53:</strong> a função <strong>limpaCampos()</strong>, apenas limpa todos os campos de textos.</p>
<p><strong class="style4">Linha 55 a 57:</strong> a função <strong>limpaAviso()</strong>, apaga o conteúdo da caixa de texto <strong>avisoTxt</strong>.</p>
<p>No mais 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. É relativamente simples.<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 de: <strong>mail.php</strong></p>
<p>Insira o seguinte 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
</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;">'E-mail vindo do site tal'</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.</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 />
</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>
</p>
]]></content:encoded>
			<wfw:commentRss>http://www.alvoweb.com/loop-de-animacao-com-rotacao-no-flash-cs3/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Recuperar a senha do admin do wordpress</title>
		<link>http://www.alvoweb.com/recuperar-a-senha-do-admin-do-wordpress/</link>
		<comments>http://www.alvoweb.com/recuperar-a-senha-do-admin-do-wordpress/#comments</comments>
		<pubDate>Wed, 23 Jul 2008 14:50:42 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://www.alvoweb.com/recuperar-a-senha-do-admin-do-wordpress/</guid>
		<description><![CDATA[Autor: Felipe Alencar
Recuperar a senha do admin do wordpress 
Solicitar nova senha wordpress 
Resetar senha do administrador wordpress 

Acredito que essa situação as vezes pode ser desesperadora, mas é bem fácil de se resolver.
Primeiro passo é tentar pelo recuperador de senhas padrão, na sua página de login do administrador do seu Wordpress.

Nessa opção nós temos [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Autor:</strong> Felipe Alencar</p>
<p><strong>Recuperar a senha do admin do wordpress <br />
Solicitar nova senha wordpress <br />
Resetar senha do administrador wordpress <br /></strong></p>
<p></p>
<p>Acredito que essa situação as vezes pode ser desesperadora, mas é bem fácil de se resolver.<br />
Primeiro passo é tentar pelo recuperador de senhas padrão, na sua página de login do administrador do seu Wordpress.</p>
<p><img src="http://www.alvoweb.com/images/admin_senha0.gif" alt="Alvoweb" /></p>
<p>Nessa opção nós temos que informar o nome de usuário que por padrão é “admin” e o email cadastrado o que infelizmente as vezes a pessoa não lembra, isso é muito comum quando a pessoa que utiliza o Blog Wordpress não foi a mesma que realizou a instalação.</p>
<p>Nesse caso nós vamos ter de resetar a senha na unha, acessando o banco de dados.<br />
Se você possui o Blog em um Server gratuito da própria comunidade Wordpress, creio  não ser possível resgatar essa senha pelo simples fato de que você não tem acesso ao servidor e muito menos ao banco de dados. Pois bem, presumindo que você possui um servidor de hospedagem. Utilizamos o painel de controle PLESK para ilustrar a recuperação da senha do administrador.<br />
Primeiro passo é acessar sua conta de hospedagem, seu painel de controle, e depois acesse o ícone referente ao banco de dados MySQL.<br />
<img src="http://www.alvoweb.com/images/admin_senha1.gif" vspace="12" alt="Alvoweb"  /><br />
Prossiga acessando o banco do seu Blog wordpress:</p>
<p><img src="http://www.alvoweb.com/images/admin_senha2.gif" vspace="12" alt="Alvoweb"  /></p>
<p>Após esse passo você deve localizar o ícone do PhpMyAdmin, no caso do painel Plesk esta logo acima. Acesse o MyPhpAdmin.</p>
<p><img src="http://www.alvoweb.com/images/admin_senha3.gif" vspace="12" alt="Alvoweb"  /><br />
Dentro do MyPhpAdmin você deve localizar a tabela chamada:  “wp-users” e clicar nela.</p>
<p><img src="http://www.alvoweb.com/images/admin_senha4.gif" alt="Alvoweb" vspace="10" /><br />
Após acessar a tabela indicada, localize o campo chamado “user_pass” navegue pela barra de rolagem horizontal até o botão indicado na ilustração, é o botão de edição.<br />
<img src="http://www.alvoweb.com/images/admin_senha5.gif" vspace="12" alt="Alvoweb"  /><br />
Na parte superior da página você deve localizar a aba “Visualizar”, clique nela.<br />
<img src="http://www.alvoweb.com/images/admin_senha6.gif" vspace="12" alt="Alvoweb"  /><br />
Você irá visualizar uma tela com os valores da imagem abaixo, temos ai a senha criptografada do seu Blog, agora a tarefa é apaga-la e depois escrever uma nova senha. Prossiga, clicando no lápis (editar) para poder alterar essa senha.<br />
<img src="http://www.alvoweb.com/images/admin_senha7.gif"  vspace="12"  alt="Alvoweb"/><br />
<img src="http://www.alvoweb.com/images/admin_senha8.gif" vspace="12" alt="Alvoweb"  /><br />
No campo que corresponde a sua senha, você deve alterar a função para MD5 e apagar o valor criptografado. Após isso, clique em executar.<br />
Agora, com o campo da senha vazio escreva uma nova senha e clique em executar novamente.<br />
Pronto, sua senha foi restabelecida.<br />
Acesse o seu admin e entre no seu Blog Wordpress.</p>
<p>Até a próxima;</p>
<p>Felipe Alencar<br />
www.next4.com.br<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 />
</p>
]]></content:encoded>
			<wfw:commentRss>http://www.alvoweb.com/recuperar-a-senha-do-admin-do-wordpress/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Dicas wordpress</title>
		<link>http://www.alvoweb.com/dicas-wordpress/</link>
		<comments>http://www.alvoweb.com/dicas-wordpress/#comments</comments>
		<pubDate>Mon, 30 Jun 2008 19:30:20 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://www.alvoweb.com/dicas-wordpress/</guid>
		<description><![CDATA[Autor: Equipe AlvoWeb
Olá Pessoal!
Vamos a algumas dicas Wordpress, lembrando que este artigo foi feito pelo companheiro Reginaldo Lima.
Este artigo é um resumo das páginas e tags internas do Wordpress.
Todo esse material esta contido na pasta: wp-content/themes/ do seu blog.
•	header.php: é o cabeçalho da página. Inclui, além da porção superior que aparecerá nas páginas, o início [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Autor:</strong> Equipe AlvoWeb</p>
<p>Olá Pessoal!<br />
Vamos a algumas dicas Wordpress, lembrando que este artigo foi feito pelo companheiro Reginaldo Lima.<br />
Este artigo é um resumo das páginas e tags internas do Wordpress.<br />
Todo esse material esta contido na pasta: wp-content/themes/ do seu blog.</p>
<p>•	<strong>header.php:</strong> é o cabeçalho da página. Inclui, além da porção superior que aparecerá nas páginas, o início do documento e a os atributos da tag <head>;<br />
•	<strong>footer.php: </strong>é o rodapé da página. Não são todos os layouts que o possuem (o meu não tem, em virtude de complicações com o IE); nestes casos, este arquivo só serve para abrigar as tags </body> e </html>;<br />
•	<strong>sidebar.php:</strong> é a coluna lateral. Há temas, como o default, que suprem esta parte do layout na visualização de artigos (permalinks);<br />
•	<strong>links.php:</strong> lista as blogrolls, geralmente na coluna lateral;<br />
•	style.css: é a folha de estilo, que, normalmente, cuida de toda a estrutura e formatação do layout (caso este seja tableless - sem tabelas).<br />
•	<strong>404.php:</strong> página de erro;<br />
•	<strong>archive.php:</strong> página que lista os arquivos (seja por categoria, ou por data);<br />
•	<strong>comments.php:</strong> como o próprio nome sugere, é a página dos comentários. Ou melhor, é o trecho dos comentários, que é acrescentado à página single.php (vide mais abaixo);<br />
•	<strong>index.php: </strong>página principal do blog;<br />
•	<strong>page.php:</strong> responsável por mostrar as páginas (pages) do blog;<br />
•	<strong>search.php:</strong> página que retorna os resultados de uma pesquisa interna;<br />
•	<strong>searchform.php:</strong> formulário de pesquisa. Pode ser incluído em qualquer parte do blog, através de include (assim: <?php include (TEMPLATEPATH . '/searchform.php'); ?>);<br />
•	<strong>single.php:</strong> mostra os posts em uma página (permalinks), quase sempre acompanhado dos comentários.<br />
•	<strong>screenshot.png:</strong> imagem png do seu blog </p>
<p>•	<strong>single.php</strong> - arquivo cuja função é exibir um único post. A única diferença para o index.php é a inserção da tag comments_template(), que insere o arquivo comments.php;<br />
•	<strong>comments.php</strong> - tem a função de exibir os comentários e o formulário para comentar no arquivo single.php;<br />
•	<strong>functions.php</strong> - torna o tema compatível com widgets. </p>
<p>Agora vamos ver as tags que compõem o sistema Wordpress.<br />
As Tags, são variaveis que facilitam a vida do programador e formam um vocabulário único quando um desenvolvedor quer realizar ou alterar um tema ou adicionar um novo recurso ao Blog.   </p>
<p><strong>Tags header </strong><br />
<strong><br />
# bloginfo(’name’) </strong> - este quase dispensa explicações, nome do blog;<br />
<strong># bloginfo(’version’)</strong> - versão do WordPress;<br />
<strong># bloginfo(’html_type’) </strong>- “Content-type” do seu blog;<br />
<strong># bloginfo(’charset’)</strong> - codificação de caracteres utilizada no blog;<br />
<strong># bloginfo(’stylesheet_url’)</strong> - CSS do seu tema;<br />
<strong># bloginfo(’rss2_url’) </strong>- RSS 2.0 do blog;<br />
<strong># bloginfo(’rss_url’) </strong>- RSS 0.92 do blog;<br />
<strong># bloginfo(’atom_url’)</strong> - Atom do blog<br />
<strong># p_head()</strong> - é uma tag especial que permite que certos plugins insiram códigos no cabeçalho de seu tema. Quando esta tag não é inserida vários plugins deixam de funcionar, então não esqueça de colocá-la em todos os seus temas;<br />
<strong># bloginfo(’description’)</strong> - descrição do blog;<br />
<strong># get_option(’home’)</strong> - na verdade trata-se de uma função e não uma tag, por isso deve vir precedida da função echo do PHP, que exibe o resultado de uma função ou variável. Neste caso irá retornar a URL inicial do blog;<br />
<strong># wp_list_pages(’title_li=’)</strong> - exibe todas as pages existentes, precedidas de <code>&lt;li&gt; e sucedidas por &lt;/li&gt;<br />
</code></p>
<p><strong>Tags index</strong> </p>
<p><strong># get_header() </strong>- insere o código do header.php, isto é, o cabeçalho do tema;<br />
<strong># if (have_posts()) : while (have_posts()) : the_post()</strong> - aqui na verdade nós temos três funções e elas é que dão início ao LOOP. A primeira tag verifica se há posts, a segunda solicita que, enquanto existir post continue no loop e a terceira “pega” todas as informações do post, como o título, conteúdo, data, autor, etc. É comum encontrar tags que só funcionam dentro do loop, isto quer dizer que a tag só irá retornar algum valor se estiver inserida após estas funções e antes de endwhile; e endif;, que terminam o loop.<br />
<strong># the_permalink()</strong> - o link do post;<br />
<strong># the_title()</strong> - o título do post;<br />
<strong># the_content()</strong> - o conteúdo do post;<br />
<strong># comments_number()</strong> - insere o número de comentários feitos no post. Além disso adiciona um texto dependendo da quantidade de comentários. Se não houver comentários a tag irá inserir o texto “Nenhum comentário”, se tiver apenas um comentário, irá inserir “Um comentário” e para mais de um comentário irá inserir “N comentários”, onde N é a quantidade de comentários, claro;<br />
<strong># the_author() </strong>- o autor do post;<br />
<strong># the_time()</strong> - a data em que o post foi postado;<br />
<strong># endwhile; else: </strong>- encerra o loop e adiciona a condicional que, se não houver nenhum post insira o conteúdo abaixo;<br />
<strong># _e(’Nenhum post encontrado.’)</strong> - este é conteúdo que irá ser inserido caso não exista nenhum post;<br />
<strong># endif;</strong> - termina a condicional que verifica se há posts;<br />
<strong># posts_nav_link()</strong> - adiciona links de navegação, “próxima página” e “página anterior”;<br />
<strong># get_sidebar() </strong>- insere o menu lateral, que veremos na próxima etapa do tutorial;<br />
<strong># get_footer()</strong> - e por último, mas não menos importante, insere o rodapé.</p>
<p><strong>Tags sidebar </strong></p>
<p><strong>#bloginfo(’home’) </strong>- insere a URL inicial do blog;<br />
<strong>#wp_list_categories(’show_count=1′); </strong>- exibe uma lista com todas as categorias com o número de posts existentes em cada categoria;<br />
<strong>#wp_get_archives(’type=monthly’) </strong>- lista todos os meses do ano em que foram inseridos posts. Se você escreveu 7 posts no mês de maio de 2007, por exemplo, será exibido um link “maio/2007″ que ao ser clicado exibirá todos os 7 posts que você escreveu;<br />
<strong>#get_links</strong><code>(2, ‘&lt;li&gt;’, ‘&lt;/li&gt;’, ”, ”, ‘name’) - lista todos os links da  categoria 2 (no caso blogroll), inserindo antes a tag “&lt;li&gt;”, depois a  tag &lt;/li&gt; e exibindo o nome do link.</code></p>
<p><strong>Tags footer </strong></p>
<p><strong>#bloginfo(’name’) </strong>- nome do blog;<br />
<strong>#bloginfo(’rss2_url’)</strong> - link para o feed RSS;<br />
<strong>#wp_footer() </strong>- é uma tag especial que permite certos plugins inserir códigos no rodapé de seu tema. Quando esta tag não é inserida vários plugins deixam de funcionar, então não esqueça de colocá-la em todos os seus temas.</p>
<p>Até a próxima, escreva-nos sugerindo um próximo tema do tutorial!</p>
<p>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 />
</p>
]]></content:encoded>
			<wfw:commentRss>http://www.alvoweb.com/dicas-wordpress/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 de um exemplo simples sobre carregamento externo com uso de Eventos.</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 />
</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 />
</p>
]]></content:encoded>
			<wfw:commentRss>http://www.alvoweb.com/como-converter-string-em-array/feed/</wfw:commentRss>
		</item>
		<item>
		<title>XML externo com AS3</title>
		<link>http://www.alvoweb.com/xml-externo-com-as3/</link>
		<comments>http://www.alvoweb.com/xml-externo-com-as3/#comments</comments>
		<pubDate>Fri, 18 Apr 2008 17:06:53 +0000</pubDate>
		<dc:creator>Rodrigo</dc:creator>
		
		<category><![CDATA[ActionScript]]></category>

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


Autor: Rodrigo Gonçalves
Package: flash.net 
  Classe: public class URLLoader
  Versão AS: ActionScript 3.0
  Player: Flash Player 9
  Dificuldade: Médio.
Obs: Para um bom aproveitamento deste artigo é interessante ter noções de XML, Actionscript 3.0, conceitos de Array e lógica de programação.

Fala galera, tranquilo?!
Vamos ver como carregar um arquivo XML com AS3. Dividimos [...]]]></description>
			<content:encoded><![CDATA[<style type="text/css">
<!--
.titulo {color: #0066CC; font-weight: bold; font-size:16px;}
.style4 {color: #990000}
.style9 {color: #AF0000}
.style15 {color: #000000}
.style16 {font-size: 12px; font-weight: bold;}
.style18 {font-size: 12px}
.style19 {font-size: 14px; font-weight: bold;}
.style20 {color: #0099CC}
.style22 {color: #FF0000;}
.style26 {color: #999999}
.style28 {color: #009933}
.style37 {color: #6666CC}
.style40 {color: #99CC99}
.style41 {color: #CCCC00}
.style42 {color: #9999FF}
.style43 {color: #FF9933}
.style45 {color: #FF0000; font-weight: bold; }
.style46 {
	color: #333333;
	font-weight: bold;
}
.style51 {
	color: #996699;
	font-weight: bold;
}
.style52 {color: #996699}
.style54 {color: #996600}
.style55 {color: #99CC33}
.style57 {
	color: #0099D6;
	font-weight: bold;
}
.style58 {color: #0099D6}
.style59 {color: #FF6600}
.style61 {color: #000000; font-weight: bold; }
.style62 {color: #660000}
.style65 {font-size: 16px}
-->
</style>
<p><strong>Autor:</strong> Rodrigo Gonçalves</p>
<p><strong>Package:</strong> flash.net <br />
  <strong>Classe:</strong> public class URLLoader</p>
<p>  <strong>Versão AS:</strong> ActionScript 3.0<br />
  <strong>Player:</strong> Flash Player 9</p>
<p>  <strong>Dificuldade:</strong> Médio.<br />
Obs: Para um bom aproveitamento deste artigo é interessante ter noções de XML, Actionscript 3.0, conceitos de Array e lógica de programação.</p>
<p>
Fala galera, tranquilo?!</p>
<p>Vamos ver como carregar um arquivo XML com AS3. Dividimos por 2 etapas. Sendo elas:</p>
<p>  Na 1º etapa, é a Introdução onde iremos falar um pouco do XML e algumas caracteristicas do AS3 com XML. Esta 1º etapa, está dedicada mais para quem está iniciando com XML.<br />
  É um assunto bastante amplo e não será o nosso foco principal falar de XML. Existe sites e até livros específicos sobre XML onde você pode buscar maiores detalhes sobre isso.<br />
  Mas antes, precisamos  conhecer  o básico  de um XML, isso para aproveitarmos de uma melhor forma o AS3  em conjunto com XML. <br />
  Falaremos também um pouco da caracteristica de um Array a qual  será fundamental ter esse conceito no Actionscript. Caso você já tenha conhecimentos equivalentes, sinta-se avontade para seguir para próxima etapa.</p>
<p>  Na 2º etapa, o foco está destinado a criação de um Documento XML externo, e como fazer  leitura desse XML  utilizando o AS3.<br />
  <span class="titulo"><strong><br />
Índice:</strong></span><strong></p>
<p>- Etapa 1</p>
<p> 1 - Introdução;<br />
 -1.0 - Senta que lá vem a história;<br />
 -1.1 - Algumas nomenclaturas de XML;<br />
 -1.2 - Falando um pouco de Array;</p>
<p>
- Etapa 2</p>
<p>2 - Criando um Documento  XML;<br />
3 - Lendo elementos do XML;<br />
- 3.1 - Pegando um atalho&#8230;;<br />
- 3.2 - Acesso a Elementos de nomes iguais;<br />
- 3.3 - Descobrindo a quantidade de Elementos;<br />
- 3.4 - Usando Loop for each;<br />
- 3.5 - Encontrando Atributos de um Elemento;<br />
4 - Carregando  XML externo.</strong></p>
<p><p>
  <span class="titulo">Etapa 1</span></p>
<p><span class="titulo">1 - Introdução</span></p>
<p>Provavalmente você já deve ter escutado alguma vez na vida a palavra XML(e<strong>X</strong>tensible <strong>M</strong>arkup <strong>L</strong>anguage), e quando  trabalhar com Web  certamente vai escutar frequentemente este nome. Quando falarmos em arquivos externos, o XML é um ótimo exemplo. Também podemos considerá-lo  fácil para representar informações mais &quot;complexas&quot;. Isso, graças ao seu formato &quot;único&quot; que pode ser criado e facilmente entendido ou interpretado tanto por Computadores quanto por Humanos.</p>
<p>Também o XML pode ser conhecido como &quot;Árvore XML&quot; por representar em seu formato  como uma Hierarquia, tendo suas &quot;ramificações&quot;  e seus respectivos Nós XML contendo uma ou mais   informações. Se você já conhece HTML terá grande facilidade pra entender o XML.</p>
<p>Com certeza o XML não é a única maneira de carregar uma informação externa no Flash.</p>
<p><strong>O XML apresenta  algumas vantagens mais conhecidas:</strong></p>
<p>* Podemos criar dados de XML manualmente(estáticos) ou por programação(dinâmicos), como por exemplo usar um script de PHP ou um outro script de Server-Side, que faz leitura de uma banco de dados para escrever um Documento XML. Além de poder ser bem mais &quot;fácil&quot; representar informações  mais &quot;complexas&quot; utilizando um XML. </p>
<p>* Muitas linguagens Server-Side-Script(Ex: PHP) oferece funcionalidades para ler e gerar dados em XML. </p>
<p>* XML é bastante usado e até considerado  um &quot;Padrão web&quot; para transferir e armazenar dados que pode ser interpretado/visualizado em vários tipos de a