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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

//--></script>
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
</p>
]]></content:encoded>
			<wfw:commentRss>http://www.alvoweb.com/basico-sobre-eventos-no-as3/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Livros: Flash e ActionScript</title>
		<link>http://www.alvoweb.com/livros-flash-actionscript/</link>
		<comments>http://www.alvoweb.com/livros-flash-actionscript/#comments</comments>
		<pubDate>Tue, 09 Jun 2009 19:25:29 +0000</pubDate>
		<dc:creator>Rodrigo</dc:creator>
		
		<category><![CDATA[Animação]]></category>

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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



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

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

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

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


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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

//--></script>
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
</p>
]]></content:encoded>
			<wfw:commentRss>http://www.alvoweb.com/como-converter-string-em-array/feed/</wfw:commentRss>
		</item>
		<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 aplicações, plataformas, browsers e até por pessoas sem necessidade de grandes conhecimentos em programação. O XML oferece uma &quot;liberdade&quot; para criar  um &quot;padrão&quot; na criação de suas informações, podendo até mesmo facilitar na sua organização.</p>
<p>  * Podemos também criar quaisquer nomes que precisarmos para os Elementos(Nós) e Atributos de XML, tendo uma particularidade única para cada Documento XML que for criado, respeitando suas hierarquias e regras de criação para o mesmo.</p>
<p>Nas próximas partes veremos alguns exemplos passando apenas o conceito do XML e leitura de dados do AS3.</p>
<p>&nbsp;</p>
<p><span class="titulo">1.0 - Senta que lá vem a história</span><br />
  <span class="style15"><br />
  Iremos ver alguns conceitos do XML e AS3  antes de ir diretamente pro código XML e Actionscript. É muito importante pegar o conceito para nos ajudar na prática.</p>
<p>  Imagine uma família, que tem uma hierarquia para ter acessos até aos seus Filhos. Partindo deste princípio,  podemos dizer que os membros de uma família passa de Pais pra Filhos, de Filhos para Netos e assim por diante. Exatamente como uma &quot;Árvore hierárquica&quot;. Veremos alguns exemplos, e mais pra frente, a criação de um Documento XML que será mostrado na próxima etapa,  onde faremos  o Flash &#8220;ler&#8221; via Actionscript um XML externo.<strong></p>
<p>  </strong> A explicação de um exemplo logo abaixo será feita partindo do &quot;ponto de vista&quot; dos &quot;Pais&quot;. <br />
  No XML, normalmente a referência de hierarquias são sempre feita de &quot;nó XML Pai&quot; para &quot;nó XML Filho&quot;. Neste exemplo citado abaixo foi utilizado Hierarquia como exemplo: <strong>Pai &gt; Filho &gt;&gt; Neto &gt;&gt;&gt; Bisneto</strong>&#8230;etc, para  tentar facilitar no entendimento do conceito das hierarquias utilizadas no XML.</p>
<p>Observe a seguinte  estrutura deste &quot;laço de família&quot;.</span></p>
<p><span class="style15"><strong><br />
  Ex.:</p>
<p>  - <span class="style22">Pais</span> </strong><span class="style26">(onde tudo começa, nasce uma família)</span><strong></p>
<p>  &#8212; <span class="style28">Filho</span> </strong><span class="style26">(nasceu o 1º filho dos Pais)</span><strong><br />
  &#8212;&#8211; <span class="style41">Neto</span> </strong><span class="style26">(chegou mais um membro na família. Esse 1º Neto ainda não tem filhos)<br />
  <span class="style15"><strong>&#8212;&#8211; <span class="style40">Neto</span> </strong></span>(Este 2º neto  está animado e nasce  mais um membro na família)</span><strong><br />
  &#8212;&#8212;- <span class="style42">Bisneto</span> </strong><span class="style26">(essa  família ta crescendo. Pode vir mais gente por aí&#8230;)</span><strong><br />
  &#8212;&#8211; <span class="style40">Neto</span> </strong><span class="style26">(fecha o &quot;laço&quot; do 2º Neto)</span><strong><br />
  &#8212; <span class="style28">Filho</span></strong> <span class="style26">(fecha o &quot;laço&quot; do 1º Filho)</span><strong></p>
<p>  &#8212; <span class="style28">Filho</span> </strong><span class="style26">(o 2º filho veio em seguida. Os dois Filhos são gêmeos  idênticos. Será que  vai ter confusão?)</span><strong><br />
  &#8212;&#8211; <span class="style43">Neto</span></strong> <span class="style26">( esse Neto  não vai querer ter  filhos)</span><strong><br />
  <strong>&#8211; <span class="style28">Filho</span></strong> </strong><span class="style26">(fecha o &quot;laço&quot; do 2º Filho)</span><strong></p>
<p>  &#8212; <span class="style37">Filho3</span> </strong><span class="style26">(esse Filho não é gêmeo. Ele também não quer  ter filhos agora)</span><strong></p>
<p>  - <span class="style22">Pais</span> </strong><span class="style26">(fecha o &quot;laço&quot; de toda família)</span><strong><br />
  </strong><br />
  Certamente você já deve ter notado uma  Hierarquia de &quot;poder&quot; e acessos, ou se preferir dizer: &quot;diferentes níveis&quot;. <br />
  Até aí está bem. Mas, o que isso tem haver com o XML? E ainda mais, o que tem haver com AS3 em conjunto com  XML?</p>
<p>  Podemos dizer que o XML  trabalha por &quot;Hierarquia de acessos&quot; para poder chegar/encontrar uma certa informação que precisamos. Já o AS3, solicita &quot;nomes&quot; de cada membro(Nó XML) que foi criado  para ter acesso até as informações de cada Nó XML.</p>
<p>  Vejamos um breve exemplo logo abaixo como poderiamos representar este caso da familia em um arquivo XML.</p>
<p>  <img src="../tutorial/img/carregar_xml_as3/xmlpais.png" width="521" height="264"><br />
  <strong>Imagem:</strong> Exemplo de arquivo  XML e sua respectivas informações.</p>
<p>  Não irei explicar como foi feito o XML em si, apenas mostraremos para você conhecer uma estrutura de XML. Vale lembrar também que, não será o nosso foco neste artigo falar como criar um arquivo XML. Mas, é interessante ter alguns conceitos de um XML as quais  nos ajudarão quando formos trabalhar com Actionscript para &quot;manipular&quot; um XML. Caso queira conhecer mais sobre XML obter mais detalhes, vale a pena conhecer este site: <a href="http://www.w3schools.com/xml/" target="_blank">w3schools.com/xml</a> (inglês).</p>
<p>  Continuando&#8230;<br />
  Respeitando essa hierarquia dessa &quot;família&quot;(o XML). Existe algumas regras que este grupo familiar  estabeleceu. Por exemplo, digamos que essa familia é bastante &quot;exigente&quot;, e precisamos ter certos cuidados, e pedir &quot;permissões&quot; para os Pais deixarem obter informações de um Filho, Neto, Bisnetos, etc.</p>
<p>  Também, cada &quot;membro&quot;(um Nó XML) desta família, poderá ter uma ou vários atributos/propriedades, podendo conter informações particulares  caso for necessário.<br />
  Para conseguirmos ter acesso  a uma informação específica do 1º Bisneto desta família no Actionscript. Antes teremos que passar pelos Pais, em seguida pelo 1º Filho(um dos gêmeos), depois pelo 2º Neto desse 1º Filho, e só depois de passar por todos, conseguimos obter alguma informação com o 1º Bisneto.</p>
<p>  Exemplo de acesso sequencial:<br />
  <span class="style46"><span class="style22">Pais </span><span class="style28"><span class="style15">&gt;</span> 1º_Filho</span> &gt;&gt; <span class="style40">2º_Neto</span> &gt;&gt;&gt;<span class="style42"> 1º_Bisneto</span></span></p>
<p>  Percebeu o controle da situação? Família bem &quot;exigente&quot; está. Não é? <br />
  Podemos dizer que o XML é exigente  também, bastante exigente e não permite erros. Se não formos organizados, certamente iremos  ter problemas com XML.</p>
<p>  Se você tentar ir direto ao 1º Bisneto sem antes &quot;pegar&quot; informações/permissões seguindo a ordem de hierarquia. Podemos não ter uma referência de acesso até este membro. também não teriamos certeza de onde esse 1º Bisneto veio, de qual Filho ele pertence gerando uma confusão. Além de ter dificuldades para encontrá-lo de forma mais segura e ter acesso mais facilmente até o mesmo.<span class="style46"><span class="style22"><br />
  </span></span><br />
  Agora está começando a ficar mais clara essas informações? Ainda não? <br />
  Você gostaria de outro exemplo de uma outra história?</p>
<p>  Tudo bem. A história poderia ser quaisquer temas que você desejar ou imaginar, com qualquer informação que precisar e da maneira que preferir organizar. Tudo pode depender da sua necessidade de passar uma ou mais informações.  Isso porque o XML permite essa &quot;liberdade&quot; de criação. Mas claro, sempre respeitando sua hierarquia de acessos e logicamente, respeitando as regras de criação de um Documento XML.</p>
<p>  Voltando um pouco para a realidade do Flash. Quando formos associar o arquivo XML com o Flash, acredito que vai fazer sentido esse conceito de hierarquias como este entre outros vários exemplos que podemos encontrar  na Web com XML. Principalmente se for a primeira vez que você está conhecendo XML e ainda mais em conjunto com AS3(Actionscript 3.0).</p>
<p>  Na versão AS3, a  melhorias que teve com XML são notáveis comparado com sua versão anterior do AS2.<br />
  Você poderá ter acesso diretamente por nomes de cada Nó do XML(linha do XML), facilitando não só na sua organização mas também no seu entendimento e organização do código.</p>
<p>  A seguir, falaremos um pouco de algumas nomenclaturas mais utilizadas no XML com Flash.<br />
  </span></p>
<p>&nbsp;</p>
<p><strong class="titulo">1. 1 - Algumas nomenclaturas</strong><strong class="titulo">  de XML</strong> </p>
<p>Existe algumas <span id="lblDlpoDefinicao2"><span onDblClick="javascript:SeleccionaEntrada_v2(getSel(),'0')">nomenclatura</span></span>s que são bastante usadas quando falarmos em XML, e estas &quot;nomenclaturas&quot;, nos ajudarão no entendimento deste tópico pra leitura de um Documento XML externo em conjunto com o Flash. Algumas dos nomes mais utilizados são:</p>
<p>    <span class="style19">* Documento XML </span>(XML Document)<strong>:</strong><br />
  Geralmente usado quando se referimos em &quot;enviar&quot; ou &quot;carregar&quot; um Documento XML ou apenas para falar sobre ele. Podemos considerar este Documento sendo o arquivo XML propriamente dito (exemplo.xml). Também não podemos confundir  com a Classe <em>XMLDocument</em> que está presente no AS3.</p>
<p>  <span class="style19">* Declaração XML </span><span class="style18">(XML Declaration)</span><span class="style16">:</span><br />
  É a parte inicial quando escrevemos  um Documento XML. Utiliza uma Tag especial <strong>&lt;?xml ?&gt;</strong>, e com esta Tag   podemos acrescentar atributos que descreve por exemplo que tipo de versão  você utiliza do XML e a sua codificação. A Declaração XML ajuda na interpretação da leitura do XML. Está Tag especial não pode ser considerado como um Elemento XML(um Nó XML).</p>
<p>  Um dos exemplos bastante utilizado para o inicio do XML. Ex.:<br />
  <strong><span class="style28"><br />
  </span></strong><span class="style28"><span class="style26">Versão 1.0 do XML</span><br />
  </span><strong><span class="style28">&lt;?xml</span> <span class="style4">version</span><span class="style22">=</span></strong><span class="style22">&quot;1.0&quot;</span><span class="style28"><strong> ?&gt;</strong></span></p>
<p>  Ou com:</p>
<p>  <span class="style26">Codificação de letras, padrão para línguas ocidentais iso-8859-1</span><br />
  <strong><span class="style28">&lt;?xml</span> <span class="style4">version</span><span class="style22">=</span></strong><span class="style22">&quot;1.0&quot;</span><span class="style28"><span class="style4"><strong> encoding</strong></span><span class="style22">=&quot;iso-8859-1&quot;</span><strong> ?&gt;<br />
  </strong><span class="style15"><br />
    <strong>Obs.:</strong>  Existe outros tipos de codificações, se quiser você pode conhecer um pouco mais  a <a href="http://pt.wikipedia.org/wiki/Anexo:Lista_de_codifica%C3%A7%C3%B5es_de_caractere" target="_blank">Lista de codificação no Wikipedia</a> ou em pesquisas em sites específicos.</span><strong></p>
<p>  </strong><span class="style15"><strong class="style19"></p>
<p>    * Raiz XML ou Árvore XML </strong>(XML Tree)<strong>:</strong><br />
    Também conhecido como &quot;Data tree&quot;(Informação raiz). Um <strong>Raiz XML</strong>, podemos dizer que é  a hierarquia de todos os seus respectivos Nós XML  que foram criados em um Documento XML.</p>
<p>
    Representado no exemplo abaixo com a Tag na cor Vermelha.<br />
  <strong>Ex:</strong></span><br />
  &lt;?xml <span class="style4">version</span><span class="style22">=&quot;1.0&quot;</span> ?&gt;<br />
  <span class="style22">&lt;RaizXML&gt;<br />
  </span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;nóRaiz&gt;<br />
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;elementoXML&gt; meu texto 1 aqui &lt;/elementoXML&gt;<br />
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;elementoXML&gt; meu texto 2 aqui &lt;/elementoXML&gt;<br />
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;elementoXML&gt; meu texto 3 aqui &lt;/elementoXML&gt;</span><span class="style28"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;nóRaiz&gt;</span><span class="style28"><br />
  <span class="style22">&lt;/RaizXML&gt;</span></span> </p>
<p>
</p>
<p><strong class="style19">* Nó Raiz </strong>(Root Node)<strong>:</strong><br />
  É um Elemento que está geralmente no topo do Documento XML ou é o Nó principal de uma grupo de Nós XML, respeitando a sua Hierarquia para conseguir referenciar  um ou mais Elementos XML que você criar dentro deste Nó Raiz.</p>
<p>  <span class="style15">Representado no exemplo abaixo com a Tag na cor Vermelha.</span> <span class="style28"><span class="style15"><strong>Ex:</strong></span><br />
  &lt;?xml <span class="style4">version</span><span class="style22">=&quot;1.0&quot;</span> ?&gt;<br />
  &lt;RaizXML&gt;<br />
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="style22">&lt;nóRaiz&gt;</span><br />
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;elementoXML&gt; conteúdo 1  &lt;/elementoXML&gt;<br />
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;elementoXML&gt; conteúdo 2 &lt;/elementoXML&gt;<br />
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;elementoXML&gt; conteúdo 3 &lt;/elementoXML&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;<span class="style22">&lt;/nóRaiz&gt;</span></span><span class="style28"><br />
&lt;/RaizXML&gt;</span> </p>
<p><strong></p>
<p>      <span class="style19">* Nó XML</span> </strong>(XML Nodes)<strong>:</strong><br />
  Um XML é composto por um ou vários Nós XML. Quando falamos em &quot;Nós do XML&quot; podemos considerar como uma espécie de &quot;bloco de informações&quot;. E neste &quot;bloco de informações&quot; pode conter um ou mais  &quot;Elementos XML&quot;, &quot;Nó de textos&quot;, &quot;Atributos&quot;, entre outros tipos. Os dois nomes <em>&quot;Elemento XML&quot;</em> e <em>&quot;Nó de texto&quot;</em> podemos considerar simplismente como o &quot;Nó XML&quot;(Nodes), e geralmente o termo Atributo está inserido dentro de um Nó XML.<br />
  <span class="style15"><br />
  Representado no exemplo abaixo com a Tag na cor Vermelha.</span> <span class="style28"><span class="style15"><strong>Ex:</strong></span><br />
  &lt;?xml <span class="style4">version</span><span class="style22">=&quot;1.0&quot;</span> ?&gt;<br />
  <span class="style22">&lt;RaizXML&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;nóRaiz&gt;</span><br />
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="style22">&lt;elementoXML&gt;</span> conteúdo 1 <span class="style22">&lt;/elementoXML&gt;</span><br />
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="style22">&lt;elementoXML&gt;</span> conteúdo 2  <span class="style22">&lt;/elementoXML&gt;</span><br />
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="style22">&lt;elementoXML&gt;</span> conteúdo 3 <span class="style22">&lt;/elementoXML&gt;</span><br />
  <span class="style22">&nbsp;&nbsp;&nbsp;&nbsp;&lt;/nóRaiz&gt;<br />
&lt;/RaizXML&gt;</span></span><br />
  <strong></p>
<p>  <span class="style19">* Elementos XML</span> </strong>(XML Element)<strong>:</strong><br />
  Os &quot;Elementos XML&quot; podemos considerar como &quot;Tags&quot;, um termo bastante usado para o HTML, já que o XML tem uma grande &quot;famíliaridade&quot; com a aparência  de um arquivo HTML. Podemos criar diversos Elementos XML com nomes iguais ou diferentes.  Conseguir ler apenas o Elemento XML que nos interessa no momento.</p>
<p>  Este Elemento XML pode também ser escrito de duas formas. Sendo elas:</p>
<p>  Abrindo e fechando Tag. Criando uma Tag para abrir um Elemento <span class="style28"><strong>&lt; &gt;</strong></span> e em seguida criar outra Tag que Fecha o mesmo elemento criado<span class="style28"><strong> &lt;/ &gt;</strong></span>. Geralmente este tipo de Elemento existe um conteúdo inserido entre a Tag criada. Podemos também acrescentar Atributos/propriedades dentro da Tags de abertura caso  achar necessário.<br />
  <strong>- Sintaxe: </strong><span class="style28">&lt;abre a tag do Elemento&gt;</span> <span class="style15">escreve o conteúdo e <span class="style28">&lt;/fecha a tag com o mesmo nome do Elemento&gt;</span></span><strong><br />
    - Ex.: </strong><span class="style28">&lt;elemento&gt;</span> conteúdo  <span class="style28">&lt;/elemento&gt;</span><strong></p>
<p>  </strong>Ou abrindo e fechando na mesma Tag, geralmente este tipo de Elemento  contém um ou mais &quot;Atributos&quot; inseridos dentro da Tag, e também quando não queremos colocar necessariamente &quot;valores&quot;(ex: informações) entre um  Elemento.<br />
  <strong>- Sintaxe: </strong><span class="style28">&lt;abre e fecha e na mesma tag com o barra pra direita no final /&gt;</span><br />
  <strong>- Ex.: </strong><span class="style28">&lt;elemento <span class="style4">meuAtributo</span></span><span class="style22">=&quot;valor do atributo&quot;</span><span class="style28">/&gt;</span><strong><span class="style28"></p>
<p>
  </span></strong><strong class="style19">* Atributo XML </strong>(Attribute)<strong>:<br />
  </strong>Podemos chamar o &quot;Atributo XML&quot; como  sendo uma &quot;parte&quot; ou &quot;propriedade&quot; de um Elemento criado. Geralmente carrega uma &quot;particularidade&quot; que queremos acrescentar em um determinado Elemento XML que for criado.<br />
  Devem ser referenciados  sempre dentro do Elemento XML e não entre as Tags do mesmo. Você pode criar quantos Atributos precisar, mas sempre com nomes diferentes de atributos quando utilizado dentro do mesmo Elemento, isso pra evitar conflitos/confusões quando for fazer leitura de conteúdo. O Valor de cada Atributo geralmente deve ser colocado entre aspas duplas (&quot; &quot;). <br />
  <strong>- Sintaxe:</strong> <span class="style9">NomeDoAtributo</span><span class="style22">=&quot;Valor do Atributo&quot;</span><br />
  <strong>- Ex.:</strong><span class="style28"><br />
  &lt;elementoXML</span> <span class="style22"><span class="style4">idade</span>=&quot;Tenho 10 anos.&quot;</span> <span class="style22"><span class="style4">Nome</span>=&quot;Fulano de Tal&quot;</span><span class="style28">&gt; </span><br />
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;O Fulano de Tal nasceu do Ciclano de Tal.<br />
  <span class="style28">&lt;/elementoXML&gt;</span><strong><span class="style28"></p>
<p>  </span></strong><strong><span class="style28"><br />
  </span><span class="style19">* Nó de Texto</span> </strong>(Text Node)<strong>:</strong><br />
  É basicamente um conteúdo de texto que está inserido dentro de um Nó XML.  Neste Nó  XML pode também conter outros &quot;Elementos XML&quot; que você pode criar, e estes Elementos &quot;alimenta&quot;  o conteúdo deste Nó XML como se fosse um &quot;recheio de informações&quot; do mesmo. </p>
<p>  No exemplo abaixo, no primeiro <span class="style22"><strong>nóDeTexto1</strong></span> contém apenas 1 Nó XML com seu  respectivo Textos. Já no segundo <span class="style20"><strong>nóDetexto2</strong></span> definimos com mais 3 Nó XML com seu  respectivo Textos para &quot;rechear&quot; ele, e no <span class="style51">nóDetexto3</span>, existe apenas um texto.<br />
  <strong>- Ex.:</strong> <span class="style28"><br />
&lt;?xml <span class="style4">version</span><span class="style22">=&quot;1.0&quot;</span> ?&gt;<strong><br />
  </strong>&lt;RaizXML&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;nóRaiz&gt;<br />
  <span class="style22">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;nóXML1&gt;</span><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;elemento&gt; </span>meu texto ou informação aqui <span class="style28">&lt;/elemento&gt;<br />
  <span class="style22">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/nóXML1&gt;</span><br />
  <span class="style20"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;nóXML2&gt;</span><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;elementoXML&gt; <span class="style15">meu texto aqui </span> &lt;/elementoXML&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;elementoXML&gt; <span class="style15">aqui vai outro conteúdo</span> &lt;/elementoXML&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;elementoXML </span><span class="style9">atributo</span><span class="style22">=&quot;Valor&quot;</span><span class="style28">&gt; <span class="style15">escrevo o que eu precisar </span> &lt;/elementoXML&gt;<br />
  <span class="style20">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/nóXML2&gt;</span></p>
<p>  <span class="style20">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="style52">&lt;nóDeTexto&gt;</span></span><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="style15">Meu conteúdo de texto.<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;um Nó de Texto também é considerado como um Elemento XML.</span><br />
<span class="style20">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="style52">&lt;/nóDeTexto&gt;</span></span><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/nóRaiz&gt;<br />
&lt;/RaizXML&gt;</span></p>
<p>
  <strong><span class="style19">* </span></strong> <span class="style19"><strong>CDATA</strong>:</span><br />
O CDATA nos permite que inserirmos outras  informações entre uma Tag XML  sem que seja interpretado pelo XML. podemos dizer que o <strong>CDATA</strong> funciona como uma espécie de [cápsula].<br />
Ou seja, o XML irá entender o conteudo do Nó XML sendo como um <em>Nó de Texto</em> ignorando quaisquer códigos inseridos entre um um Elemento XML.<br />
Por exemplo, as vezes  podemos querer inserir formatação de texto utilizando Tag de HTML. Devemos utilizando os sinais  de &quot;&lt;&quot; e &quot;&gt;&quot; para inserir as tags HTML, isso pro XML é entendido como abertura ou fechamento de um Nó ele não identificará que é uma tag de negrito e sim um Nó XML criado por você com nome de <strong>&lt;b&gt;&lt;/b&gt;</strong>. <br />
Caso queira formatar o texto com Tags Simples de HTML, podemos deixar da seguinte maneira utilizando o CDATA:</p>
<p><strong>- Sintaxe: <span class="style59">&lt;![CDATA[</span></strong><span class="style15"> informação de texto</span><span class="style59"><strong> ]]&gt;</strong></span><strong><br />
  - Ex.:<br />
  </strong><span class="style28">&lt;elementoXML&gt; </span><strong><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="style59">&lt;![CDATA[</span> &lt;b&gt; </strong>meu texto em formatação HTML<span class="style61">&lt;/b&gt;</span> <span class="style59"><strong>]]&gt;</strong></span><strong><br />
  </strong><span class="style28">&lt;/elementoXML&gt;</span><strong><br />
  </strong><br />
  <strong>Obs.:</strong> Mas tenha atenção se carregar no Flash conteúdo formatado com HTML. O Flash Player tem algumas restrições com algumas Tags de HTML.<strong><span class="style28"><br />
</span></strong><span class="style28"><span class="style15">Procure no Help do Flash(atalho F1) pela propriedade <strong>htmlText</strong> da classe <strong>TextField</strong> do AS3 para obter mais informações das Tags HTML que o Flash Player suporta.</span></span></p>
<p>  Vale também lembrar que, os nomes das Tags informadas  logo acima no XML são apenas sugestivos pra tentar nos  facilitar no entendimento da sintaxe do XML. Você pode criar quaisquer nomes que precisar mas sempre respeitando as hierarquia e maneira criação de um Documento XML.<br />
  <strong><br />
  No XML devemos tomar alguns cuidados na criação de nomes de Tags e Atributos:</strong></p>
<p>  - <strong>Não deve iniciar com Números</strong> os nome de tags e atributos, apenas usar números depois que inserir a primeira letra;<br />
  - <strong>Não utilizar caracteres especiais</strong> para os nomes de Tags e atributos como: (!?@\ /#$%&amp;*&quot;,;[] &#8216; +-), exceto para o sinais de menos/hífen ( - ) ou underline/underscore ( _ ) geralmente usados para unir palavras;<br />
  - <strong>Não podemos utilizar espaços</strong>  entre os nomes da  Tags;<br />
- <strong>O XML é Case Sensitive</strong>(sensível ao tamanho da letra) para nomes de Tags. Ele diferencia de letras  minúsculas<br />
e maiúscula.</p>
<p>O XML é uma linguagem bastante &quot;franca&quot;. Por exemplo, experimente  errar propositadamente a digitação quando estiver criando  Tags e Atributos do XML, e em seguida salve com um nome e extensão &quot;.xml&quot; e tente visualizar o arquivo no Browser, ele logo irá mostrar algo errado. Sinta-se digamos &quot;agradecido&quot; ao XML, ele nos ajuda evitar e mostrar erros que as vezes  passam despercebidos aos nossos olhos quando fazemos esta simples verificação no Browser.</p>
<p>&nbsp;</p>
<p><span class="style15"><br />
  </span><span class="titulo">1.2 - Falando um pouco de Array</span><span class="style15"></p>
<p>  Aproveitando este mesmo conceito da história da família, vamos dar um pequeno exemplo utilizando uma linha de código do AS3 para ler um arquivo XML, a principio apenas para adaptarmos neste conceito de Arrays que é muito importante para manipular informações de um XML no Actionscript. Vale a penas olhar o &quot;Help&quot; do Flash(tecla F1) para obter mais informações da classe Array() pra conhecer melhor.<br />
  Um Array nos ajuda a organizar e ter acesso as informações de forma ordenada. </p>
<p>  Retomando a história da família, para conseguiriamos chegar por exemplo até ao 1º Bisneto desta família, seria da seguinte forma:</p>
<p>  Se antes eu preciso seguir este caminho/lógica e ordem de acesso por  hierarquia, separando cada membro por &quot;níveis&quot;.<br />
  Ex.:<br />
  <span class="style46"><span class="style22">Pais</span> &gt; <span class="style28">1º_Filho <span class="style15">&gt;&gt;</span></span> <span class="style40">2º_Neto <span class="style15">&gt;&gt;&gt;</span> </span><span class="style42">1º_Bisneto</span></span><br />
  <span class="style26">nível 1 &gt; nível 2 &gt;&gt; nível 3 &gt;&gt;&gt; nível 4</span></p>
<p>  No AS3 para ler o XML e chegar até o 1º Bisneto, seria da seguinte forma(separando os elementos no AS utilizando Pontos). Ex.:<br />
  <strong><span class="style22">meuXML</span>.<span class="style28">Filho</span>[0].<span class="style40">Neto</span>[1].<span class="style42">Bisneto</span></strong></p>
<p>  O nome <span class="style45">&quot;meuXML&quot;</span> são  extamente os &quot;<span class="style45">Pais</span>&quot; do XML, no AS não precisamos colocar o nome da Raiz do XML. Isso porque esse meuXML(poderia ser qualquer nome), é um nome de instância  que  criamos via Actionscript a partir da classe XML.<br />
  Quando falamos em um nome de instância que é criada a partir da classe, podemos dizer que está instância passa agora a ter as propriedades e métodos<br />
  da classe que for criada.<br />
  No nosso caso a Classe XML.<br />
  E Esta classe XML do AS3 possui suas propriedades e métodos para ter acesso  à um Documento XML.<br />
  Este &quot;meuXML&quot;  nada mais é que, a &quot;Raiz&quot; do arquivo XML. Digamos que, o objeto &quot;meuXML&quot; é o arquivo XML propriamente dito(a família e toda sua hierarquia de acessos). </p>
<p>  Perceba  também que foi inserido número inteiro entre  cada  Colchetes [ ], sendo que essa família tem os dois Filhos  exatamentes iguais(gêmeos) e o 3º Filho diferente a qual não foi referenciado agora. Ou seja, isso significa que poderiamos ter  Nós XML exatamente com mesmos nomes ou com  diferentes nomes e quantidades de Nós XML que quisermos criar. <br />
Mas, caso você tenha que trabalhar com nome de Nós de XML exatamente com nomes iguais.<br />
  </span><span class="style15">Para chamar cada Nó XML pelo Actionscript, devemos utilizar  um tratamento de Array[ ].</p>
<p>  No Actionscript existe dois tipos de Arrays que usam diferentes maneiras para acessar as informações(elementos). São estas:<br />
  <strong><br />
  <span class="style20">- Associative Array:</span></strong> <br />
  Que utiliza uma palavra chave &quot;associativa&quot; para ter acesso a cada elemento/informação.</p>
<p>  <span class="style20"><strong>- Integer-index-Array:</strong></span> <br />
  Que utiliza números inteiros, sendo que cada número é um único identificador para cada elemento que queremos referenciar. Começando sua contagem a partir do 0(zero), ordenada por um número a qual podemos chamar este número de &quot;Index&quot;.</p>
<p>  O mais conhecido e mais utilizado do Array geralmente é o Integer-index-array. Esta opção é excelente escolha caso você precise recuperar informações de forma ordenada. 0, 1, 2, 3, 4 &#8230; N Elementos. E será Integer-index-array que iremos usar aqui.</p>
<p>  Um exemplo de <strong>Integer-index-Array</strong>: </p>
<p>  Imagina a casa dessa mesma família, onde existe muitos quartos na casa. Podemos considerar esses quartos   um &quot;Grupo de quartos&quot;. E cada quarto desse grupo, passa a ser automaticamente  enumerado em um grande corredor. Ex.: Quarto 0 , Quarto 1, Quarto 2, etc. <br />
  Se colocarmos uma ordem por sequência  numérica, passariamos então a ter maior controle de acessos a cada quarto desse &quot;Grupo de quartos&quot;. A contagem de um objeto do tipo Array é feita a partir do 0(zero). </p>
<p>  Exemplo, logo abaixo no código AS, criamos um objeto com nome de instância &quot;Quarto&quot; que é a partir da Classe Array(). E em seguida mostra seus valores de cada elemento do Array na caixa de saída(Output). Crie um novo documento Flash, no 1º frame abra o painel de Actions(atalho F9) e digite:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
</pre></td><td class="code"><pre class="actionscript3"><span style="color: #009900;">//criamos o Array</span>
<span style="color: #6699cc; font-weight: bold;">var</span> Quarto<span style="color: #000000; font-weight: bold;">:</span><span style="color: #004993;">Array</span> = <span style="color: #0033ff; font-weight: bold;">new</span> <span style="color: #004993;">Array</span><span style="color: #000000;">&#40;</span><span style="color: #990000;">&quot;1º quarto&quot;</span>, <span style="color: #990000;">&quot;2º quarto&quot;</span>, <span style="color: #990000;">&quot;3º quarto&quot;</span><span style="color: #000000;">&#41;</span>;
&nbsp;
<span style="color: #009900;">//retorna valores de cada elemento Array</span>
<span style="color: #004993;">trace</span><span style="color: #000000;">&#40;</span> Quarto<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;">// 1º quarto</span>
<span style="color: #004993;">trace</span><span style="color: #000000;">&#40;</span> Quarto<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;">// 2º quarto</span>
<span style="color: #004993;">trace</span><span style="color: #000000;">&#40;</span> Quarto<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;">// 3º quarto</span></pre></td></tr></table></div>

<p>  Resultado deve ter ficado da seguinte forma:<br />
  <img src="../tutorial/img/carregar_xml_as3/array1.png" width="289" height="297" /><br />
  <strong>Imagem 1:</strong> Montando um exemplo de Array e recuperando valores de cada elemento que foi criado.</p>
<p>  Poderiamos ter N valores que podemos  separá-los os elementos por virgulas e desta maneira você consegue &quot;alimentar&quot; um Objeto Array e chamar um Elemento específico quando existe varios do mesmo grupo de nomes.<br />
  Ex.: <strong>nomeDoGrupoArray[ </strong>número do elemento<strong> ] </strong></p>
<p>  Podemos também inserir  valores como: Strings(textos), Boolean(true ou false), Números, ou referenciar um nome de outros Objetos que forem criados.</p>
<p>  E ainda podemos ir  mais além nisso. Agora aplicando o conceito desse Arrays em um XML. Se for uma situação pequena até que não teriamos  grandes problemas na organização. Mas se por acaso em cada quarto,  ter mais um &quot;grupo de informações&quot; inserido em cada quarto. E esses grupos tem os mesmos nomes. Então precisamos enumera-los para ter alguma referencia dentro de cada grupo.<br />
  Ou seja, cada quarto pode ter ou não  banheiros, ou ainda ter um ou vários armários, e em cada armário ter uma ou várias gavetas&#8230; </p>
<p>  &#8230;Está começando a complicar. Não é? </p>
<p>  Justamente por isso, o Array nos ajuda e muito na organização do Actionscript para obter uma determinada &quot;informação&quot; específica de um &quot;lugar&quot; específico de um &quot;grupo&quot; que queremos encontrar.<br />
  Principalmente no nosso caso que utilizamos o Actionscript para &quot;ler&quot; um Documento XML. O Array usa esse conceito de organização para XML com nomes iguais, e no XML o tratamento de Arrays  associa os números inteiros que estão entre os Colchetes da minhaArray[ ] para localizar a uma &quot;linha do XML&quot; que tem nomes iguais nas suas Tags XML. Mais especificamente, um Nó XML com nomes de Tags iguais. <br />
  Mas também, poderiamos fazer nomes diferentes(únicos) no XML  para cada Nó XML. Depende mesmo da sua necessidade e preferência de organização.</p>
<p>  Com Arrays podemos resolver facilmente uma situação mais ampla.<br />
  Por exemplo, vamos aproveitar  esta mesma situação da Casa:</p>
<p>  Preciso  pegar algumas  Roupas que estão em uma gaveta a qual ainda não sabemos. Mas antes, preciso saber as coordenadas ou o passo-a-passo para chegar até o meu objetivo.<br />
  Recebi a informação que, as &quot;Minhas Roupas&quot; estão na <strong>2º Gaveta</strong> do <strong>5º Armário</strong>,  que por fim está no <strong>3º Quarto</strong> do <strong>2º Corredor</strong> desta <strong>Casa</strong>.</p>
<p>  No  nosso documento XML está situação ficaria descrita da seguinte forma.<br />
  Foram criados tags de acordo com grupos que foi determinado. Também  acrescentamos alguns Atributos em alguns Elementos XML, isso para poder referenciar alguma informação &quot;extra&quot; ou &quot;particularidade&quot; de uma Tag específica. Estes Atributos podemos dizer que são como &quot;pistas&quot;.(Até parece coisa de &quot;detetive&quot;).</p>
<p>  O<br />
  Documento XML que denominamos de &quot;<strong>casa.xml</strong>&quot;:</p>
<p>  <img src="../tutorial/img/carregar_xml_as3/casaxml.png" width="459" height="344" /><br />
  <strong>Imagem 2:</strong> Documento XML.</p>
<p>
  E no código AS3 consigo chegar até a informação do XML referenciando  cada Nó XML pelo seus  nomes de Tags e Atributos. Caso houver Nós XML criados com mesmo nomes, utilizamos   &quot;números inteiros&quot; do Array para referenciar a cada elemento do XML. Lembra do <strong>Integer-index-Array</strong>? Começamos a contagem a partir de 0(zero).<br />
  Vale lembrar que  os nomes de Tags do XML são Case Sensitive. No Actionscript também devemos respeitar isso. Ficando desta forma no AS3</p>
<p>  <strong>meuXML.<span class="style20">Corredor</span>[1].<span class="style55">Quarto</span>[2].<span class="style54">Armario</span>[4].<span class="style22">Gaveta</span>[1];</strong></p>
<p>  O <strong>meuXML</strong> é um Objeto da classe XML do Actionscript a qual recebe informações de um arquivo Externo (casa.xml). Onde este &quot;meuXML&quot; é  exatamente a tag <strong>&lt;Casa&gt;&lt;/Casa&gt;</strong>, justamente o &quot;Nó Raiz&quot; do Documento XML.</p>
<p>  Acredito que o AS3 com XML facilitou a vida. Não é?</p>
<p>  Claro que este código AS3 está incompleto. Se tentar fazer algo somente com essa linha não conseguimos carregar nada tendo apenas estas informações.<br />
  Agora que o conceito do XML e Arrays está um pouco em nossa mente. Vamos ao Actionscript.</span><br />
Na próxima etapa iremos criar um Arquivo XML(<strong>casa.xml</strong>) e fazer o código AS3 ler esse mesmo exemplo.</p>
<p><p></p>
<p class="titulo">Etapa 2</p>
<p><span class="titulo">2 - Criando Documento  XML</span></p>
<p>  Abra um bloco de notas ou o seu editor de códigos, dê   o nome para este arquivo XML de <strong>casa.xml</strong>. <br />
  salve-o o seu Documento XML na mesma pasta do seu arquivo &quot;.Fla&quot; e &quot;.Swf&quot;. </p>
<p>  Digite:</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
</pre></td><td class="code"><pre class="xml"><span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;?xml</span> <span style="color: #000066;">version</span>=<span style="color: #ff0000;">&quot;1.0&quot;</span><span style="font-weight: bold; color: black;">?&gt;</span></span>
<span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;Casa<span style="font-weight: bold; color: black;">&gt;</span></span></span>
	<span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;Corredor</span> <span style="color: #000066;">informacao</span>=<span style="color: #ff0000;">&quot;nao tem quartos aqui&quot;</span><span style="font-weight: bold; color: black;">/&gt;</span></span>
	<span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;Corredor</span> <span style="color: #000066;">informacao</span>=<span style="color: #ff0000;">&quot;tem 3 quartos&quot;</span><span style="font-weight: bold; color: black;">&gt;</span></span>
		<span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;Quarto</span> <span style="color: #000066;">informacao</span>=<span style="color: #ff0000;">&quot;quarto vazio&quot;</span> <span style="font-weight: bold; color: black;">/&gt;</span></span>
		<span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;Quarto</span> <span style="color: #000066;">informacao</span>=<span style="color: #ff0000;">&quot;quarto vazio&quot;</span> <span style="font-weight: bold; color: black;">/&gt;</span></span>
		<span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;Quarto</span> <span style="color: #000066;">informacao</span>=<span style="color: #ff0000;">&quot;tem 5 armarios aqui&quot;</span><span style="font-weight: bold; color: black;">&gt;</span></span>
            <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;Armario</span> <span style="color: #000066;">informacao</span>=<span style="color: #ff0000;">&quot;sem gavetas&quot;</span> <span style="font-weight: bold; color: black;">/&gt;</span></span>
            <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;Armario</span> <span style="color: #000066;">informacao</span>=<span style="color: #ff0000;">&quot;sem gavetas&quot;</span> <span style="font-weight: bold; color: black;">/&gt;</span></span>
            <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;Armario</span> <span style="color: #000066;">informacao</span>=<span style="color: #ff0000;">&quot;sem gavetas&quot;</span> <span style="font-weight: bold; color: black;">/&gt;</span></span>
            <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;Armario</span> <span style="color: #000066;">informacao</span>=<span style="color: #ff0000;">&quot;sem gavetas&quot;</span> <span style="font-weight: bold; color: black;">/&gt;</span></span>
            <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;Armario<span style="font-weight: bold; color: black;">&gt;</span></span></span>
				<span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;Gaveta</span> <span style="color: #000066;">informacao</span>=<span style="color: #ff0000;">&quot;esta vazia&quot;</span> <span style="font-weight: bold; color: black;">/&gt;</span></span>
				<span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;Gaveta<span style="font-weight: bold; color: black;">&gt;</span></span></span>
					Minhas Roupas
				<span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;/Gaveta<span style="font-weight: bold; color: black;">&gt;</span></span></span>
&nbsp;
			<span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;/Armario<span style="font-weight: bold; color: black;">&gt;</span></span></span>
		<span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;/Quarto<span style="font-weight: bold; color: black;">&gt;</span></span></span>
	<span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;/Corredor<span style="font-weight: bold; color: black;">&gt;</span></span></span>
<span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;/Casa<span style="font-weight: bold; color: black;">&gt;</span></span></span></pre></td></tr></table></div>

<p></p>
<p>Seu Documento XML deve ter ficado algo parecido com a imagem 3:</p>
<p>  <img src="../tutorial/img/carregar_xml_as3/casaxml.png" width="459" height="344" /><br />
  <strong>Imagem 3:</strong> Criando um Documento  XML com nome de &quot;casa.xml&quot;.</p>
<p>Com seu arquivo XML devidamente criado. Vamos ler estas informações com Actionsript 3.0.</p>
<p>Dica:<br />
Salve o arquivo XML e  Flash em uma pasta para uma melhor organização dos arquivos.</p>
<p><p><span class="titulo">3 - Encontrando elementos do XML</span></p>
<p>  Antes de carregarmos um arquivo XML externo, vamos fazer alguns exemplos que nos ajudará entender melhor o Actionscript 3.0 com XML.<br /> <br />
Iremos gerar   o conteúdo XML inserindo no próprio Actionscript. Depois de pegarmos alguns conceitos desses exemplos partiremos para o exemplo externo.<br />
Sinta-se a vontade em pular as etapas se você achar necessário.</p>
<p>  Crie um novo documento Flash na versão <strong>Actionscript 3.0</strong> e salve com o nome &quot;<strong>lendo_elementos_xml.Fla</strong>&quot;. Clique na primeira Layer e dê o nome de <strong>&quot;Actions&quot;</strong>.<br />
  Em seguida selecione o primeiro frame e abra o painel de Actions <strong>Window &gt; Actions</strong> (atalho F9). Na  1º linha, digite:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
</pre></td><td class="code"><pre class="actionscript3"><span style="color: #6699cc; font-weight: bold;">var</span> meuXML<span style="color: #000000; font-weight: bold;">:</span><span style="color: #004993;">XML</span> = 
<span style="color: #000000; font-weight: bold;">&lt;</span>meuXML<span style="color: #000000; font-weight: bold;">&gt;</span>
	<span style="color: #000000; font-weight: bold;">&lt;</span>linha<span style="color: #000000; font-weight: bold;">&gt;</span>
		Conteudo
	<span style="color: #000000; font-weight: bold;">&lt;/</span>linha<span style="color: #000000; font-weight: bold;">&gt;</span>
<span style="color: #000000; font-weight: bold;">&lt;/</span>meuXML<span style="color: #000000; font-weight: bold;">&gt;</span>
<span style="color: #004993;">trace</span><span style="color: #000000;">&#40;</span>meuXML<span style="color: #000000;">&#41;</span>;</pre></td></tr></table></div>

<p>Em seguida teste o filme (Ctrl+Enter). Você pode perceber que na caixa de Saída aparece o  XML inteiro.<br />
  Na 1º linha, criamos uma variável  denominamos de <strong>meuXML</strong> do tipo <strong>XML</strong>, e nele acrescentamos exatamente um conteúdo qualquer de XML.  <br />
  E na ultima linha do código AS utilizamos o método trace() para retornar  o XML na caixa de saida(output).</p>
<p>  Agora para conseguir ter acesso a um nó XML específico basta digitar  após a variável (objeto XML) o operador ponto ( . ) seguido pelo  &quot;nome&quot; do Nó XML que queremos encontrar. Como  sabemos que o XML tem sua hierarquia de acesso e devemos respeitar isso. No Actionscript  apenas separamos os &quot;níveis&quot; de cada Nó XML  utilizando  pontos( . ) seguido pelo nome do outro Nó interno.</p>
<p>  Altere a ultima linha do código:</p>

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

<p>
  Por:</p>

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

<p>
  Teste o filme(Ctrl + Enter). Como podemos ver,  aparece agora o <strong>conteúdo</strong>  que está inserido entre as tag <strong>&lt;linha&gt;&lt;/linha&gt;</strong>, que é o  1º e único Nó XML que temos no momento.<br />
  Se tivessemos outros Nó XML(níveis) inseridos entre a tags<strong> &lt;linha&gt;&lt;/linha&gt;</strong>, para acessar outras tags dentro desta, bastaria acrescentar pontos seguidos sempre pelo nome do Nó XML que queremos acessar e assim por diante. Vejamos este exemplo.</p>
<p>  Altere o código que está:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
</pre></td><td class="code"><pre class="actionscript3"><span style="color: #6699cc; font-weight: bold;">var</span> meuXML<span style="color: #000000; font-weight: bold;">:</span><span style="color: #004993;">XML</span> = 
<span style="color: #000000; font-weight: bold;">&lt;</span>meuXML<span style="color: #000000; font-weight: bold;">&gt;</span>
	<span style="color: #000000; font-weight: bold;">&lt;</span>linha<span style="color: #000000; font-weight: bold;">&gt;</span>
		Conteudo
	<span style="color: #000000; font-weight: bold;">&lt;/</span>linha<span style="color: #000000; font-weight: bold;">&gt;</span>
<span style="color: #000000; font-weight: bold;">&lt;/</span>meuXML<span style="color: #000000; font-weight: bold;">&gt;</span>
<span style="color: #004993;">trace</span><span style="color: #000000;">&#40;</span>meuXML<span style="color: #000000;">&#41;</span>;</pre></td></tr></table></div>

<p>
Altere por:</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
</pre></td><td class="code"><pre class="actionscript3"><span style="color: #6699cc; font-weight: bold;">var</span> meuXML<span style="color: #000000; font-weight: bold;">:</span><span style="color: #004993;">XML</span> = 
<span style="color: #000000; font-weight: bold;">&lt;</span>meuXML<span style="color: #000000; font-weight: bold;">&gt;</span>
    <span style="color: #000000; font-weight: bold;">&lt;</span>linha1<span style="color: #000000; font-weight: bold;">&gt;</span>
        <span style="color: #000000; font-weight: bold;">&lt;</span>linha2<span style="color: #000000; font-weight: bold;">&gt;</span>
            <span style="color: #000000; font-weight: bold;">&lt;</span>linha3<span style="color: #000000; font-weight: bold;">&gt;</span>
                <span style="color: #000000; font-weight: bold;">&lt;</span>linha4<span style="color: #000000; font-weight: bold;">&gt;</span>
                    <span style="color: #000000; font-weight: bold;">&lt;</span>linha5<span style="color: #000000; font-weight: bold;">&gt;</span>
                   		Conteudo da linha <span style="color: #000000; font-weight:bold;">5</span>
                    <span style="color: #000000; font-weight: bold;">&lt;/</span>linha5<span style="color: #000000; font-weight: bold;">&gt;</span>
                <span style="color: #000000; font-weight: bold;">&lt;/</span>linha4<span style="color: #000000; font-weight: bold;">&gt;</span>
            <span style="color: #000000; font-weight: bold;">&lt;/</span>linha3<span style="color: #000000; font-weight: bold;">&gt;</span>
        <span style="color: #000000; font-weight: bold;">&lt;/</span>linha2<span style="color: #000000; font-weight: bold;">&gt;</span>
    <span style="color: #000000; font-weight: bold;">&lt;/</span>linha1<span style="color: #000000; font-weight: bold;">&gt;</span>
<span style="color: #000000; font-weight: bold;">&lt;/</span>meuXML<span style="color: #000000; font-weight: bold;">&gt;</span>
<span style="color: #004993;">trace</span><span style="color: #000000;">&#40;</span>meuXML.linha1.linha2.linha3.linha4.linha5<span style="color: #000000;">&#41;</span>;</pre></td></tr></table></div>

<p>Teste o Filme(Ctrl + Enter), neste exemplo acima apenas acrescentamos mais Nós XML,  e para econtrar  um Nó XML específico utilizo o nome de cada Nó separado por pontos. Isso fará eu acessar um determinado &quot;nível&quot; de um Nó específico que quero achar. No nosso exemplo retorna o conteudo que está na linha5.</p>
<p class="titulo">3.1 - Pegando um atalho &#8230;</p>
<p>  Até aí está bem. Mas se eu tivesse numa situação em que tenho um XML com uma quantidade maior  de Nós? Chuta um número bem alto (exagerando: 100 Nós XML).<br />
  Teria que escrever um por um para chegar até o Elemento?<br />
  Depende da sua disposição pra isso.<br /> <br />
  Como assim?<br />
  Se preferir podemos digitar sim,  nomes de cada Nó XML, um por um, separando os nomes por pontos conforme no exemplo anterior.<br />
  Ou   podemos pular esse trabalho todo, ao invés de colocar apenas 1 ponto para separar os &quot;níveis&quot; de acesso a cada Nó, utilizamos  2 pontos seguidos (..) apenas uma vez, que podemos dizer que funciona como  um &quot;atalho&quot;.<br />
  Fazendo isso, irá &quot;omitir&quot; apenas os nomes dos Nós intermediários para chegar até onde queremos.<br />
  Para isso temos que inserir  o 1º nome do Nó inicial  e o último nome do Nó que queremos encontrar e inserir entre estes nomes os 2 pontos seguidos (..). Vejamos o exemplo a seguir.</p>
<p>  Mantendo o mesmo código anterior, altere apenas ultima linha que está: </p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>15
</pre></td><td class="code"><pre class="actionscript3"><span style="color: #004993;">trace</span><span style="color: #000000;">&#40;</span>meuXML.linha1.linha2.linha3.linha4.linha5<span style="color: #000000;">&#41;</span>;</pre></td></tr></table></div>

<p>  Altere por:</p>

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

<p>  Teste o filme(ctrl+Enter). Você verá que o resultado é o mesmo que o código anterior. Mas acredito que 1º diferença é notável  e <span id="lblDlpoDefinicao">unânime</span>: Tivemos menos trabalho que o exemplo anterior. Não é?<br />
  Não importa a quantidade de Nós XML que foram inseridos um dentro do outro, se tiver 2 Nós ou mais Nós inseridos como &quot;Níveis&quot;, este &quot;atalho&quot; (..) pode nos ajudar e muito a &quot;poupar&quot; tempo além de uma boa dor no pulso na hora de digitar. Exelente forma de &quot;acesso rápido&quot; em casos que temos grandes quantidades de Nós(Com diversos &quot;níveis&quot; de acesso).</p>
<p>  Claro que esse atalho de 2 pontos seguidos(..) você irá decidir e perceber quando usá-lo conforme a sua necessidade.</p>
<p><strong><span class="titulo">3.2 - Acesso a Elementos de nomes iguais</span></p>
<p>  </strong>Podemos trabalhar com XML que tenham 2 ou mais  elementos(Nós XML)com mesmo nomes. Para ter acesso a cada um deles, utilizamos um tratamento  parecido com um Array[].</p>
<p>    Veja este exemplo. Apague o código do exemplo anterior e digite:<strong></p>
<p>    </strong></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
</pre></td><td class="code"><pre class="actionscript3"><span style="color: #6699cc; font-weight: bold;">var</span> meuXML<span style="color: #000000; font-weight: bold;">:</span><span style="color: #004993;">XML</span> = 
<span style="color: #000000; font-weight: bold;">&lt;</span>meuXML<span style="color: #000000; font-weight: bold;">&gt;</span>
    <span style="color: #000000; font-weight: bold;">&lt;</span>time<span style="color: #000000; font-weight: bold;">&gt;</span>
        <span style="color: #000000; font-weight: bold;">&lt;</span>jogador<span style="color: #000000; font-weight: bold;">&gt;</span>
            <span style="color: #000000; font-weight: bold;">&lt;</span>posicao<span style="color: #000000; font-weight: bold;">&gt;</span>
            	Fulano é goleiro
            <span style="color: #000000; font-weight: bold;">&lt;/</span>posicao<span style="color: #000000; font-weight: bold;">&gt;</span>
        <span style="color: #000000; font-weight: bold;">&lt;/</span>jogador<span style="color: #000000; font-weight: bold;">&gt;</span>
        <span style="color: #000000; font-weight: bold;">&lt;</span>jogador<span style="color: #000000; font-weight: bold;">&gt;</span>
            <span style="color: #000000; font-weight: bold;">&lt;</span>posicao<span style="color: #000000; font-weight: bold;">&gt;</span>
            	Beltrano é defensor
            <span style="color: #000000; font-weight: bold;">&lt;/</span>posicao<span style="color: #000000; font-weight: bold;">&gt;</span>
        <span style="color: #000000; font-weight: bold;">&lt;/</span>jogador<span style="color: #000000; font-weight: bold;">&gt;</span>
        <span style="color: #000000; font-weight: bold;">&lt;</span>jogador<span style="color: #000000; font-weight: bold;">&gt;</span>
            <span style="color: #000000; font-weight: bold;">&lt;</span>posicao<span style="color: #000000; font-weight: bold;">&gt;</span>
            	Ciclano é atacante
            <span style="color: #000000; font-weight: bold;">&lt;/</span>posicao<span style="color: #000000; font-weight: bold;">&gt;</span>
        <span style="color: #000000; font-weight: bold;">&lt;/</span>jogador<span style="color: #000000; font-weight: bold;">&gt;</span>
    <span style="color: #000000; font-weight: bold;">&lt;/</span>time<span style="color: #000000; font-weight: bold;">&gt;</span>
<span style="color: #000000; font-weight: bold;">&lt;/</span>meuXML<span style="color: #000000; font-weight: bold;">&gt;</span>
<span style="color: #004993;">trace</span><span style="color: #000000;">&#40;</span>meuXML.<span style="color: #004993;">time</span>.jogador<span style="color: #000000;">&#91;</span><span style="color: #000000; font-weight:bold;">0</span><span style="color: #000000;">&#93;</span>.posicao<span style="color: #000000;">&#41;</span>;
<span style="color: #004993;">trace</span><span style="color: #000000;">&#40;</span>meuXML.<span style="color: #004993;">time</span>.jogador<span style="color: #000000;">&#91;</span><span style="color: #000000; font-weight:bold;">1</span><span style="color: #000000;">&#93;</span>.posicao<span style="color: #000000;">&#41;</span>;
<span style="color: #004993;">trace</span><span style="color: #000000;">&#40;</span>meuXML.<span style="color: #004993;">time</span>.jogador<span style="color: #000000;">&#91;</span><span style="color: #000000; font-weight:bold;">2</span><span style="color: #000000;">&#93;</span>.posicao<span style="color: #000000;">&#41;</span>;</pre></td></tr></table></div>

<p>
Teste o filme(Ctrl + Enter), notamos que para ter acesso a um elemento específico, que tenha nomes idênticos para Nós XML, usamos o tratamento de &quot;Array&quot;, onde inserimos &quot;nomeDoElemento[ordem númerica]. A contagem sempre é a partir do 0(zero) em ordem crescente, que mostra que o número &quot;zero&quot;( ex.: jogador[0] ) é o 1º Nó XML  do nível &quot;time&quot;.<strong><br />
</strong></p>
<p>
<span class="titulo">3.3 - Descobrindo a quantidade de Elementos</span></p>
<p>Em alguns casos em que temos muitos nós XML com mesmo nomes, conseguimos saber a  quantidade de nós criados utilizando o método <strong>XML.length()</strong> da classe XML.</p>
<p>  Acrescente uma nova linha neste código anterior e digite:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>24
</pre></td><td class="code"><pre class="actionscript3"><span style="color: #004993;">trace</span><span style="color: #000000;">&#40;</span> meuXML.<span style="color: #004993;">time</span>.jogador.<span style="color: #004993;">length</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span> <span style="color: #000000;">&#41;</span>;</pre></td></tr></table></div>

<p>
  Teste o filme(ctrl + Enter), como podemos ver na caixa output, irá mostrar o conteúdo de cada jogador e mais a quantidade de números de tags que foram inseridas com o mesmo nome <strong>&lt;jogador&gt;</strong>. Que no nosso exemplo são 3 tag com nomes iguais <strong><jogador></strong>.</p>
<p>
<span class="titulo"><strong>3.4 - Usando Loop <em>for each</em></strong></span></p>
<p>Se você quer saber  conteúdo de cada elemento que tenha o mesmo nome no arquivo XML. Podemos usar o <strong>loop for each</strong> que verifica cada nome de Elemento encontrado com nome que você precisa achar no XML mostrando seu respectivo conteudo de cada tag encontrada. Isto é util quando temos nomes de Tags XML com nome iguais e queremos ver o conteudo ao invés de apenas saber a <strong>quantidade</strong> de Nós com o método <strong>XML.length()</strong>.</p>
<p>  Vamos aproveitar o mesmo código anterior, apenas altere as 4 ultimas linhas:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>21
22
23
24
</pre></td><td class="code"><pre class="actionscript3"><span style="color: #004993;">trace</span><span style="color: #000000;">&#40;</span>meuXML.<span style="color: #004993;">time</span>.jogador<span style="color: #000000;">&#91;</span><span style="color: #000000; font-weight:bold;">0</span><span style="color: #000000;">&#93;</span>.posicao<span style="color: #000000;">&#41;</span>;
<span style="color: #004993;">trace</span><span style="color: #000000;">&#40;</span>meuXML.<span style="color: #004993;">time</span>.jogador<span style="color: #000000;">&#91;</span><span style="color: #000000; font-weight:bold;">1</span><span style="color: #000000;">&#93;</span>.posicao<span style="color: #000000;">&#41;</span>;
<span style="color: #004993;">trace</span><span style="color: #000000;">&#40;</span>meuXML.<span style="color: #004993;">time</span>.jogador<span style="color: #000000;">&#91;</span><span style="color: #000000; font-weight:bold;">2</span><span style="color: #000000;">&#93;</span>.posicao<span style="color: #000000;">&#41;</span>;
<span style="color: #004993;">trace</span><span style="color: #000000;">&#40;</span> meuXML.<span style="color: #004993;">time</span>.jogador.<span style="color: #004993;">length</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span> <span style="color: #000000;">&#41;</span>;</pre></td></tr></table></div>

<p>
  Por:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>21
22
23
</pre></td><td class="code"><pre class="actionscript3"><span style="color: #0033ff; font-weight: bold;">for</span> <span style="color: #0033ff; font-weight: bold;">each</span><span style="color: #000000;">&#40;</span> <span style="color: #6699cc; font-weight: bold;">var</span> jogador<span style="color: #000000; font-weight: bold;">:</span><span style="color: #004993;">XML</span> <span style="color: #0033ff; font-weight: bold;">in</span> meuXML.<span style="color: #004993;">time</span>.jogador<span style="color: #000000;">&#41;</span><span style="color: #000000;">&#123;</span>
	<span style="color: #004993;">trace</span><span style="color: #000000;">&#40;</span>jogador<span style="color: #000000;">&#41;</span>;
<span style="color: #000000;">&#125;</span></pre></td></tr></table></div>

<p>Teste o filme, verá que retorna o conteudo de cada Tag jogador que for encontrada no XML.<br />
Neste loop criamos um variável com nome que determinamos como <strong>jogador</strong>(poderia ser qualquer nome) do tipo <strong>XML</strong>, e após o keyword <em><strong>in</strong></em> irá verificar no documento XML  a cada Nò XML que preciso buscar (<strong> meuXML.time.jogador </strong>). Ou seja, enquanto tiver conteúdo específicado no loop irá fazer o que estiver entre as chaves { }. Que neste caso irá mostrar na caixa Output o conteúdo de cada Nó <strong>jogador</strong> encontrado no arquivo XML e irá agregar o valor econtrado à variável que criamos (<strong>jogador</strong>). Este loop só irá acabar quando econtrar todos os nós XML que foi especificado no <strong>loop for each</strong>.</p>
<p>
<span class="titulo"><strong>3.5 - Encontrando Atributos de um Elemento</strong></span><span class="style65"><strong><br />
</strong></span><br />
Para carregar um valor de um Atributo  XML de qualquer Elemento específico, também buscamos por nomes assim como fazemos para buscar um Elemento XML. Mas, devemos acrescentar antes do nome do atributo o simbolo <strong>&quot;@&quot;</strong>(logo depois do ponto que separa um Elemento XML) indicando que esse Atributo pertence a um Elemento. Sendo esta  sintaxe:<br />
<span class="style26">//retorna o valor do Atributo da Tag XML.</span><strong><br />
<span class="style62">meuObjetoXML</span>.<span class="style28">nomeDaTagXML</span>.<span class="style22">@</span>nomeDoAtributoDestaTagXML</strong><strong></strong></p>
<p>Exemplo. Apague o código anterior e digite:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
</pre></td><td class="code"><pre class="actionscript3"><span style="color: #6699cc; font-weight: bold;">var</span> meuXML<span style="color: #000000; font-weight: bold;">:</span><span style="color: #004993;">XML</span> = 
<span style="color: #000000; font-weight: bold;">&lt;</span>meuXML<span style="color: #000000; font-weight: bold;">&gt;</span>
	<span style="color: #000000; font-weight: bold;">&lt;</span>nome idade=<span style="color: #990000;">&quot;10 anos&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span>
<span style="color: #000000; font-weight: bold;">&lt;/</span>meuXML<span style="color: #000000; font-weight: bold;">&gt;</span>
<span style="color: #004993;">trace</span><span style="color: #000000;">&#40;</span>meuXML.nome.@idade<span style="color: #000000;">&#41;</span>;</pre></td></tr></table></div>

<p>
Teste o filme, ira retornar na caixa Output apenas o valor do atributo(<strong>idade</strong>) da tag <strong>&lt;nome&gt;</strong>.</p>
<p><p><span class="titulo"><br />
  4 - Carregando  XML externo</span></p>
<p>  Para ler um arquivo XML externo, a principio é exatamente o mesmo conceito usado para ler um conteúdo de XML que foi gerado  diretamente pelo Actionscript.<br />
  A diferença  que precisamos<br />
   utilizar 3 Classes do AS3 para este exemplo. Sendo elas:<br />
  A Classe <strong>URLRequest()</strong>, <strong>URLLoader</strong> e finalmente a Classe <strong>XML()</strong>;</p>
<p>  <strong>- URLRequest()</strong>, é responsável por armazenar endereços externos. No nosso caso será um <strong>arquivo XML</strong>;<br />
  <strong>- URLLoader()</strong>, é responsável por &quot;recuperar&quot; dados/informações externas. A qual faremos um ouvinte para manipular com Eventos.<br />
  <strong>- XML()</strong>, para quando criarmos o Objeto XML e fazer referência a ele aos dados que estão no arquivo XML externo.</p>
<p>  Crie um novo documento Flash na versão <strong>Actionscript 3.0</strong> e salve com o nome &quot;<strong>carregando_xml_externo.Fla</strong>&quot;. Clique na primeira Layer e dê o nome de <strong>&quot;Actions&quot;</strong>.<br />
  Em seguida selecione o primeiro frame e abra o painel de Actions <strong>Window &gt; Actions</strong> (atalho F9). Digite na 1º linha:</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: #6699cc; font-weight: bold;">var</span> meuURL<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;casa.xml&quot;</span><span style="color: #000000;">&#41;</span>;
<span style="color: #6699cc; font-weight: bold;">var</span> infoXML<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>;
infoXML.<span style="color: #004993;">load</span><span style="color: #000000;">&#40;</span> meuURL <span style="color: #000000;">&#41;</span>;
infoXML.<span style="color: #004993;">addEventListener</span><span style="color: #000000;">&#40;</span> <span style="color: #004993;">Event</span>.<span style="color: #004993;">COMPLETE</span>, leiaXML <span style="color: #000000;">&#41;</span>;</pre></td></tr></table></div>

<p>Na <strong>1º linha</strong> do código AS, criamos uma variável com nome de <strong>meuURL</strong> do tipo(:) <strong>URLRequest</strong> que faz parte da <strong>classe URLRequest()</strong>. O Parametro solicitado entre os parênteses	 ( ) desta classe é do tipo String, que necessita  exatamente o endereço do arquivo externo que queremos trabalhar. Pode ser endereço relativo( minhaPasta/arquivo.xml ) ou endereço absoluto(http://&#8230;arquivo.xml).<br />No nosso caso um arquivo XML(casa.xml) e está na mesma pasta do nosso arquivo Flash.</p>
<p>  Na <strong>2º linha</strong>, criamos uma variável que denominamos de <strong>infoXML</strong> que é a partir da classe <strong>URLLoader()</strong>. Esta classe URLLoader solicita um objeto da classe URLrequest.</p>
<p>  Na <strong>3º linha</strong>, utilizamos o método  <strong>URLLoader.load()</strong>. O Parâmetro solicitado neste método load() é o endereço do nosso arquivo externo, a variável <strong>meuURL</strong>.<br />
  Como sabemos esta variável <strong>meuURL</strong>  contém a informação de um arquivo externo, o nosso  XML(casa.xml).</p>
<p>  Existe também uma outra maneira de declarar essa variável URLRequest é utilizar a propriedade <strong>URLRequest.url</strong>:</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> meuURL<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: #000000;">&#41;</span>;
meuURL.<span style="color: #004993;">url</span> = <span style="color: #990000;">&quot;casa.xml&quot;</span>;</pre></td></tr></table></div>

<p>
  Vamos trabalhar com a 1º opção de declaração da variável URLRequest.</p>
<p>  Ainda se quiser também, podemos colocar apenas uma linha para criar a variavel URLLoader e acrescentar o endereço da classe URLRequest() dentro do parênteses	 ( ) da classe URLLoader().<br />
Ex:</p>

<div class="wp_syntax"><div class="code"><pre class="actionscript3"><span style="color: #6699cc; font-weight: bold;">var</span> infoXML<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: #0033ff; font-weight: bold;">new</span> <span style="color: #004993;">URLRequest</span><span style="color: #000000;">&#40;</span><span style="color: #990000;">&quot;casa.xml&quot;</span><span style="color: #000000;">&#41;</span> <span style="color: #000000;">&#41;</span>;</pre></div></div>

<p>
Mas caso você opte em fazer isso,   não será necessário criar uma variável URLRequest e nem deverá declarar o método URLLoader.load() para fazer download do arquivo externo. Pois já está  inserido o endereço entre os parênteses	 da Classe URLRequest( ).<br />
Mas desta maneira,  talvez você não terá tanto dinamismo no seu código. Pois, ao invés de você poder  definir outros endereços externos para o URLLoader() alterando apenas a variavel do URLRequest(), você terá um endereço fixo sempre para este mesmo objeto URLLoader().</p>
<p>Vamos trabalhar com  a 1º idéia  proposta no código inicial. Isto foi apenas para mostrar outras maneiras de criação.</p>
<p>Retomando. Em nosso exemplo seu código deve estar da seguinte forma:</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: #6699cc; font-weight: bold;">var</span> meuURL<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;casa.xml&quot;</span><span style="color: #000000;">&#41;</span>;
<span style="color: #6699cc; font-weight: bold;">var</span> infoXML<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>;
infoXML.<span style="color: #004993;">load</span><span style="color: #000000;">&#40;</span> meuURL <span style="color: #000000;">&#41;</span>;
infoXML.<span style="color: #004993;">addEventListener</span><span style="color: #000000;">&#40;</span> <span style="color: #004993;">Event</span>.<span style="color: #004993;">COMPLETE</span>, leiaXML <span style="color: #000000;">&#41;</span>;</pre></td></tr></table></div>

<p>  Na <strong>4º linha</strong>, <strong>adicionamos um Ouvinte de Eventos</strong> para a variável <strong>infoXML</strong> ( <strong>infoXML.addEventListener</strong> ) os parametros solicitados dentro dos parênteses	 ( ), são o tipo de Evento que quero quando for totalmente carregado ( <strong>Event.COMPLETE</strong> ) e a função que denominamos de <strong>leiaXML</strong> que será chamada/executada fazendo o que eu precisar com este arquivo externo.<br />
  Ou seja, em outras palavras, este Ouvinte (<strong>infoXML.addEventListener</strong>) é responsável por verificar quando for totalmente carregado este arquivo externo(casa.xml), e quando isso ocorrer com sucesso, irá executar uma função que iremos criar a seguir.</p>
<p>  Na linha seguinte, digite:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>5
6
7
8
</pre></td><td class="code"><pre class="actionscript3"><span style="color: #339966; font-weight: bold;">function</span> leiaXML<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: #6699cc; font-weight: bold;">var</span> meuXML<span style="color: #000000; font-weight: bold;">:</span><span style="color: #004993;">XML</span> = <span style="color: #0033ff; font-weight: bold;">new</span> <span style="color: #004993;">XML</span><span style="color: #000000;">&#40;</span> infoXML.<span style="color: #004993;">data</span> <span style="color: #000000;">&#41;</span>;
	<span style="color: #004993;">trace</span><span style="color: #000000;">&#40;</span> meuXML.Corredor<span style="color: #000000;">&#91;</span><span style="color: #000000; font-weight:bold;">1</span><span style="color: #000000;">&#93;</span>.Quarto<span style="color: #000000;">&#91;</span><span style="color: #000000; font-weight:bold;">2</span><span style="color: #000000;">&#93;</span>.Armario.Gaveta<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: #000000;">&#125;</span></pre></td></tr></table></div>

<p>Criamos a função com o nome de <strong>LeiaXML</strong>, e dentro do seu parênteses	( ) solicita um parâmetro de Evento   que denominamos de <strong>evento</strong> do tipo(:)<strong>Event</strong>. Este &#8220;evento&#8221; contem as informações do arquivo externo. É uma regra no AS3 colocar esse parâmetro em funções dedicadas a Eventos. Isso porque podemos trabalhar com este <strong>&#8220;evento&#8221;</strong>  para fazer referências de &quot;alvos&quot; como exemplo <strong>evento.target</strong> se precisar para alguma outra aplicação.<br />
  Em seguida, ainda dentro  da chaves { } desta função LeiaXML, <br />
    Criamos uma variável com nome de <strong>meuXML</strong> do tipo(:) XML que é a partir da classe <strong>XML()</strong>. E o parâmetro que é solicitado entre os parênteses desta Classe XML( ) é a propriedade <strong>URLLoader.data</strong>. Que como sabemos é nossa variavel infoXML que contem informações dos dados do XML(casa.xml).A variavel meuXML é o Documento XML propriamente dito contendo todos seus Nós XML.</p>
<p>    E por fim, na linha seguinte informamos o caminho da informação que quero buscar no Documento XML.<br />
  Neste caso, é um Nó XML que irá retornar a informação  de texto na caixa de saída(Output) utilizando o método trace().<br />
Mostrando assim, apenas o conteúdo do Nó XML que eu preciso no momento.</p>
<p>    Se você acompanhou a <span class="style57">Etapa 1</span> no final do capítulo <strong><span class="style20">1.2 - Falando um pouco de Array</span>.</strong><br />
    Demos a sugestão de buscar a informação que era saber no XML em que lugar estava as &quot;Minha Roupas&quot;.</p>
<p>  <strong>meuXML.<span class="style20">Corredor</span>[1].<span class="style55">Quarto</span>[2].<span class="style54">Armario</span>[4].<span class="style22">Gaveta</span>[1];<br />
  </strong>Este caminho retorna o valor que eu preciso buscar em um Nó XML do arquivo casa.xml. O valor de texto: <strong>&quot;Minhas Roupas&quot;</strong>.</p>
<p>  Se desejar, podemos utilizar um &quot;atalho&quot; para esse caminho todo, que é muito útil em casos que temos quantidade grandes de &quot;Níveis&quot;(Nós XML) para acessar. Basta utilizar 2 pontos em sequencia para separar do Elemento Inicial até o Elemento final. Ficando da seguinte forma:<br />
  <strong>meuXML<span class="style15">..</span><span class="style22">Gaveta</span>[1];</strong><br />
  Obs.: no capítulo <strong>3.1 - Pegando um atalho &#8230; </strong>explica como utilizar esse &#8220;atalho&#8221;.</p>
<p>Teste seu filme, <strong>Control &gt; Test Movie</strong> (Ctrl + Enter).<br />
Seu código todo deve ficou da seguinte maneira:<br />
<strong>Obs.:</strong> O código completo está brevemente comentado em cada linha.</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
</pre></td><td class="code"><pre class="actionscript3"><span style="color: #009900;">//criamos variaveis para URLrequest e URLLoader</span>
<span style="color: #6699cc; font-weight: bold;">var</span> meuURL<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;casa.xml&quot;</span><span style="color: #000000;">&#41;</span>;
<span style="color: #6699cc; font-weight: bold;">var</span> infoXML<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>;
&nbsp;
<span style="color: #3f5fbf;">/*fazemos o download do arquivo externo
pelo método URLLoader.load()*/</span>
infoXML.<span style="color: #004993;">load</span><span style="color: #000000;">&#40;</span> meuURL <span style="color: #000000;">&#41;</span>;
&nbsp;
<span style="color: #3f5fbf;">/*adicionamos um ouvinte para o URLLoader
utilizamos o Evento de carregar por completo
e chamamos a função LeiaXML*/</span>
infoXML.<span style="color: #004993;">addEventListener</span><span style="color: #000000;">&#40;</span> <span style="color: #004993;">Event</span>.<span style="color: #004993;">COMPLETE</span>, leiaXML <span style="color: #000000;">&#41;</span>;
&nbsp;
<span style="color: #009900;">//criamos a função que irá ler o XML</span>
<span style="color: #339966; font-weight: bold;">function</span> leiaXML<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: #3f5fbf;">/*criamos o objeto XML contendo a informações
    do arquivo externo usando a propriedade URLLoader.data*/</span>
    <span style="color: #6699cc; font-weight: bold;">var</span> meuXML<span style="color: #000000; font-weight: bold;">:</span><span style="color: #004993;">XML</span> = <span style="color: #0033ff; font-weight: bold;">new</span> <span style="color: #004993;">XML</span><span style="color: #000000;">&#40;</span> infoXML.<span style="color: #004993;">data</span> <span style="color: #000000;">&#41;</span>;
&nbsp;
    <span style="color: #3f5fbf;">/*mostramos informações na caixa de saída(output)
    retorna o valor do Nó XML &lt;Gaveta&gt;: &quot;Minhas Roupas&quot;*/</span>
    <span style="color: #004993;">trace</span><span style="color: #000000;">&#40;</span> meuXML.Corredor<span style="color: #000000;">&#91;</span><span style="color: #000000; font-weight:bold;">1</span><span style="color: #000000;">&#93;</span>.Quarto<span style="color: #000000;">&#91;</span><span style="color: #000000; font-weight:bold;">2</span><span style="color: #000000;">&#93;</span>.Armario.Gaveta<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: #000000;">&#125;</span></pre></td></tr></table></div>

<p>
 O resultado final deste exemplo deve ter ficado algo parecido como a <strong>Imagem 4 </strong>e<strong> Imagem 5 </strong>que estão logo a seguir<strong>:<br />
 </strong><br />
 <strong>Documento  Flash:</strong><br />
 <img src="../tutorial/img/carregar_xml_as3/as_xml_final.png" width="545" height="321" /><br />
 <strong>Imagem 4:</strong> Codigo AS3, Carregando um arquivo XML externo e mostrando na caixa de saída(Output).</p>
<p>
 <strong>Documento  XML:</strong><br />
 <img src="../tutorial/img/carregar_xml_as3/casaxml.png" width="459" height="344" /><br />
 <strong>Imagem 5:</strong> Documento XML <strong>casa.xml</strong>.</p>
<p>
  Utilizamos apenas o método <strong>trace()</strong> para dar maior foco no entendimento de leitura do XML. <br />
  Mas, se quiser aplicar estes valores XML em caixa de texto dinâmica. Basta cria-la no stage e dar um nome de uma instância para a mesma. E no lugar do <strong>trace()</strong> utilize a propriedade <strong>TextField.<span class="style58">text</span></strong> ou <strong>TextField.<span class="style20">htmlText</span></strong> para receber os valores do XML. O Flash Player interpreta o XML como dados de Texto assim como o HTML. Por isso, talvez você  precise utilizar a propriedade <strong>TextField.<span class="style20">htmlText</span></strong> caso tenha inserido textos no XML utilizando  formatação apropriada de HTML.
</p>
<p>Abraços e até a próxima!</p>
<p>
<a href="http://www.rodrigopixel.com.br" target="_blank">Rodrigo Gonçalves</a><br />
Equipe Alvo Web
</p>
<p>
<a rel="license" href="http://creativecommons.org/licenses/by-nc-sa/2.5/br/"><img alt="Creative Commons License" style="border-width:0" src="http://i.creativecommons.org/l/by-nc-sa/2.5/br/80x15.png" /></a> <br />
O Conteúdo do <a xmlns:cc="http://creativecommons.org/ns#" href="http://www.alvoweb.com" property="cc:attributionName" rel="cc:attributionURL">Alvo Web Developers</a> está  licenciada sob uma <a rel="license" href="http://creativecommons.org/licenses/by-nc-sa/2.5/br/">Creative Commons Atribuição-Uso Não-Comercial-Compartilhamento pela mesma Licença 2.5 Brasil License</a>.<br />
<br />
<script type="text/javascript"><!--
google_ad_client = "pub-1122471812070813";
google_ad_width = 336;
google_ad_height = 280;
google_ad_format = "336x280_as";
google_ad_type = "text_image";
google_color_border = "fafafa";
google_color_bg = "fafafa";
google_color_link = "003366";
google_color_text = "7d7d7d";
google_color_url = "78b749";

//--></script>
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
</p>
]]></content:encoded>
			<wfw:commentRss>http://www.alvoweb.com/xml-externo-com-as3/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Carregando variáveis com AS3</title>
		<link>http://www.alvoweb.com/carregando-variaveis-as3/</link>
		<comments>http://www.alvoweb.com/carregando-variaveis-as3/#comments</comments>
		<pubDate>Wed, 20 Feb 2008 04:33:34 +0000</pubDate>
		<dc:creator>Rodrigo</dc:creator>
		
		<category><![CDATA[ActionScript]]></category>

		<guid isPermaLink="false">http://www.alvoweb.com/carregando-variaveis-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: conhecimentos básicos de funcionamento do Flash, Actionscript 3.0 e lógica de programação.

  Fala Galera, tranquilo?!
Vamos ver como carregar variáveis com AS3.
Mas antes é interessante sabermos como o Flash [...]]]></description>
			<content:encoded><![CDATA[<style type="text/css">
<!--
.style1 {
	color: #FF0000;
	font-weight: bold;
}
.style2 {color: #0066CC}
-->
</style>
<p><strong>Autor:</strong> Rodrigo Gonçalves</p>
<p><strong>Package:</strong> flash.net <br />
  <strong>Classe:</strong> public class URLLoader <br />
  <strong>Versão AS:</strong>  ActionScript 3.0 <br />
  <strong>Player:</strong>  Flash Player 9</p>
<p>  <strong>Dificuldade:</strong> conhecimentos básicos de funcionamento do Flash, Actionscript 3.0 e lógica de programação.</p>
<p>
  Fala Galera, tranquilo?!</p>
<p>Vamos ver como carregar variáveis com AS3.<br />
Mas antes é interessante sabermos como o Flash trabalha leitura de dados no AS3. Caso você já tenha conhecimentos sobre variáveis, sinta-se a vontade para pular a introdução.</p>
<p>
<strong><br />
<h3 class="style2">Introdução</h3>
<p></strong></p>
<p>Quando o Flash carrega dados de uma URL, o Flash Player pode interpretar de três formas, sendo elas:</p>
<p>  - <strong>Texto</strong>: como exemplo HTML e XML;<br />
- <strong>Binário</strong>;<br />
- <strong>Variáveis</strong>: conhecido também como <strong>URL-encoded variables</strong>.
</p>
<p>Veremos sobre variáveis, e precisamos seguir algumas regras mais importantes para criação de variáveis:</p>
<p>* Cada <strong>nome de variável</strong> tem que ser associada com um <strong>valor</strong> sempre <strong>usando o sinal de igual</strong> (=) sem espaços entre eles. <br />
  Não podemos confundir com sinal de equivalência (==), que serve para comparação entre dois valores, e não para associação de um valor para variável;<br />
  Ficando algo do tipo: <strong>minhaVariavel=meuValor</strong>. Quer dizer que <strong>minhaVariavel</strong> recebe(=) <strong>meuValor</strong> como conteúdo.</p>
<p>  * Os valores das variáveis são tratadas como tipo Strings no Flash. Sendo assim, não precisamos inserir <strong><em>aspas duplas</em></strong> <strong>&quot; &quot;</strong> ou <strong><em>aspas simples</em></strong> &#8216; &#8216; em seus valores;</p>
<p>* Se existir mais de um par de <strong>variáveis/valores</strong> que queira acrescentar no arquivo, devemos separar utilizando o sinal (<strong>&amp;</strong>). Exemplo:<br />
<em>variavel1=valor1</em><strong>&amp;</strong><em>variavel2=valor2</em><strong>&amp;</strong><em>variavel3=valor3</em></p>
<p>* Para representar os espaços quando digitamos a tecla &quot;espaço&quot;.  Para uma melhor compatibilidade de leitura, podemos também utilizar o sinal de adição (<strong>+</strong>). Exemplo:<br />
<strong><em>variavel=</em></strong><em>Aqui</em><strong><em>+</em></strong><em>carregamos</em><strong><em>+</em></strong><em>valores</em><br />
Isto quando o Flash lê esta variavel reconhece o sinais(+) inseridos no valor como se tivesse digitado o &quot;espaço&quot; no teclado, mostrando da seguinte maneira:<br />
<strong>Aqui carregamos valores</strong>.</p>
<p>Podemos também utilizar o <strong>espaço</strong> normal. Exemplo<br />
<strong><em>variavel=</em></strong><em>Aqui carregamos valores</em></p>
<p>Ou ainda <em>caracteres como  (<strong>%20</strong>)  que representa o &quot;espaço&quot;</em>. Exemplo:<br />
<strong><em>variavel=</em></strong><em>Aqui</em><strong><em>%20</em></strong><em>carregamos</em><strong><em>%20</em></strong><em>valores</em></p>
<p>Com isso já sabemos o principal e essencial que o Flash precisa para podermos formatar os dados carregados e fazer com que o Flash faça a leitura corretamente.</p>
<p>Na versão AS3, não utilizamos mais a classe <strong>LoadVars</strong> para carregar ou enviar dados como faziamos na versão anterior do Actionscript. Passamos agora, a utilizar a classe <strong>URLLoader().<br />
</strong>Esta classe também pode trabalhar em &quot;conjunto&quot; com algumas outras classes, como Ex.:<br />
  URLRequest(), URLVariables(), URLStream, Loader(), entre algumas outras classes.<br />
  <strong><br />
  - URLLoader(),</strong> é responsável por &quot;recuperar&quot; dados/informações externas no Flash;<br />
  <strong>- URLRequest()</strong>, é responsável por armazenar endereços externos;<br />
  <strong>- URLVariables()</strong>, é utilizado para criarmos variáveis dentro do Flash para comunicar com um scripts (ex: PHP, ASP) quando queremos fazer formulários de envio de e-mail ou buscas;<br />
<strong>- URLStream(),</strong> é utilizado para fluxo de dados. Mas é aconselhável utilizar esta classe somente em casos que o arquivo é &quot;muito grande&quot; e a<strong> URLLoader()</strong> não é suficiente. Por exemplo, podemos dizer que esta classe <strong>URLStream()</strong> verifica os dados que já foram carregados e  mostra no filme conforme esteja disponível ou para verificar o progresso de download do arquivo.<br />
<strong>- Loader()</strong>, é responsável por carregar arquivos externos, como imagens(.jpg, .gif, .png, filmes SWF´s).</p>
<p><strong><br />
<h3 class="style2">Carregando variáveis com AS3:</h3>
<p>
</strong><br />
  Primeiro precisamo criar nosso arquivo Txt contento como formato  <strong><em>variável=valor</em></strong>. Abra um &quot;bloco de notas&quot; ou seu editor de códigos e salve como &quot;arquivo.txt&quot;.<br />
  Dentro deste arquivo, digite 3 variáveis seguidos do seus respectivos valores:</p>
<p>  Obs.: Você pode criar suas próprias variáveis e valores que desejar. Neste exemplo criamos:</p>
<p>  <strong>site=Alvo+Web&amp;categoria=Actionscript+3.0&amp;comentario=carregar+variáveis+no+AS3</strong></p>
<p>  <img src="../tutorial/img/variaveis/img1.png" width="541" height="92"><br />
  <strong>Imagem 1:</strong> Criando nosso arquivo Txt.</p>
<p>
Tendo nosso arquivo .Txt criado, vamos ao Actionscript.</p>
<p>Precisamos inicialmente utilizar duas classes, sendo elas:<br />
<strong>- URLRequest()</strong> é responsável por armazenar endereços externos. No nosso caso será um <strong>&quot;arquivo.txt&quot;</strong>;<br />
<strong>- URLLoader()</strong> é responsável por &quot;recuperar&quot; dados/informações externas.</p>
<p>  Crie um novo documento <strong>.Fla</strong> na versão <strong>Actionscript 3.0</strong>.<br />
Na primeira camada, selecionando o primeiro frame abra o painel de<strong> Window&gt;Actions</strong> <em>(atalho F9)</em>.</p>
<p>Digite:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
</pre></td><td class="code"><pre class="actionscript3"><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;arquivo.txt&quot;</span> <span style="color: #000000;">&#41;</span>;
<span style="color: #6699cc; font-weight: bold;">var</span> infoTxt<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>;
infoTxt.<span style="color: #004993;">dataFormat</span> = <span style="color: #004993;">URLLoaderDataFormat</span>.<span style="color: #004993;">VARIABLES</span>;
infoTxt.<span style="color: #004993;">load</span><span style="color: #000000;">&#40;</span><span style="color: #004993;">url</span><span style="color: #000000;">&#41;</span>;
infoTxt.<span style="color: #004993;">addEventListener</span><span style="color: #000000;">&#40;</span> <span style="color: #004993;">Event</span>.<span style="color: #004993;">COMPLETE</span>, leiaArquivoTxt <span style="color: #000000;">&#41;</span>;</pre></td></tr></table></div>

<p>
Na primeira linha, criamos a variável com nome <strong>url</strong> para a classe <strong>URLRequest()</strong>, nela iremos armazenar o endereço do nosso <strong>arquivo.txt</strong>.<br />
o endereço pode ser relativo <em>(ex.: pasta/meuArquivo.txt)</em> ou absoluto <em>(ex.: http://www&#8230;/pasta/meuArquivo.txt)</em>. Neste exemplo estamos trabalhando na mesma pasta do arquivo <strong>.Fla</strong>.</p>
<p>Na segunda linha, criamos uma variável com nome de <strong>infoTxt</strong> para a classe <strong>URLLoader()</strong>, que servirá para recuperar informações/dados externos que estão no nosso <strong>arquivo.txt</strong>.</p>
<p>Na terceira linha, utilizamos a propriedade <strong>URLLoader.dataFormat</strong> que serve para formatar as informações/dados externos, e &quot;dizer&quot; ao Flash qual tipo de arquivo ele irá interpretar. Se é um tipo: <strong>Texto, Binário</strong> ou <strong>Variável</strong>.<br />
No nosso caso queremos ler variável, então definimos como <strong>URLLoaderDataFormat.VARIABLES.</strong> Quando definimos a propriedade  <strong>dataFormat</strong> para o valor de <strong>DataFormat.VARIABLES</strong>, a propriedade <strong>data</strong>(que veremos mais a diante) irá ter um comportamento de  um Objeto(Object), que irá &quot;mapear&quot; os nomes de variáveis com seus respectivos valores do arquivo que estamos carregando.<br />
Por padrão o Flash Player interpreta dados externos como <strong>Texto</strong> (<em> URLLoaderDataFormat.TEXT</em> ) que são considerados como uma &quot;String&quot;(textos). Por este motivo, precisamos formatar os dados para encontrar e ler <strong>Variáveis</strong> ( <em>URLLoaderDataFormat.VARIABLES</em> ).<br />
O Flash irá &quot;buscar&quot; por variáveis que estiverem no arquivo informado no endereço que definimos pela classe <em>URLRequest()</em>.</p>
<p>Na quarta linha, utilizamos o método/função <strong>URLLoader.load()</strong> que irá fazer o &quot;download&quot; do arquivo. Entre  seus parenteses o parâmetro solicitado é URLRequest(). Como já definimos o endereço pela variável <strong>url</strong>, apenas inserimos seu nome de variável url entre seus parenteses do método <strong>load()</strong>.</p>
<p>Na quinta linha, adicionamos um ouvinte ( <strong>addEventListener</strong> ) para a variável <strong>infoTxt</strong> da URLLoader(), que irá verificar pelo Evento quando for carregado por completo ( <strong>Event.COMPLETE</strong> ), chama uma função que denominamos de <strong>leiaArquivoTxt</strong>. Esta função será responsável por ler as variáveis que definimos no arquivo.txt. Iremos criar está função a seguir:</p>
<p>
Numa próxima linha digite:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>6
7
8
</pre></td><td class="code"><pre class="actionscript3"><span style="color: #339966; font-weight: bold;">function</span> leiaArquivoTxt<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> infoTxt.<span style="color: #004993;">data</span> <span style="color: #000000;">&#41;</span>;
<span style="color: #000000;">&#125;</span></pre></td></tr></table></div>

<p>
Teste o filme, <strong>(Ctrl+Enter)</strong>. Você verá na caixa de saida/output que irá aparecer exatamente todo o <strong>arquivo.txt</strong> com suas variáveis e respectivos valores. Assim como na <em>imagem 2</em> logo abaixo.</p>
<p><img src="../tutorial/img/variaveis/img2.png" width="430" height="143"><br />
<strong>Imagem 2:</strong> lendo arquivo txt mostrado na caixa de saída (output) do Flash CS3.</p>
<p>  Criamos a função <strong>leiaArquivoTxt</strong> que só é acionada/executada quando o <strong>arquivo.txt</strong> for totalmente carregado pelo evento descrito no ouvinte que definimos logo acima. Entre seus parenteses denominamos um parâmetro com nome <strong>evento</strong> do tipo <strong>Event ( evento:Event )</strong>Entre suas chaves digitamos o método <strong>trace()</strong> dentro deste método trace definimos a propriedade <strong>URLLoader.data</strong>, que como sabemos é nossa variável<strong> infoTxt.data</strong> que recebe todos os dados/informações daquele arquivo que foi carregado (<em>arquivo.txt</em>).</p>
<p>  Agora, caso queira ler uma variável específica, basta informar como propriedade de <strong>URLLoader.data</strong> exatamente o  nome da variável que está dentro do arquivo.txt.<br />
  Tendo está sintaxe:</p>

<div class="wp_syntax"><div class="code"><pre class="actionscript3"><span style="color: #004993;">URLLoader</span>.<span style="color: #004993;">data</span>.variavel</pre></div></div>

<p>
  Em nosso arquivo definimos três variáveis:<br />
  <span class="style1">site<br />
  categoria<br />
  comentario</span></p>
<p>  Então podemos podemos escrever da seguinte forma:</p>
<p>  Ainda dentro da função <strong>leiaArquivoTxt</strong>, apague a linha 7:</p>

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

<p>
  Altere por:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>7
8
9
</pre></td><td class="code"><pre class="actionscript3"><span style="color: #004993;">trace</span><span style="color: #000000;">&#40;</span> infoTxt.<span style="color: #004993;">data</span>.site <span style="color: #000000;">&#41;</span>;
<span style="color: #004993;">trace</span><span style="color: #000000;">&#40;</span> infoTxt.<span style="color: #004993;">data</span>.categoria <span style="color: #000000;">&#41;</span>;
<span style="color: #004993;">trace</span><span style="color: #000000;">&#40;</span> infoTxt.<span style="color: #004993;">data</span>.comentario <span style="color: #000000;">&#41;</span>;</pre></td></tr></table></div>

<p>
Teste o filme, <strong>(Ctrl+Enter)</strong>. Você verá agora na caixa de saida <em>(output)</em> que irá aparecer exatamente o valor referente a cada variável que definimos no <strong>arquivo.txt</strong>. </p>
<p>Seu código todo deve ter ficado da seguinte maneira:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
</pre></td><td class="code"><pre class="actionscript3"><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;arquivo.txt&quot;</span> <span style="color: #000000;">&#41;</span>;
<span style="color: #6699cc; font-weight: bold;">var</span> infoTxt<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>;
infoTxt.<span style="color: #004993;">dataFormat</span> = <span style="color: #004993;">URLLoaderDataFormat</span>.<span style="color: #004993;">VARIABLES</span>;
infoTxt.<span style="color: #004993;">load</span><span style="color: #000000;">&#40;</span><span style="color: #004993;">url</span><span style="color: #000000;">&#41;</span>;
infoTxt.<span style="color: #004993;">addEventListener</span><span style="color: #000000;">&#40;</span> <span style="color: #004993;">Event</span>.<span style="color: #004993;">COMPLETE</span>, leiaArquivoTxt <span style="color: #000000;">&#41;</span>;
<span style="color: #339966; font-weight: bold;">function</span> leiaArquivoTxt<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> infoTxt.<span style="color: #004993;">data</span>.site <span style="color: #000000;">&#41;</span>;
	<span style="color: #004993;">trace</span><span style="color: #000000;">&#40;</span> infoTxt.<span style="color: #004993;">data</span>.categoria <span style="color: #000000;">&#41;</span>;
	<span style="color: #004993;">trace</span><span style="color: #000000;">&#40;</span> infoTxt.<span style="color: #004993;">data</span>.comentario <span style="color: #000000;">&#41;</span>;
<span style="color: #000000;">&#125;</span></pre></td></tr></table></div>

<p>  <img src="../tutorial/img/variaveis/img3.png" width="618" height="457"><br />
<strong>Imagem 3:</strong> carregando variáveis no Flash CS3 utilizando AS3.</p>
<p><strong><br />
<h3 class="style2">for &#8230;in</h3>
<p></strong><br />
  <br />
  Muitas vezes você já saberá os nomes das variaveis que deseja ler assim como nesse exemplo acima que você acompanhou. Porém, em alguns casos podemos trabalhar com arquivos feitos por outros programadores e precisamos saber das variáveis para ler o mesmo no Flash.<br />
  Existe um meio bastante interessante  e útil que inúmera todas a variáveis existentes no arquivo que foi carregado. Para isto utiilzamos o loop <strong>for &#8230;in</strong></p>
<p>  veja um exemplo.<br />
  Imagine que você ainda não sabe todas as variaveis existentes no arquivo que criamos (arquivo.txt).<br />
  Aproveitando este mesmo exemplo do arquivo <strong>.Fla </strong>e <strong>arquivo.txt,</strong> vamos recuperar todos os nomes das variáveis seguido dos seus respectivos valores. </p>
<p>  Ainda dentro da função <strong>leiaArquivoTxt</strong>, apague as linhas: 7, 8 e 9:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>7
8
9
</pre></td><td class="code"><pre class="actionscript3"><span style="color: #004993;">trace</span><span style="color: #000000;">&#40;</span> infoTxt.<span style="color: #004993;">data</span>.site <span style="color: #000000;">&#41;</span>;
<span style="color: #004993;">trace</span><span style="color: #000000;">&#40;</span> infoTxt.<span style="color: #004993;">data</span>.categoria <span style="color: #000000;">&#41;</span>;
<span style="color: #004993;">trace</span><span style="color: #000000;">&#40;</span> infoTxt.<span style="color: #004993;">data</span>.comentario <span style="color: #000000;">&#41;</span>;</pre></td></tr></table></div>

<p>
e Digite no lugar:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>7
8
9
</pre></td><td class="code"><pre class="actionscript3"><span style="color: #0033ff; font-weight: bold;">for</span><span style="color: #000000;">&#40;</span> <span style="color: #6699cc; font-weight: bold;">var</span> propriedade<span style="color: #000000; font-weight: bold;">:</span><span style="color: #004993;">String</span> <span style="color: #0033ff; font-weight: bold;">in</span> infoTxt.<span style="color: #004993;">data</span> <span style="color: #000000;">&#41;</span><span style="color: #000000;">&#123;</span>
	<span style="color: #004993;">trace</span><span style="color: #000000;">&#40;</span> propriedade <span style="color: #000000; font-weight: bold;">+</span> <span style="color: #990000;">&quot; = &quot;</span> <span style="color: #000000; font-weight: bold;">+</span> infoTxt.<span style="color: #004993;">data</span><span style="color: #000000;">&#91;</span>propriedade<span style="color: #000000;">&#93;</span> <span style="color: #000000;">&#41;</span>;
<span style="color: #000000;">&#125;</span></pre></td></tr></table></div>

<p>
Dentro da Função <strong>leiaArquivoTxt</strong>, criamos o loop <em><strong>for&#8230;in</strong></em>. <br />
Todas as variáveis do arquivo Txt é armazenada na variável que denominamos de <strong>propriedade</strong> do tipo <strong>String</strong>. <br />
E a cada vez que isso ocorre. Ou seja, cada vez que a propriedade procura os <em>dados</em> do <em>arquivo.txt</em> ( <strong>infoTxt.data</strong> ), executa o que estiver dentro da sua chaves <strong>{ }</strong>. Este loop só termina quando recuprar todas as variáveis do arquivo.</p>
<p>Dentro da sua chaves <strong>{ }</strong>, utilizamos o método <strong>trace()</strong> para mostrar o resultado na caixa de saída.<br />
Como sabemos que a variável <strong>propriedade</strong> recebe o nome de cada variável do <em>arquivo.txt</em>, podemos utilizar uma espécie de Array <strong>[ ]</strong> para achar os valores de cada variável, e dentro da [ ] colocamos o nome da variavel propriedade que definimos, ficando assim:<br />
<strong>infoTxt.data[ propriedade ]</strong></p>
<p>Com isso você consegue recuperar os valores na caixa output:<br />
<strong>sintaxe: variavel = valor</p>
<p>trace( propriedade + &quot; = &quot; + infoTxt.data[ propriedade ] );</p>
<p>
<img src="../tutorial/img/variaveis/img4.png" width="538" height="265"><br />
Imagem 4:</strong> declaração de loop <em><strong>for&#8230; in</strong></em>. para recuperar variaveis/valores de um arquivo.</p>
<p><strong><br />
<h3 class="style2">Caixa de texto Dinâmico</h3>
<p></strong></p>
<p>Se você quer aplicar os valores das variáveis à uma caixa de texto dinâmica <em>(ex.: TextField)</em>. Basta fazer da seguinte forma. <br />
Suponhamos que neste caso você já tenha criado três caixas de texto dinâmico, e inseridos os mesmo no stage <em>(palco)</em> com seus nomes de instâncias denominadas como: <strong>campo1, campo2</strong> e <strong>campo3</strong>.</p>
<p>No lugar do método <strong>trace()</strong> você pode utilizar a propriedade <strong>TextField.text</strong>:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>7
8
9
</pre></td><td class="code"><pre class="actionscript3">campo1.<span style="color: #004993;">text</span> = infoTxt.<span style="color: #004993;">data</span>.site;
campo2.<span style="color: #004993;">text</span> = infoTxt.<span style="color: #004993;">data</span>.categoria;
campo3.<span style="color: #004993;">text</span> = infoTxt.<span style="color: #004993;">data</span>.comentario;</pre></td></tr></table></div>

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

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