<?xml version="1.0" encoding="UTF-8"?>
<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/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Lucas Marçal &#187; Tutoriais</title>
	<atom:link href="http://www.lucasmarcal.com.br/blog/index.php/category/tutoriais/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.lucasmarcal.com.br/blog</link>
	<description>Flash Developer</description>
	<lastBuildDate>Wed, 31 Aug 2011 20:53:11 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Creative Suite 5.5 conheça as novidades!</title>
		<link>http://www.lucasmarcal.com.br/blog/index.php/2011/05/creative-suite-5-5-conheca-as-novidades/</link>
		<comments>http://www.lucasmarcal.com.br/blog/index.php/2011/05/creative-suite-5-5-conheca-as-novidades/#comments</comments>
		<pubDate>Thu, 05 May 2011 01:12:57 +0000</pubDate>
		<dc:creator>Lucas Marçal</dc:creator>
				<category><![CDATA[Destaque]]></category>
		<category><![CDATA[Tutoriais]]></category>
		<category><![CDATA[Cs5.5]]></category>

		<guid isPermaLink="false">http://www.lucasmarcal.com.br/blog/?p=221</guid>
		<description><![CDATA[Salve pessoal Estou com muito pouco tempo para postar aqui no blog (só para variar) por esse motivo decidi postar aqui os vídeos da Adobe.tv que eu tenho visto, espero que ajude vocês! Dreamweaver cs5.5 Native Mobile Application What&#8217;s new in flash professional cs5.5 Flash Professional cs5.5 &#8211; publishing content to IOS devices Developing for [...]]]></description>
			<content:encoded><![CDATA[<p>Salve pessoal</p>
<p>Estou com muito pouco tempo para postar aqui no blog (só para variar) por esse motivo decidi postar aqui os vídeos da Adobe.tv que eu tenho visto, espero que ajude vocês! </p>
<p><strong>Dreamweaver cs5.5 Native Mobile Application</strong></p>
<p><object width="425" height="256"><param name="movie" value="http://images.tv.adobe.com/swf/player.swf"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><param name="FlashVars" value="fileID=9197&amp;context=707&amp;embeded=true&amp;environment=production"></param><embed src="http://images.tv.adobe.com/swf/player.swf" flashvars="fileID=9197&amp;context=707&amp;embeded=true&amp;environment=production" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="256"></embed></object></p>
<p><strong>What&#8217;s new in flash professional cs5.5</strong></p>
<p><object width="425" height="256"><param name="movie" value="http://images.tv.adobe.com/swf/player.swf"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><param name="FlashVars" value="fileID=9200&amp;context=707&amp;embeded=true&amp;environment=production"></param><embed src="http://images.tv.adobe.com/swf/player.swf" flashvars="fileID=9200&amp;context=707&amp;embeded=true&amp;environment=production" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="256"></embed></object></p>
<p><strong>Flash Professional cs5.5 &#8211; publishing content to IOS devices</strong></p>
<p><object width="425" height="256"><param name="movie" value="http://images.tv.adobe.com/swf/player.swf"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><param name="FlashVars" value="fileID=9208&amp;context=707&amp;embeded=true&amp;environment=production"></param><embed src="http://images.tv.adobe.com/swf/player.swf" flashvars="fileID=9208&amp;context=707&amp;embeded=true&amp;environment=production" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="256"></embed></object></p>
<p><strong>Developing for IOS with AIR 2.6</strong></p>
<p><object width="425" height="256"><param name="movie" value="http://images.tv.adobe.com/swf/player.swf"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><param name="FlashVars" value="fileID=9360&amp;context=64&amp;embeded=true&amp;environment=production"></param><embed src="http://images.tv.adobe.com/swf/player.swf" flashvars="fileID=9360&amp;context=64&amp;embeded=true&amp;environment=production" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="256"></embed></object></p>
]]></content:encoded>
			<wfw:commentRss>http://www.lucasmarcal.com.br/blog/index.php/2011/05/creative-suite-5-5-conheca-as-novidades/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Como se tornar um Flash Developer de sucesso</title>
		<link>http://www.lucasmarcal.com.br/blog/index.php/2011/03/como-se-tornar-um-flash-developer-de-sucesso/</link>
		<comments>http://www.lucasmarcal.com.br/blog/index.php/2011/03/como-se-tornar-um-flash-developer-de-sucesso/#comments</comments>
		<pubDate>Sun, 27 Mar 2011 06:51:58 +0000</pubDate>
		<dc:creator>Lucas</dc:creator>
				<category><![CDATA[Destaque]]></category>
		<category><![CDATA[Tutoriais]]></category>
		<category><![CDATA[agências]]></category>
		<category><![CDATA[carreira]]></category>
		<category><![CDATA[dicas]]></category>

		<guid isPermaLink="false">http://www.lucasmarcal.com.br/blog/?p=201</guid>
		<description><![CDATA[Um resumo do que eu acredito ser os conhecimentos fundamentais para se tornar um bom Flash Developer]]></description>
			<content:encoded><![CDATA[<p>Salve pessoal!</p>
<p>Essa semana eu inicie a fase de contratações da equipe que vai trabalhar comigo em um projeto nos próximos meses, entre horas de pesquisa e análise de possibilidades eu me deparei com uma situação engraçada e atípica, pesquisando sobre média salarial de profissionais de agências de publicidade encontrei um <a href="http://www.adnews.com.br/negocios.php?id=104904" target="_blank">estudo</a> feito pela <a href="http://www.abradirj.com.br/Default.php" target="_blank">ABRADI</a> (Associação Brasileira de agências digitais), esse estudo mostra o salário dos profissionais de agências digitais descriminado por áreas e níveis de conhecimento.</p>
<p>Para minha surpresa percebi que nesse estudo Flash Developers estão na lista dos mais bem pagos do mercado, ficando atrás apenas de profissionais de atendimento, planejamento e diretores.</p>
<p>Essa grata surpresa me incitou a escrever uma matéria sobre quais são as principais características e os principais conhecimentos de um Flash Developer Sênior, basicamente nessa matéria vou descrever sob o meu ponto de vista os conhecimentos que um “Flash Developer” tem que ter para alcançar o topo da agência onde trabalha ou vai trabalhar.</p>
<h2>Fuja das brigas sobre qual tecnologia é a melhor</h2>
<p>O Flash há muito tempo desperta amor e ódio nas pessoas, varias vezes eu me vi incluso em “brigas” sobre qual é a melhor tecnologia e qual é o lugar do Flash na escala de desenvolvimento.</p>
<p>Minha opinião sobre o assunto sempre foi clara, caso alguém me mostre uma tecnologia que seja tão hibrida quanto o Flash no quesito integração com outras tecnologias, ferramentas de desenvolvimento, documentação oficial útil e descomplicada, cursos, metodologia, comunidade de desenvolvimento ativa, padronização de desenvolvimento e possibilidade de desenvolvimento para várias plataformas, nesse dia eu com certeza vou parar de trabalhar com Flash/Actionscript e aprender essa incrível tecnologia que terá batido o Flash, até esse dia, eu prefiro continuar no mundo da plataforma flash. Então fica a dica, não perca seu tempo nesse tipo de discussão, deixe que cada um escolha seu caminho, acredite, isso vai ser melhor para você!</p>
<h2>Aprenda a desenvolver usando OOP</h2>
<p>Se você é um verdadeiro “Flash Developer” com certeza já fez alguma coisa em OOP, esse padrão de programação pode salvar a sua vida quando o tempo for curto e o projeto desafiador. Para saber mais acesse esse <a href="http://www.lucasmarcal.com.br/blog/index.php/2009/12/tutoriais-de-oop-em-video-por-michel-araujo/" target="_blank">link</a></p>
<h2>Use um Framework para facilitar o desenvolvimento</h2>
<p>Frameworks ajudam você a manter um padrão de desenvolvimento e diminuem o tempo de tarefas simples, existem ótimos frameworks de desenvolvimento, entre eles eu destaco o <a title="Iniciando um projeto utilizando Gaia Framework" href="http://www.lucasmarcal.com.br/blog/index.php/2011/03/iniciando-um-projeto-utilizando-gaia-framework/" target="_blank">Gaia Framework</a> e o <a href="http://code.google.com/p/asf-as3/" target="_blank">ASF-AS3(Neto Leal)</a>. Use sem moderação!</p>
<h2>Aprenda integrar redes sociais</h2>
<p>Não é novidade alguma que as redes sociais revolucionaram a forma como as coisas acontecem na web, então é muito importante que você saiba integrar diversos serviços ao seus sites/aplicativos em Flash, serviços como Youtube, Facebook, Twitter e Flickr tem áreas específicas para desenvolvedores de várias tecnologias e em todas elas você pode encontrar APIs para auxiliar no desenvolvimento de seus sites/aplicativos.</p>
<h2>Aprenda uma linguagem de programação Server-Side</h2>
<p>Não que você tenha que ser um expert nessa linguagem, mas é muito bom você ter a visão do “outro lado”, não serão poucas as vezes que vão querer que aquele “hotsitezinho” que você fez tenha uma área administrativa e grave/leia dados de um banco de dados, ou que aquele outro programador “mala” vai dizer que isso ou aquilo não é possível com flash, nesse caso eu indico duas tecnologias exatamente nessa ordem, Coldfusion e PHP. Não se esqueça de aprender a trabalhar bem com Mysql, mas atenção, você não vai se tornar o melhor programador Serve-Side do mundo então tente não perder sua “veia” de design com essas tecnologias o interessante é você ainda continuar “mandando bem” em áreas fundamentais como Motion e Design.</p>
<h2>Todo Flash Developer TEM que saber trabalhar com Photoshop</h2>
<p>Isso pode levantar certa polêmica, mas a grande verdade é que se você pretende ser um Flash Developer e gerenciar um projeto é fundamental que você conheça profundamente o Photoshop, que tenha uma boa noção de design, tipografia e afins e conheça muito de motion design, por mais que digam o contrário 80% do trabalho de um Flash Developer é dar vida a interfaces malucas criadas por Diretores de Arte ainda mais malucos!</p>
<h2>Animação via código é muito melhor que Timeline</h2>
<p>Falar isso para os desavisados pode parecer uma heresia, mas a verdade é que, seja um banner, um hotsite ou um grande site é muito melhor você fazer todas as transições e motions via código, nesse caso eu indico que você use a <a href="http://www.greensock.com/" target="_blank">Greensock</a>. Trabalhando dessa forma você terá uma facilidade maior na hora de fazer aquele ajuste fino ou implementar aquela alteração de última hora.</p>
<h2>Tenha boas referências</h2>
<p>A comunidade de desenvolvimento Flash é muito unida, existem vários blogs como o meu que visam o crescimento profissional das pessoas sem nada em troca, é fundamental que você tenha boas referencias, que fique ligado nas constantes novidades que circulam no mundo da plataforma flash(sabe o que é <a href="http://www.adobe.com/cfusion/search/index.cfm?term=molehill&amp;siteSection=home&amp;loc=en_us" target="_blank">molehill</a>?), quer saber quem são as minhas referencias? Segue o <a title="Estudos diários" href="http://www.lucasmarcal.com.br/blog/index.php/estudos-diarios/" target="_blank">link</a>. Outra dica, tenha uma pagina de Labs sempre atualizada ou então crie um blog para compartilhar seus conhecimentos e experiências, isso coloca você em destaque na comunidade e pode abrir portas para bons trabalhos =)</p>
<h2>Editor de código</h2>
<p>A IDE do flash é muito boa, na versão CS5 o pessoal da Adobe melhorou bastante o editor de código, porém, ele está longe de ser a melhor opção do mercado, eu particularmente uso o <a href="http://www.flashdevelop.org/community/viewforum.php?f=11" target="_blank">FlashDevelop</a> para fazer isso, mas o Flash Builder 4 também é uma boa opção, escolha a sua!</p>
<h2>Pense fora da caixa</h2>
<p>Há muito tempo o flash player domina as estatísticas de software mais instalado do mundo, mas é importante saber que o Flash não serve apenas para desenvolver sites, hoje em dia existe uma infinidade de dispositivos que utilizam o flash player, hoje você pode criar conteúdo para Iphone, Ipad, Smartphones com Android e tablets como o Motorola Xoom. Eu acho muito importante estar sempre ligado nessas novas possibilidades e de preferência ter um (ou todos) para estudos, pense fora da caixa, quem sabe isso não vai te render uma grana extra!</p>
<h2>Em casa de ferreiro o espeto é de pau, mas não deveria ser!</h2>
<p>Tenha sempre um portfólio bem atualizado, eu não posso falar disso com muita autoridade, pois há três anos venho tentando ter tempo para atualizar meu site, kaekae, mas é fundamental que você tenha um portfólio online que mostre exatamente o que você é capaz de fazer, ele com certeza vai ser decisivo na hora da contratação para uma empresa ou freela.</p>
<h2>Curso, congressos, atualize-se!</h2>
<p>É importante que você faça pelo menos uma vez ao ano uma reciclagem de seus conhecimentos, eu particularmente guardo 5% do que ganho ao ano para fazer isso, esse ano vou estar no <a href="http://events.actioncreations.com/flashcampbrasil/portugues/" target="_blank">FlashCampBrasil</a>, uma dica que deixo são os cursos do <a href="http://www.lucianoaugusto.com.br/v2/" target="_blank">Luciano Augusto</a> o cara manda super bem em cursos a distância.</p>
<h2>Saiba cobrar por seus projetos e não vacile nos prazos.</h2>
<p>O maior erros do Flash Developer está na hora de passar o orçamento, acredite, nós estamos no topo da cadeia alimentar dos desenvolvedores, quando aparecer aquele freela não fique com medo de cobrar o valor real, você é um Flash Developer e sua hora é uma das mais caras do mercado.<br />
Outra coisa importante são os prazos, saiba quanto tempo você leva para fazer determinadas atividades comuns a um Flash Developer, não cumprir prazos está fora de questão e lembre-se sempre existe alguém que conhece outro alguém e uma vez queimado no mercado você estará fadado ao limbo!</p>
<p>Não existe limite para a criatividade dentro do flash, não desanime o caminho é longo mais as recompensas em R$ são grandes depois de um tempo!</p>
<p>Deixe um comentário sobre esse artigo e não se faça de difícil se precisar de ajuda!<br />
Um abraço</p>
<p><a href="http://pt-br.facebook.com/flashdeveloper" target="_blank">Meu perfil no Facebook</a><br />
<a href="http://www.twitter.com/lmcosta" target="_blank"> Meu Twitter</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.lucasmarcal.com.br/blog/index.php/2011/03/como-se-tornar-um-flash-developer-de-sucesso/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Iniciando um projeto utilizando Gaia Framework</title>
		<link>http://www.lucasmarcal.com.br/blog/index.php/2011/03/iniciando-um-projeto-utilizando-gaia-framework/</link>
		<comments>http://www.lucasmarcal.com.br/blog/index.php/2011/03/iniciando-um-projeto-utilizando-gaia-framework/#comments</comments>
		<pubDate>Wed, 09 Mar 2011 10:47:29 +0000</pubDate>
		<dc:creator>Lucas</dc:creator>
				<category><![CDATA[Destaque]]></category>
		<category><![CDATA[Tutoriais]]></category>
		<category><![CDATA[gaiaframework]]></category>

		<guid isPermaLink="false">http://www.lucasmarcal.com.br/blog/?p=144</guid>
		<description><![CDATA[Nesse tutorial eu ensino como iniciar o desenvolvimento de sites em flash usando o Gaia Framework]]></description>
			<content:encoded><![CDATA[<p>Salve pessoal<br />
Estou voltando à ativa nesse blog, espero que agora eu encontre tempo para criar os tutoriais.</p>
<p>Inicialmente gostaria de deixar claro que o foco desse blog não é o público que eu chamo de &#8220;Hard ActionScript Developer&#8221; o meu foco são aqueles desenvolvedores que estão iniciando ou que são intermediários no mundo do Actionscript 3.0, então nem sempre vamos focar no &#8220;melhor código&#8221; para os exemplos, mesmo porque eu nem teria tempo para fazer isso, na verdade a minha intenção e abordar superficialmente algumas coisas que vejo no meu dia-a-dia e apresentar coisas realmente usuais para todos.</p>
<p>Dito isso, fica claro que não tenho a intenção de criar uma metodologia definitiva para desenvolvimento, então pegue leve nas críticas =)</p>
<p>Hoje vamos falar sobre a utilização do <a href="http://www.gaiaflashframework.com/" target="_blank">Gaia Framework</a> para desenvolvimento de pequenos projetos (games, hotsites etc&#8230;)</p>
<h2>O que é o Gaia Framework?</h2>
<p>O <a href="http://www.gaiaflashframework.com/" target="_blank">Gaia Framework</a> é um projeto Open-Source para Actionscript 2.0 e 3.0 que visa facilitar sua vida na hora de desenvolver projetos em Flash, ele reduz drasticamente o tempo que você leva desenvolvendo, pois cria automaticamente alguns dos processos comuns a qualquer site em Flash.<br />
Com o <a href="http://www.gaiaflashframework.com/" target="_blank">Gaia Framework</a> é possível criar sites usuais em flash em pouco tempo com características que você levaria horas para fazer tais como:</p>
<p>1.	Navigation<br />
2.	Transitions<br />
3.	Preloading<br />
4.	Asset Management<br />
5.	Dynamic Font Loading<br />
6.	SEO<br />
7.	DeepLinks</p>
<p>Para maiores informações e detalhes sobre o que é o <a href="http://www.gaiaflashframework.com/" target="_blank">Gaia Framework</a> acesse o <a href="http://www.gaiaflashframework.com/">site</a></p>
<h2>Instalando o Gaia Framework</h2>
<p>Acesse o <a href="http://www.gaiaflashframework.com/">site</a> e faça download do arquivo MXP do <a href="http://www.gaiaflashframework.com/" target="_blank">Gaia Framework</a>, feito isso clique duas vezes no arquivo para instalar. Abra o Adobe Flash Cs5 e vá na aba Help &gt; Manage Extentions ,certifique-se que o <a href="http://www.gaiaflashframework.com/" target="_blank">Gaia Framework</a> esteja instalado corretamente como na imagem abaixo:</p>
<p><a href="http://www.lucasmarcal.com.br/blog/wp-content/uploads/2011/03/ManageExtention.jpg"><img class="alignnone size-medium wp-image-150" title="ManageExtention" src="http://www.lucasmarcal.com.br/blog/wp-content/uploads/2011/03/ManageExtention-300x224.jpg" alt="" width="300" height="224" /></a></p>
<p>Pronto, agora o seu Adobe Flash Cs5 já está pronto para trabalhar com o <a href="http://www.gaiaflashframework.com/" target="_blank">Gaia Framework</a>.</p>
<h2>Instalando Gaia Site Creator</h2>
<p>O <a href="http://wadearnold.com/blog/flash/gaia-framework-sitecreator-air-sitexml-editor" target="_blank">Gaia Site Creator</a> é um aplicativo AIR que facilita ainda mais o desenvolvimento com <a href="http://www.gaiaflashframework.com/" target="_blank">Gaia Framework</a> ele irá nos ajudar na hora de criar o arquivo &#8220;site.xml&#8221; que define as &#8220;paginas&#8221; que nosso site em Flash vai ter, sobre esse arquivo XML vamos falar nas próximas aulas, por hora apenas acesse o <a href="http://wadearnold.com/blog/flash/gaia-framework-sitecreator-air-sitexml-editor" target="_blank">site</a> e instale o Gaia Site Creator.</p>
<h2>Criando 1º projeto com Gaia Framework</h2>
<p>Com o Adobe Flash Cs5 aberto vá na aba Window &gt; Other Panels &gt; Gaia Framework<br />
Uma janela como essa vai se abrir para você:</p>
<p><a href="http://www.lucasmarcal.com.br/blog/wp-content/uploads/2011/03/gaiapainel1.jpg"><img class="alignnone size-medium wp-image-153" title="gaiapainel1" src="http://www.lucasmarcal.com.br/blog/wp-content/uploads/2011/03/gaiapainel1-264x300.jpg" alt="" width="264" height="300" /></a></p>
<p>1.	Criar um novo projeto em Actionscript 3.0<br />
2.	Criar um novo projeto em Actionscript 2.0 (sai fora, credo!)<br />
3.	Importar um projeto existente<br />
4.	Fazer uma doção para o Steven Sacks =)<br />
5.	Lista de projetos criados (ainda em branco)</p>
<p>Esse é o painel que você vai trabalhar durante todo o tempo de desenvolvimento com o <a href="http://www.gaiaflashframework.com/" target="_blank">Gaia Framework</a> aconselho você a deixar ele em um lugar de fácil acesso durante o desenvolvimento.<br />
Agora é a hora de começarmos realmente a desenvolver utilizando o <a href="http://www.gaiaflashframework.com/" target="_blank">Gaia Framework</a>, com o painel do <a href="http://www.gaiaflashframework.com/" target="_blank">Gaia Framework</a> aberto clique no botão &#8220;Create AS3&#8243; e configure como a imagem abaixo:</p>
<p><a href="http://www.lucasmarcal.com.br/blog/wp-content/uploads/2011/03/gaiapainel2.jpg"><img class="alignnone size-medium wp-image-156" title="gaiapainel2" src="http://www.lucasmarcal.com.br/blog/wp-content/uploads/2011/03/gaiapainel2-111x300.jpg" alt="" width="111" height="300" /></a></p>
<p>1.	Nome do projeto que vamos desenvolver<br />
2.	Pasta raiz do projeto<br />
3.	Versão do Flash Player que esse projeto vai ser compilado<br />
4.	Versão do <a href="http://www.gaiaflashframework.com/" target="_blank">Gaia Framework</a> e do Greensock (motor de animação) utilizado<br />
5.	Tamanho do Stage, Framerate e cor<br />
6.	Estrutura de pastas criada pelo <a href="http://www.gaiaflashframework.com/" target="_blank">Gaia Framework</a> aconselho a deixar dessa forma<br />
7.	Tipo de projeto utilizado, nesse exemplo vamos usar o FlashDevelop para desenvolver</p>
<p>Com todos esses requisitos preenchidos clique no botão &#8220;Create New Project&#8221; para criar o projeto do <a href="http://www.gaiaflashframework.com/" target="_blank">Gaia Framework</a>.<br />
Pronto, o <a href="http://www.gaiaflashframework.com/" target="_blank">Gaia Framework</a> acabou de criar a estrutura básica para trabalharmos o  projeto veja como ficou nossa estrutura:</p>
<p><a href="http://www.lucasmarcal.com.br/blog/wp-content/uploads/2011/03/estruturaPastas1.jpg"><img class="alignnone size-medium wp-image-159" title="estruturaPastas1" src="http://www.lucasmarcal.com.br/blog/wp-content/uploads/2011/03/estruturaPastas1-300x294.jpg" alt="" width="300" height="294" /></a></p>
<p>1.	Arquivo de configuração do <a href="http://www.gaiaflashframework.com/" target="_blank">Gaia Framework</a><br />
2.	Arquivo de projeto do FlashDevelop<br />
3.	Pastas com arquivos publicáveis (swf, imagens, XML&#8230;)<br />
4.	Pasta com os arquivos FLAs<br />
5.	Pasta com os arquivos .as<br />
6.	Pasta com os templates (não vamos usar mais não delete)</p>
<p>Agora é hora de configurar o arquivo &#8220;site.xml&#8221; que determina quais &#8220;paginas&#8221; serão criadas em nosso projeto, lembra do nosso amigo <a href="http://wadearnold.com/blog/flash/gaia-framework-sitecreator-air-sitexml-editor" target="_blank">Gaia Site Creator</a>? Então é hora de iniciar ele, com o <a href="http://wadearnold.com/blog/flash/gaia-framework-sitecreator-air-sitexml-editor" target="_blank">Gaia Site Creator</a> aberto importe o arquivo &#8220;site.xml&#8221; que se encontra dentro da pasta &#8220;bin&gt;xml&#8221; o arquivo deve aparecer como na imagem abaixo:</p>
<p><a href="http://www.lucasmarcal.com.br/blog/wp-content/uploads/2011/03/gaiasitecreator1.jpg"><img class="alignnone size-medium wp-image-162" title="gaiasitecreator1" src="http://www.lucasmarcal.com.br/blog/wp-content/uploads/2011/03/gaiasitecreator1-300x236.jpg" alt="" width="300" height="236" /></a></p>
<p>Essa é a estrutura básica que o <a href="http://www.gaiaflashframework.com/" target="_blank">Gaia Framework</a> cria para o projeto, porém, não é a estrutura que vamos usar para esse projeto inicial siga os próximos passos para configurar corretamente o arquivo &#8220;site.xml&#8221;<br />
Clique no item &#8220;home&#8221; e no item &#8220;id:nav&#8221; e arraste eles para o campo vermelho chamado &#8220;drop here to delete&#8221; como mostra a figura abaixo:</p>
<p><a href="http://www.lucasmarcal.com.br/blog/wp-content/uploads/2011/03/gaiasitecreator2.jpg"><img class="alignnone size-medium wp-image-165" title="gaiasitecreator2" src="http://www.lucasmarcal.com.br/blog/wp-content/uploads/2011/03/gaiasitecreator2-300x235.jpg" alt="" width="300" height="235" /></a></p>
<h2>Configurando um projeto de portfólio dentro do Gaia Site Creator</h2>
<p>O item &#8220;id:index&#8221; funciona como uma &#8220;Main page&#8221; ele é o root do nosso aplicativo(existe ainda uma classe chamada &#8220;Main.as&#8221; mas vamos falar sobre ela depois. Nesse projeto todas as paginas serão filho da pagina &#8220;índex.fla&#8221;</p>
<p>Para criar um novo &#8220;filho&#8221; no arquivo &#8220;site.xml&#8221; você deve clicar na aba &#8220;assets&#8221; do <a href="http://wadearnold.com/blog/flash/gaia-framework-sitecreator-air-sitexml-editor" target="_blank">Gaia Site Creator</a> e arrastar o item &#8220;New Page&#8221; para dentro do item &#8220;id:index&#8221; e depois configurar algumas propriedades como mostra na figura abaixo:</p>
<p><a href="http://www.lucasmarcal.com.br/blog/wp-content/uploads/2011/03/gaiasitecreator3.jpg"><img class="alignnone size-medium wp-image-166" title="gaiasitecreator3" src="http://www.lucasmarcal.com.br/blog/wp-content/uploads/2011/03/gaiasitecreator3-300x272.jpg" alt="" width="300" height="272" /></a></p>
<p>1.	Nome utilizado posteriormente para acessar essa pagina<br />
2.	Nome do arquivo swf que será criado quando o <a href="http://www.gaiaflashframework.com/" target="_blank">Gaia Framework</a> for compilado<br />
3.	Titulo da &#8220;pagina&#8221; quando esse arquivo for acessado</p>
<p>A descrição para as outras configurações desse arquivo não serão abordadas nesse momento e podem ser encontradas nesse <a href="http://www.gaiaflashframework.com/wiki/index.php?title=Portugu%C3%AAs:XML_do_site">link</a></p>
<p>Antes que eu esqueça de dizer esse projeto vai ser um portfólio de um Flash Developer como eu e você então a estrutura de paginas vai ser como mostra a imagem abaixo:</p>
<p><a href="http://www.lucasmarcal.com.br/blog/wp-content/uploads/2011/03/gaiasitecreator41.jpg"><img class="alignnone size-medium wp-image-170" title="gaiasitecreator4" src="http://www.lucasmarcal.com.br/blog/wp-content/uploads/2011/03/gaiasitecreator41-300x195.jpg" alt="" width="300" height="195" /></a></p>
<p>1.	Pagina de apresentação<br />
2.	Perfil do desenvolvedor<br />
3.	Portfólio<br />
4.	Fotos<br />
5.	Vídeos<br />
6.	Contato</p>
<p>A minha intenção com esse tutorial é que posteriormente eu mostre como trabalhar com algumas classes que utilizo então podemos explorar integrações com Twitter, Flickr, Youtube etc&#8230; Esse projeto vai servir como base para outros tutoriais.</p>
<p>Criada essa estrutura  dentro do <a href="http://wadearnold.com/blog/flash/gaia-framework-sitecreator-air-sitexml-editor" target="_blank">Gaia Site Creator</a> clique na aba &#8220;file &gt; Export &gt; ExportSiteXML&#8221; e sobrescreva o arquivo &#8220;site.xml&#8221; com essa nova configuração, abra esse arquivo dentro do software Flash Develop (imagino que você já esteja utilizando ele para desenvolver seus projetos) a estrutura do arquivo &#8220;site.xml&#8221; ficou da seguinte forma:</p>
<p><a href="http://www.lucasmarcal.com.br/blog/wp-content/uploads/2011/03/fld_1.jpg"><img class="alignnone size-medium wp-image-171" title="fld_1" src="http://www.lucasmarcal.com.br/blog/wp-content/uploads/2011/03/fld_1-300x139.jpg" alt="" width="300" height="139" /></a></p>
<p>Se você seguiu todos os passos que descrevi acima, abra novamente o Adobe Flash Cs5, com o painel do <a href="http://www.gaiaflashframework.com/" target="_blank">Gaia Framework</a> aberto vá até a aba &#8220;scaffold&#8221; e clique em &#8220;scaffold project&#8221;.</p>
<p>Ele vai criar todos aqueles arquivos que configuramos no &#8220;site.xml&#8221; dentro da pasta de projeto, aguarde os arquivos serem criados/compilados, ao final desse processo ele vai abrir uma aplicação como na figura abaixo:</p>
<p><a href="http://www.lucasmarcal.com.br/blog/wp-content/uploads/2011/03/projeto1.jpg"><img class="alignnone size-medium wp-image-174" title="projeto1" src="http://www.lucasmarcal.com.br/blog/wp-content/uploads/2011/03/projeto1-300x197.jpg" alt="" width="300" height="197" /></a></p>
<p>Agora no painel do <a href="http://www.gaiaflashframework.com/" target="_blank">Gaia Framework</a> a aba que ficou marcada é &#8220;Publish&#8221; clique no botão &#8220;save&#8221; que fica no canto direito superior para salvar esse projeto. Agora na lista de projetos criados você tem todos os projetos que está trabalhando no <a href="http://www.gaiaflashframework.com/" target="_blank">Gaia Framework</a> como mostra uma visão dos meus projetos na figura abaixo:</p>
<p><a href="http://www.lucasmarcal.com.br/blog/wp-content/uploads/2011/03/gaiapainel3.jpg"><img class="alignnone size-medium wp-image-177" title="gaiapainel3" src="http://www.lucasmarcal.com.br/blog/wp-content/uploads/2011/03/gaiapainel3-234x300.jpg" alt="" width="234" height="300" /></a></p>
<p>Clique duas vezes sobre o projeto que estamos trabalhando, vá até a aba &#8220;publish&#8221; clique na pasta &#8220;lib&#8221; e veja que todos os arquivos configurados no &#8220;site.xml&#8221; foram criados dentro do projeto como mostra a figura abaixo:</p>
<p><a href="http://www.lucasmarcal.com.br/blog/wp-content/uploads/2011/03/gaiapainel4.jpg"><img class="alignnone size-medium wp-image-179" title="gaiapainel4" src="http://www.lucasmarcal.com.br/blog/wp-content/uploads/2011/03/gaiapainel4-169x300.jpg" alt="" width="169" height="300" /></a></p>
<p>1.	Esse botão deve ser usado sempre que você fizer alterações nos arquivos, não adianta apenas dar um CTRL+Enter no arquivo é preciso clicar nesse botão para compilar os arquivos marcados na lista, caso algum arquivo não esteja marcado ele <strong>NÃO</strong> vai compilar o arquivo<br />
2.	Botão abre a pasta raiz do projeto<br />
3.	Lista de arquivos do projeto<br />
4.	Esse botão sincroniza as modificações feitas no arquivo &#8220;site.xml&#8221; e vamos tratar disso nos próximos tutoriais</p>
<p>Clique no botão &#8220;Test Project&#8221; para ver o resultado desse tutorial, lembrando que essa tela preta que aparece é fruto de uma configuração inicial feita pelo <a href="http://www.gaiaflashframework.com/" target="_blank">Gaia Framework</a>, se você abrir por exemplo a pagina &#8220;home.fla&#8221; não vai ver nenhum &#8220;asset&#8221; dentro dela ou da library, não se assuste vamos tratar desses e de outros assuntos no próximo tutorial.</p>
<p>Nesse tutorial não vamos abordar o desenvolvimento do menu do site, então para navegar no projeto feito até aqui utilize o botão direto do mouse e clique no ContextMenu para navegar entre as paginas.</p>
<h2>Conclusão</h2>
<p>Nesse tutorial eu abordei os aspectos básicos para desenvolver usando o <a href="http://www.gaiaflashframework.com/" target="_blank">Gaia Framework</a>, veja que não fizemos nenhuma linha de código, mas não se engane existem muitas coisas para aprender ainda.</p>
<p>No próximo tutorial vou falar sobre a estrutura de pastas criadas pelo <a href="http://www.gaiaflashframework.com/" target="_blank">Gaia Framework</a> e como iniciar nosso projeto com as modificações em Actionscript 3.0 ou seja, prepare-se para programar no próximo tutorial.</p>
<h3><span style="font-weight: normal;">Arquivos utilizados no tutorial</span></h3>
<p><a href="http://www.lucasmarcal.com.br/tutorial/primeirotutorial/Tutorial_Gaia_Framework_1.rar" target="_blank">Baixar</a></p>
<h3><span style="font-weight: normal;">Resultado desse tutorial</span></h3>
<p><a href="http://www.lucasmarcal.com.br/tutorial/primeirotutorial/gaiaframework/" target="_blank">Link</a></p>
<p><a href="http://pt-br.facebook.com/flashdeveloper" target="_blank">Meu perfil no Facebook</a><br />
<a href="http://www.twitter.com/lmcosta" target="_blank"> Meu Twitter</a></p>
<p>Uma abraço a todos, divulguem esse tutorial!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.lucasmarcal.com.br/blog/index.php/2011/03/iniciando-um-projeto-utilizando-gaia-framework/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Habilitado 3G e MMS da OI no Motorola Milestone</title>
		<link>http://www.lucasmarcal.com.br/blog/index.php/2010/11/habilitado-3g-e-mms-da-oi-no-motorola-milestone/</link>
		<comments>http://www.lucasmarcal.com.br/blog/index.php/2010/11/habilitado-3g-e-mms-da-oi-no-motorola-milestone/#comments</comments>
		<pubDate>Thu, 11 Nov 2010 05:47:52 +0000</pubDate>
		<dc:creator>Lucas Marçal</dc:creator>
				<category><![CDATA[Destaque]]></category>
		<category><![CDATA[Milestone]]></category>
		<category><![CDATA[3G OI]]></category>
		<category><![CDATA[Motorola Milestone]]></category>

		<guid isPermaLink="false">http://www.lucasmarcal.com.br/blog/?p=122</guid>
		<description><![CDATA[Olá pessoal Faz um bom tempo que não escrevo e isso porque eu tenho trabalhado bastante graças a DEUS. Hoje vou falar sobre um assunto que pode ajudar quem tem Motorola Milestone, vou ensinar como habilitar a conexão 3G da OI, apanhei um pouco mais acabei conseguindo achar um conteúdo legal na net para fazer [...]]]></description>
			<content:encoded><![CDATA[<p>Olá pessoal</p>
<p>Faz um bom tempo que não escrevo e isso porque eu tenho trabalhado bastante graças a DEUS.</p>
<p>Hoje vou falar sobre um assunto que pode ajudar quem tem Motorola Milestone, vou ensinar como habilitar a conexão 3G da OI, apanhei um pouco mais acabei conseguindo achar um conteúdo legal na net para fazer isso, então vamos ao trabalho.</p>
<p>Com seu Milestone em mãos, vá em Menu&gt;Configurações&gt;Redes Sem fio e Outras&gt;Redes Móveis&gt;Pontos de Acesso&gt;Menu&gt;Novo APN e coloque a configuração abaixo</p>
<table border="1" cellspacing="1" cellpadding="0" width="100%" bordercolor="#FFFFFF">
<tbody>
<tr>
<td colspan="2" height="33" bgcolor="#FFFFFF"><strong>Oi</strong></td>
</tr>
<tr>
<td width="50%">Nome = Oi Dados<br />
APN = gprs.oi.com.br<br />
Proxy = Não definido<br />
Porta = Não definido<br />
Usuário = oi<br />
Senha = oi<br />
Servidor = Não definido<br />
MMSC = Não definido<br />
Proxy de MMS = Não definido<br />
Porta MMS = Não definido<br />
MCC = 724<br />
MNC = 31<br />
Tipo autenticação = Não definido<br />
Tipo APN = default</td>
<td width="50%">Nome = Oi MMS<br />
APN = mmsgprs.oi.com.br<br />
Proxy = Não definido<br />
Porta = Não definido<br />
Usuário = oimms<br />
Senha = oimms<br />
Servidor = Não definido<br />
MMSC = http://200.222.42.204:8002<br />
Proxy de MMS = 192.168.10.50<br />
Porta MMS = 3128<br />
MCC = 724<br />
MNC = 31<br />
Tipo autenticação = Não definido<br />
Tipo APN = mms</td>
</tr>
</tbody>
</table>
<p>Pronto, agora é só brincar com seu Milestone que na minha opinião é um dos melhores Smartfones do mundo.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.lucasmarcal.com.br/blog/index.php/2010/11/habilitado-3g-e-mms-da-oi-no-motorola-milestone/feed/</wfw:commentRss>
		<slash:comments>15</slash:comments>
		</item>
		<item>
		<title>Consumindo dados do Twitter com Actionscript 3.0</title>
		<link>http://www.lucasmarcal.com.br/blog/index.php/2010/01/consumindo-dados-do-twitter-com-actionscript-3-0/</link>
		<comments>http://www.lucasmarcal.com.br/blog/index.php/2010/01/consumindo-dados-do-twitter-com-actionscript-3-0/#comments</comments>
		<pubDate>Sat, 09 Jan 2010 00:41:55 +0000</pubDate>
		<dc:creator>Lucas Marçal</dc:creator>
				<category><![CDATA[Redes Sociais]]></category>
		<category><![CDATA[Tutoriais]]></category>
		<category><![CDATA[Eventos Customizados]]></category>
		<category><![CDATA[Twitter]]></category>
		<category><![CDATA[XML]]></category>
		<category><![CDATA[XMLList]]></category>

		<guid isPermaLink="false">http://www.lucasmarcal.com.br/blog/?p=90</guid>
		<description><![CDATA[Nesse tutorial vou mostrar como acessar dados do Twitter via XML pela URL de busca do Twitter, é um tutorial básico que visa trabalhar com uma simples integração.]]></description>
			<content:encoded><![CDATA[<blockquote><p>
[ATUALIZAÇÂO]<br />
Esse post foi atualizado, agora você pode passar todos os parâmetros que a URL http://search.twitter.com oferece.
</p></blockquote>
<p>Nesse tutorial vou mostrar como acessar dados do Twitter via XML pela URL de busca do Twitter, é um tutorial básico que visa trabalhar com uma simples integração.</p>
<p>Basicamente o que fazemos é acessar um XML gerado pela busca do Twitter e fazer o “parser” desses dados, esse tutorial não vai abordar o tema de inclusão desses resultados no Stage do Flash, apenas a obtenção desses resultados através de manipulação de XML.</p>
<p>Exemplo  depois de uma pequena customização na classe Consome.as para incluir os &#8220;tweets&#8221; no layout.<br />
<a href="http://www.lucasmarcal.com.br/labs/GetTweets.swf" target="_blank">Exemplo</a></p>
<p>Basicamente vamos trabalhar com 3 classes, são elas:</p>
<p><em><strong>GetTweet.as</strong></em></p>
<ul>
<li>Essa é a classe que vai fazer a conexão com o XML e vai tratar os dados</li>
</ul>
<pre class="brush: as3; first-line: 8; gutter: false; pad-line-numbers: false; title: ; wrap-lines: false;">
package lmcosta.redesocial.twitter
{
	import flash.display.MovieClip;

	import flash.events.Event
	import flash.events.IOErrorEvent;
	import flash.events.SecurityErrorEvent;

	import flash.net.URLLoader;
	import flash.net.URLRequest;

	import lmcosta.redesocial.twitter.event.TwitterEvents

	/**
	 * ...
	 * @author LucasMarçal
	 */
	public class GetTweet extends MovieClip
	{
		public var qtdTweets:Number
		public var arrTweets:Array;
		public var url:String;
		private var _total:Number

		public function GetTweet() {}

		/**
		 *
		 * @param	_usuario:String  				Nome de usuário que você quer buscar
		 * @param	_qtd:Number       				Quantidade de Tweets que você quer que retorne
		 * @param	_palavra:String					Uma palavra específica
		 * @param	_frase:String					Uma frase específica
		 * @param	_qualquerPalavra:String			Qualquer uma dessas palavras
		 * @param	_nenhumaPalavra:String			Nenhuma dessas palavras
		 * @param	_tag:String						Uma Hastag específica
		 * @param	_idioma:String					Idioma, verificar a lista de idioma e seus valores
		 * @param	_twitterAmigo:String			Enviado para essa pessoa
		 * @param	_refAmigo:String				Referênciando essa pessoa
		 * @param	_cidade:String					Cidade específica
		 * @param	_dataInicial:String				Data inicial formato (0000-00-00) sendo Ano-Mês-Dia
		 * @param	_dataFinal:Stirng				Data Final formato (0000-00-00) sendo Ano-Mês-Dia
		 */
		public function configuraPesquisa(parametros:Object):void
		{
			this.url = &quot;http://search.twitter.com/search.atom?q=+from:&quot; + parametros.usuario + &quot;&amp;rpp=&quot; +parametros.qtd + &quot;&amp;ands=&quot; + parametros.palavra + &quot;&amp;phrase=&quot; + parametros.frase + &quot;&amp;ors=&quot; + parametros.qualquerPalavra + &quot;&amp;nots=&quot; + parametros.nenhumaPalavra + &quot;&amp;tag=&quot; + parametros.tag + &quot;&amp;lang=&quot; + parametros.idioma + &quot;&amp;to=&quot; + parametros.twitterAmigo + &quot;&amp;ref=&quot; + parametros.refAmigo + &quot;&amp;near=&quot; + parametros.cidade + &quot;&amp;since=&quot; + parametros.dataInicial + &quot;&amp;until=&quot; + parametros.dataFinal ;

			var urlReq:URLRequest =  new URLRequest(this.url);
			var loader:URLLoader =  new URLLoader();

			loader.addEventListener(Event.COMPLETE , carregouXML);
			loader.addEventListener(IOErrorEvent.IO_ERROR, erroLoadXML);
			loader.addEventListener(SecurityErrorEvent.SECURITY_ERROR, erroSeguranca);

			this.addEventListener(TwitterEvents.PARSER_COMPLETO, onComplete);

			loader.load(urlReq);
		}

		private function carregouXML(e:Event):void
		{
			if (e.target.data)
			{
				this.arrTweets =  new Array();

				var twitterXML:XML =  new XML(e.target.data);
				var twitterList:XMLList =  twitterXML.children();

				var tweet:String;
				var data:String;
				var nomeUsuario:String

				for (var i:int = 0; i &lt; twitterList.length(); i++)
				{
					if (tweet != &quot;&quot;)
					{
						this.arrTweets.push({usuario:twitterList[i]..*::name, tweet:twitterList[i].*::title,data:twitterList[i].*::published});
					}
				}
				this._total = this.arrTweets.length
				dispatchEvent(new TwitterEvents(TwitterEvents.PARSER_COMPLETO));
			}
		}

		private function erroLoadXML(e:Event):void
		{
			trace(&quot;IO Error!&quot;);
		}

		private function erroSeguranca(e:Event):void
		{
			trace(&quot;Security Error!&quot;);
		}
		private function onComplete(e:TwitterEvents):void
		{
			dispatchEvent(new TwitterEvents (TwitterEvents.DADOS_RECEBIDOS));
		}

		public function get dados():Array
		{
			return this.arrTweets;
		}

		public function get total():Number
		{
			return _total;
		}
	}

}
</pre>
<p><em><strong>TwitterEvents.as</strong></em></p>
<ul>
<li>Uma classe de eventos personalizada que informa quando os dados já estão completos (URLRequest) e quando o “parser” já foi finalizado.</li>
</ul>
<pre class="brush: as3; first-line: 8; gutter: false; pad-line-numbers: false; title: ; wrap-lines: false;">
package lmcosta.redesocial.twitter.event
{
	import flash.events.Event;

	/**
	 * ...
	 * @author LucasMarçal
	 */
	public class TwitterEvents extends Event
	{
		public static const PARSER_COMPLETO:String = &quot;PARSERCOMPLETO&quot;;
		public static const DADOS_RECEBIDOS:String = &quot;RECEBEU&quot;;

		public function TwitterEvents(tipo:String,bubbles:Boolean=false,cancel:Boolean=false)
		{
			super(tipo, bubbles, cancel);
		}

	}

}
</pre>
<p><em><strong>Primeiro Frame do ser arquivo</strong></em></p>
<ul>
<li>Responsável por criar uma instancia da classe GetTweet, você pode criar uma classe e colocar esse código, optei por fazer assim por ser mais fácil para quem está iniciando</li>
</ul>
<pre class="brush: as3; first-line: 8; gutter: false; pad-line-numbers: false; title: ; wrap-lines: false;">
//SUPER IMPORTANTE
//Lembre-se que você tem que ter configurado
//para que o seu classPath seja &quot;src&quot;
//para isso vá em CTRL + F12 &gt; Aba Flash&gt; Settings &gt; Botão de + e adicione &quot;./src/&quot;

//Importando as classes necessárias
import lmcosta.redesocial.twitter.GetTweet
import lmcosta.redesocial.twitter.event.TwitterEvents

//Criando uma instância da classe GetTweet
var rede:GetTweet =  new GetTweet();

/**
 * PARAMETROS INICIAIS
 * @param	_usuario:String  				Nome de usuário que você quer buscar
 * @param	_qtd:Number       				Quantidade de Tweets que você quer que retorne
 * @param	_palavra:String					Uma palavra específica
 * @param	_frase:String					Uma frase específica
 * @param	_qualquerPalavra:String			Qualquer uma dessas palavras
 * @param	_nenhumaPalavra:String			Nenhuma dessas palavras
 * @param	_tag:String						Uma Hastag específica
 * @param	_idioma:String					Idioma, verificar a lista de idioma e seus valores
 * @param	_twitterAmigo:String			Enviado para essa pessoa
 * @param	_refAmigo:String				Referênciando essa pessoa
 * @param	_cidade:String					Cidade específica
 * @param	_dataInicial:String				Data inicial formato (0000-00-00) sendo Ano-Mês-Dia
 * @param	_dataFinal:Stirng				Data Final formato (0000-00-00) sendo Ano-Mês-Dia
*/

var parametros:Object = {usuario:&quot;lmcosta&quot;,
						 qtd:1,
						 palavra:&quot;&quot;,
						 frase:&quot;&quot;,
						 qualquerPalavra:&quot;&quot;,
						 nenhumaPalavra:&quot;&quot;,
						 tag:&quot;&quot;,
						 idioma:&quot;&quot;,
						 twitterAmigo:&quot;&quot;,
						 refAmigo:&quot;&quot;,
						 cidade:&quot;&quot;,
						 dataInicial:&quot;&quot;,
						 dataFinal:&quot;&quot;
						 }

//Passando parametros iniciais, veja lista abaixo
rede.configuraPesquisa(parametros);

//Registrando um Listeners baseado na classe customizada de Eventos
//Toda vez que a busca retornar um resultado e os dados forem recebidos
//Esse Listener vai executar o código que estiver na função de callback
//Nesse caso a função onRecebe;
this.rede.addEventListener(TwitterEvents.DADOS_RECEBIDOS,onRecebe);

function onRecebe (e:TwitterEvents):void
{
	//Use essa forma para retornar o total re resultado
	trace(&quot;Total de Resultados: &quot; + this.rede.total);
	for(var i:Number = 0; i &lt; this.rede.dados.length; i++)
	{
		//Retornando Usuario
		trace(&quot;Usuario: &quot; + this.rede.dados[i].usuario)
		//Retornando Datas
		trace(&quot;data: &quot; + this.rede.dados[i].data)
		//Retornando Tweet
		trace(&quot;Tweets: &quot; + this.rede.dados[i].tweet)
	}
}
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.lucasmarcal.com.br/blog/index.php/2010/01/consumindo-dados-do-twitter-com-actionscript-3-0/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
		<item>
		<title>Tutoriais de OOP em vídeo por Michel Araújo</title>
		<link>http://www.lucasmarcal.com.br/blog/index.php/2009/12/tutoriais-de-oop-em-video-por-michel-araujo/</link>
		<comments>http://www.lucasmarcal.com.br/blog/index.php/2009/12/tutoriais-de-oop-em-video-por-michel-araujo/#comments</comments>
		<pubDate>Tue, 29 Dec 2009 22:24:18 +0000</pubDate>
		<dc:creator>Lucas Marçal</dc:creator>
				<category><![CDATA[Destaque]]></category>
		<category><![CDATA[OOP]]></category>
		<category><![CDATA[Tutoriais]]></category>

		<guid isPermaLink="false">http://www.lucasmarcal.com.br/blog/?p=85</guid>
		<description><![CDATA[Conheça os segredos da programação orientada a objetos na visão de Michel Araújo, um material de ótima qualidade para seus estudos em 2010]]></description>
			<content:encoded><![CDATA[<p>Salve pessoal<br />
Decidi escrever alguns artigos para esse final de ano, tem muita coisa que está para ser publicado aqui no blog, porém ainda estou editando os vídeos e arquivos.<br />
Visando não deixar esse blog desatualizado por muito tempo eu decidi indicar alguns links para que você já vá se acostumando com a forma como faremos as coisas aqui no blog em 2010, estou falando de programação orientada a objeto o famoso OOP.</p>
<p>Eu até pensei em criar artigos sobre esse assunto mas em uma busca na web acabei encontrando uma material de valor incalculável feito pelo Michel Araujo (@michel_ssa) então vou apenas indicar que todos vocês assistam á esses vídeos do Michel falando sobre OOP, abaixo seguem os links:</p>
<p><a href="http://vimeo.com/6911207" target="_blank">Programação Orientada à Objeto com AS3: Introdução e Conceitos</a><br />
<a href="http://vimeo.com/6984819" target="_blank"> Programação Orientada à Objeto com AS3: Pacotes</a><br />
<a href="http://vimeo.com/7267301" target="_blank"> Programação Orientada à Objeto com AS3: Classes</a><br />
<a href="http://vimeo.com/7295115" target="_blank"> Programação Orientada à Objeto com AS3: Encapsulamento</a><br />
<a href="http://vimeo.com/7584541" target="_blank"> Programação Orientada a Objeto com AS3: Herança e Polimorfismo</a></p>
<p>Novamente gostaria de dar os parabéns ao Michel realmente esse material é de ótima qualidade e sem dúvida pode ajudar muito desenvolvedores de Actionscript 3.0.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.lucasmarcal.com.br/blog/index.php/2009/12/tutoriais-de-oop-em-video-por-michel-araujo/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Slide Itens em Actionscript 3.0</title>
		<link>http://www.lucasmarcal.com.br/blog/index.php/2009/11/slide-itens-em-actionscript-3-0/</link>
		<comments>http://www.lucasmarcal.com.br/blog/index.php/2009/11/slide-itens-em-actionscript-3-0/#comments</comments>
		<pubDate>Sun, 22 Nov 2009 00:34:54 +0000</pubDate>
		<dc:creator>Lucas</dc:creator>
				<category><![CDATA[Destaque]]></category>
		<category><![CDATA[Interface]]></category>
		<category><![CDATA[Tutoriais]]></category>
		<category><![CDATA[FullSlide]]></category>

		<guid isPermaLink="false">http://www.lucasmarcal.com.br/blog/?p=50</guid>
		<description><![CDATA[Classe que cria um slide na vertical e na horizontal usando Actionscript 3.0]]></description>
			<content:encoded><![CDATA[<p>Salve pessoal, durante muito tempo em uma determinada agência que eu trabalhei eu utilizei essa classe (ainda em Actionscript 2.0) para apresentar produtos, imagens, noticias etc&#8230;<br />
Por esse motivo decidi fazer uma versão dela para Actionscript 3.0 espero que ela possa ser útil á você nos seus trabalhos assim como ela foi muito útil para mim!<br />
Lembre-se siga-me no Twitter <a href="http://www.twitter.com/lmcosta">@lmcosta</a></p>
<p>Classe FullSlide.as</p>
<pre class="brush: as3; first-line: 8; gutter: false; pad-line-numbers: false; title: ; wrap-lines: false;">
/**
 * @author  Lucas Marçal
 * @link    www.lucasmarcal.com.br/blog
 * @email   inbox@lucasmarcal.com.br
 * @version 1.0
 */
package lmcosta.slide
{
	import flash.display.MovieClip;
	import flash.events.Event;
	import flash.events.MouseEvent;
	import gs.*;
	import gs.easing.*;

	public class FullSlide extends MovieClip
	{
		/**
		 * DEFININDO PROPRIEDADES
		 */
		private var itensMc:Array;
		private var tipoSlide:String;
		private var posX:Number;
		private var posY:Number;
		private var distanciaItens:Number;
		private var distanciaItensFoco:Number;
		private var tempoEase:Number;
		private var distancia:Number;
		private var itemAtual:Number;
		private var itemX:Number;
		private var itemY:Number;

		public function FullSlide() {}

		/**
		 *
		 * @param	tipo:            Tipo de alinhamento X ou Y
		 * @param	arr :            Array que contém os MovieClips
		 * @param	distancia:       Distancia dos MovieClips na hora do alinhamento
		 * @param	foco:            Distancia que o item deve se mover
		 * @param	indiceAtual:     MovieClip Atual
		 * @param	posicaoX:        Posição em X
		 * @param	posicaoY:        Posição em Y
		 */
		public function setSlide(tipo:String,arr:Array,distancia:Number, foco:Number,indiceAtual:Number,posicaoX:Number,posicaoY:Number):void
		{
			this.tipoSlide = tipo;
			this.itensMc = arr;
			this.itemAtual = indiceAtual;
			this.distanciaItens = distancia;
			this.distanciaItensFoco = foco;
			this.posX = posicaoX;
			this.posY = posicaoY;
			this.tempoEase = 0.5;
			setPosItens();
		}

		private function setPosItens():void
		{

			for (var i:Number = 0; i &lt; this.itensMc.length; i++)
			{
				if (this.tipoSlide == &quot;Y&quot;)
				{
					this.distancia = this.itemAtual - i;
					this.itemY = this.posY + (this.distancia * - this.distanciaItens);
					this.itensMc[i].x = Math.round(this.posX);
					if (this.distancia != 0)
					{
						this.itemY += (Math.round(this.distanciaItensFoco) - Math.round(this.distanciaItens)) * (Math.round(this.distancia) &gt; 0 ? -1 : +1);
					}
					TweenMax.to(this.itensMc[i], this.tempoEase, {y:Math.round(this.itemY),ease:Expo.easeOut});
				}
				else
				{
					this.distancia = this.itemAtual - i;
					this.itemX = this.posX + (this.distancia * - this.distanciaItens);
					this.itensMc[i].y = Math.round(this.posY);
					if (this.distancia != 0)
					{
						this.itemX += (Math.round(this.distanciaItensFoco) - Math.round(this.distanciaItens)) * (Math.round(this.distancia) &gt; 0 ? -1 : +1);
					}
					TweenMax.to(this.itensMc[i], this.tempoEase, {x:Math.round(this.itemX),ease:Expo.easeOut});
				}
				if(i - this.itensMc.length != 1)
				{
					TweenMax.to(this.itensMc[i], this.tempoEase, { blurFilter: { blurX:10, blurY:10, quality:1 }, z:1 } );
				}
				if (this.tempoEase &gt; 0)
				{
					TweenMax.to(this.itensMc[this.itemAtual], this.tempoEase/2, {blurFilter:{blurX:0,blurY:0, quality:2},z:1});
				}
				var refItem:MovieClip = this.itensMc[i] as MovieClip;
				refItem.buttonMode = true;
				refItem.addEventListener(MouseEvent.MOUSE_DOWN , onDown);
				refItem.addEventListener(MouseEvent.MOUSE_OVER , onOver);
				refItem.addEventListener(MouseEvent.MOUSE_OUT , onOut);
				refItem.nome = i;
			}
		}

		public function moveItens(indice:Number):void
		{
			this.setItens(this.itemAtual + indice);
		}

		private function setItens(indice:Number):void
		{

			if (indice &lt; 0) indice = 0;
			if (indice &gt; this.itensMc.length - 1) indice = this.itensMc.length - 1;
			if (indice != this.itemAtual)
			{
				this.itemAtual = indice;
				this.setPosItens();
			}
		}

		private function onOut(e:Event):void
		{
			TweenMax.to(e.target, 0.2, { tint:null, ease:Linear.easeNone } );
		}

		private function onOver(e:Event):void
		{
			TweenMax.to(e.target, 0.2, { tint:0xcccccc, ease:Linear.easeNone } );
		}

		private function onDown(e:Event):void
		{
			//trace(&quot;item &quot; + e.target.nome);
			this.setItens(e.target.nome)
		}

	}

}
</pre>
<p>BotaoControle.as</p>
<pre class="brush: as3; first-line: 8; gutter: false; pad-line-numbers: false; title: ; wrap-lines: false;">
/**
 * @author  Lucas Marçal
 * @link    www.lucasmarcal.com.br/blog
 * @email   inbox@lucasmarcal.com.br
 * @version 1.0
 */
package lmcosta.slide
{
	import flash.display.MovieClip;
	import flash.events.Event;
	import flash.events.MouseEvent;
	import lmcosta.slide.FullSlide

	public class BotaoControle extends FullSlide
	{
		internal var ref:FullSlide
		internal var indice:Number;

		public function BotaoControle(_objeto:MovieClip,_fullSlide:FullSlide,_qtdItemMove:Number)
		{
			this.ref = _fullSlide;
			this.indice = _qtdItemMove;

			_objeto.buttonMode = true;
			_objeto.addEventListener(MouseEvent.MOUSE_DOWN, onDow);
		}

		private function onDow(e:MouseEvent):void
		{
			this.ref.moveItens(this.indice);
		}
	}

}
</pre>
<p>Coloque esse código no frame de action da sua aplicação e crie os MovieClips.</p>
<pre class="brush: as3; first-line: 8; gutter: false; pad-line-numbers: false; title: ; wrap-lines: false;">
import lmcosta.slide.FullSlide
import lmcosta.slide.BotaoControle;

var mySlide:FullSlide = new FullSlide()
var _arr:Array =  new Array(mc1,mc2,mc3,mc4,mc5)

this.mySlide.setSlide(&quot;X&quot;,_arr,mc1.width, mc1.width,0,184,72);
var refVai:BotaoControle = new BotaoControle(btVai.btAtiva,this.mySlide,1)
var refVem:BotaoControle = new BotaoControle(btVem.btAtiva,this.mySlide,-1)

addChild(this.mySlide);
</pre>
<p><a href="http://www.lucasmarcal.com.br/labs/FullSlide.html">Exemplo</a><br />
<a href="http://www.lucasmarcal.com.br/labs/FullSlide.rar">Arquivos do Tutorial</a></p>
<p>Abraço a todos, semana que vem tem mais!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.lucasmarcal.com.br/blog/index.php/2009/11/slide-itens-em-actionscript-3-0/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Flash Remoting + ColdFusion + AMFPHP</title>
		<link>http://www.lucasmarcal.com.br/blog/index.php/2009/10/flash-remoting-coldfusion-amfphp/</link>
		<comments>http://www.lucasmarcal.com.br/blog/index.php/2009/10/flash-remoting-coldfusion-amfphp/#comments</comments>
		<pubDate>Fri, 30 Oct 2009 02:16:51 +0000</pubDate>
		<dc:creator>Lucas</dc:creator>
				<category><![CDATA[Destaque]]></category>
		<category><![CDATA[Flash Remoting]]></category>
		<category><![CDATA[Tutoriais]]></category>
		<category><![CDATA[Actionscript 3.0]]></category>
		<category><![CDATA[AMFPHP]]></category>
		<category><![CDATA[ColdFusion 8]]></category>

		<guid isPermaLink="false">http://lucasmarcal.com.br/blog/?p=9</guid>
		<description><![CDATA[Resolvendo problemas na hora de conectar o flash ao Coldfusion através do Flash Remoting e do AMFPHP]]></description>
			<content:encoded><![CDATA[<p>Salve pessoal<br />
Historicamente eu sempre trabalhei com ColdFusion isso já tem alguns anos, porém nos últimos 2 anos e venho trabalhando bastante com PHP por motivos óbvios, a falta de programador ColdFusion visto que eu não faça mais todo o processo de desenvolvimento de um site.</p>
<p>Porém essa semana eu tive uma demanda de um site feito em flash que deveria consumir métodos de um CFC (ColdFusion Componente), como eu não fazia isso desde a época que eu trabalhava com AS2 decidi escrever uma nova classe para conexão em AS3 e foi exatamente ai que meus problemas começaram.</p>
<p>Primeiramente eu teria que instalar o ColdFusion 8 na minha maquina e de preferência ele deveria rodar em cima do Apache, para isso eu usei o Tutorial do meu brother Marcio Nakano:<br />
<strong><a href="http://www.zetaiweb.com.br/blog/index.php/2008/09/instalando-servidor-apache-com-mysql-e-as-linguagens-coldfusion-e-php/">Instalando servidor Apache com Mysql e as linguagens ColdFusion e PHP.</a></strong></p>
<p>Feito isso (e depois desfeito, pois achei que isso poderia ser a causa do erro que eu descrevo a seguir) agora era a hora de escrever a classe, mas por onde começar, Google é a solução? Não foi bem assim.</p>
<p>O material que fala sobre Flash Remoting + ColdFusion na web é bem fraco e muito confuso sem falar que a grande maioria é em inglês o que dificultou um pouco mais o entendimento já que não sou um expert na língua do “Tio Sam”, abaixo estão listados alguns dos melhores que encontrei:<br />
<strong><a href="http://delicious.com/theflashcoder/flashremoting?detail=3">Delicious Flash Remoting</a></strong></p>
<p>Foi então que tive a feliz idéia de Twittar essa minha raiva e logo depois recebi uma mensagem do <a href="http://twitter.com/netoleal">Neto Leal</a> e de <a href="http://twitter.com/bribeiro">Bruno Ribeiro</a> me oferecendo ajuda, na parte do <a href="http://twitter.com/netoleal">Neto Leal</a> ele me indicou esse link:<br />
<strong><a href="http://livedocs.adobe.com/coldfusion/8/htmldocs/help.html?content=othertechnologies_07.html">Ativando Flash Remoting</a></strong></p>
<p>Mesmo fazendo o que o link indica o erro ainda persistia foi então que comecei a trocar idéia com o <a href="http://twitter.com/bribeiro">Bruno Ribeiro</a>, depois de algumas dicas e do envio da classe que ele mesmo usa para fazer isso eu consegui conectar e consumir um método do ColdFusion.</p>
<p>Eu sempre digo isso, mas é bom reforçar, na vida uma das melhores coisas é ter amigos e eu agradeço ao <a href="http://twitter.com/netoleal">Neto Leal</a> e ao <a href="http://twitter.com/bribeiro">Bruno Ribeiro</a> pela ajuda, então nada mais lógico do que eu postar aqui a classe que eu fiz baseada nesse longo caminho percorrido para conseguir conectar o Flash ao ColdFusion e ao AMFPHP, lembrando que essa classe foi baseada na classe do <a href="http://twitter.com/bribeiro">Bruno Ribeiro</a> e não tenho a pretensão de achar que ela é a melhor do mundo, mas pelo menos ela funciona com ColdFusion e AMFPHP, segue o código:</p>
<p><strong>RemotingConexao.as</strong></p>
<pre class="brush: as3; first-line: 8; gutter: false; highlight: [10,11]; pad-line-numbers: false; title: ; wrap-lines: false;">
package lmcosta.remoto.cf
{
	import flash.display.MovieClip;

	import flash.events.Event;
	import flash.events.EventDispatcher;
	import flash.events.NetStatusEvent;

	import flash.net.NetConnection;
	import flash.net.ObjectEncoding;
	import flash.net.Responder;
	import nl.demonsters.debugger.MonsterDebugger
	/**
	 * ...
	 * @author lmcosta
	 * @link www.lucasmarcal.com.br/blog - www.brunoribeiro.net
	 * @return
	 * @version 1.0
	 */

	public class RemotingConexao extends MovieClip
	{
		public var _servico    :        NetConnection;
		public var _responder  :        Responder;
		public var _fcnRetorno :        Function;
		public var _cfc        :        String;
		public var _metodo     :        String;
		public var _resultado  :        Object;
		public var debug       :        MonsterDebugger;

		public function RemotingConexao()
		{
			this._responder =                new Responder(resultado, falha);
			this._servico   =                new NetConnection();
			this._servico.objectEncoding =   ObjectEncoding.AMF0;
			this.debug = new MonsterDebugger(this);
			this._servico.connect(&quot;http://www.seudominio.com.br/flashservices/gateway&quot;);
			MonsterDebugger.trace(this, &quot;Chamou a classe de conexão:&quot;);
		}
		/**
		 *
		 * @param	$cfc = String que contém o caminho do CFC
		 * @param	$metodo = String com o nome do método do CFC
		 * @param	$fcnRetorno = Metodo de retorno na referencia dessa classe
		 * @param	$args = Argumentos
		 */
		public function consome($cfc:String = &quot;&quot; , $metodo:String=&quot;&quot; , $fcnRetorno:Function = null , $args:Object = null ):void
		{
			MonsterDebugger.trace(this, &quot;Consumindo metodo:&quot;);
			var refCFCMetodo:String = $cfc + &quot;.&quot; + $metodo;

			this._fcnRetorno = $fcnRetorno;
			this._cfc = $cfc;
			this._metodo = $metodo;

			if ($args == null)
			{
				MonsterDebugger.trace(this, &quot;Chamou sem parametros:&quot;);
				this._servico.call.apply(null, [refCFCMetodo, this._responder]);
			}
			else
			{
				MonsterDebugger.trace(this, &quot;Chamou com parametros: &quot; + $args);
				this._servico.call.apply(null, [refCFCMetodo, this._responder].concat($args));
			}

		}
		/**
		 *
		 * @param	f = Objeto que retorna Erros
		 */
		private function falha(f:Object):void
		{
			trace(&quot;fault&quot;+f.details);
			trace(&quot;fault&quot;+f.description);
		}
		/**
		 *
		 * @param	re = Objeto que retorna os resultados
		 * @return  Retorna o valor que veio do CFC na referencia da classe
		 */
		private function resultado(re:Object):Object
		{
			this._resultado = re;
			return this._fcnRetorno(this._resultado);
		}

	}

}
</pre>
<p><strong>Consumindo a classe</strong><br />
Para utilizar essa classe você deve criar um novo arquivo no Flash do tipo Actionscript 3.0, depois crie uma classe que no meu caso eu chamei de “Teste.as” e escreva o seguinte:</p>
<p><strong>Teste.as</strong></p>
<pre class="brush: as3; first-line: 8; gutter: false; highlight: [10,11]; pad-line-numbers: false; title: ; wrap-lines: false;">

package
{
	import flash.display.MovieClip;
	import lmcosta.remoto.cf.RemotingConexao;
	/**
	 * ...
	 * @author lmcosta
	 */
	public class Teste extends MovieClip
	{
		public var re:RemotingConexao

		public function Teste()
		{
			trace(&quot;Conetando.......&quot;)
			this.re =  new RemotingConexao();
			this.re.consome(&quot;remotoAS3.componente&quot;, &quot;ola&quot;, this.resultadoItem, {msg:&quot;Seja Bem vindo&quot;});
		}

		public function resultadoItem(obj:Object):void
		{
			trace(&quot;Tudo certo hora de trampar  &quot; + obj)
		}

	}

}
</pre>
<p><strong><a href="http://www.lucasmarcal.com.br/labs/TutorialFlashRemotingAS3.rar">Arquivos do Tutorial</a></strong></p>
<p>Para utilizar a mesma classe para conectar ao AMFPHP basta você trocar o caminho do Gateway na classe RemotingConexao.as e indicar a classe e o método na classe Teste.as<br />
Gostaria mais uma vez de agradecer ao <a href="http://twitter.com/bribeiro">Bruno Ribeir</a>o e ao <a href="http://twitter.com/netoleal">Neto Leal</a> pela ajuda e espero que essa classe possa ajudar a todos.<br />
Até a próxima pessoal e sigam-me pelo <a href="http://www.twitter.com/lmcosta">Twitter</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.lucasmarcal.com.br/blog/index.php/2009/10/flash-remoting-coldfusion-amfphp/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Validando Campos de formulário no Actionscript 3.0</title>
		<link>http://www.lucasmarcal.com.br/blog/index.php/2009/10/validando-campos-de-formulario-no-actionscript-30/</link>
		<comments>http://www.lucasmarcal.com.br/blog/index.php/2009/10/validando-campos-de-formulario-no-actionscript-30/#comments</comments>
		<pubDate>Mon, 19 Oct 2009 06:10:44 +0000</pubDate>
		<dc:creator>Lucas</dc:creator>
				<category><![CDATA[Destaque]]></category>
		<category><![CDATA[Interface]]></category>
		<category><![CDATA[Tutoriais]]></category>
		<category><![CDATA[Formularios]]></category>
		<category><![CDATA[Validação]]></category>

		<guid isPermaLink="false">http://lucasmarcal.com.br/blog/?p=1</guid>
		<description><![CDATA[Classe inicial para validação de campos de  formulario]]></description>
			<content:encoded><![CDATA[<p>Nesse tutorial vamos trabalhar a validação de dados de um formulário com uma classe que desenvolvi para um projeto que trabalhei.</p>
<p>No meu primeiro artigo sobre Actionscript 3.0 eu mostro uma classe que eu fiz para validar campos de formularios.</p>
<p>Então agora chega de enrrolação e vamos ao que interessa, lembrando que isso é apenas uma experiência e você deve tentar encontrar formas melhores de fazer isso!</p>
<pre class="brush: as3; first-line: 8; gutter: false; highlight: [10,11]; pad-line-numbers: false; title: ; wrap-lines: false;">
/**
 * @autor: Lucas Marçal
 * @email: inbox@lucasmarcal.com.br
 * @date:  15/05/2009
 * @coment: para adicionar um evento ao modificar o conteudo do campo
 * de texto registrar o evento
 * textInput.addEventListener(Event.CHANGE,clicou);
 * public function clicou (e:Event)
   {
	//trace(&amp;amp;quot;Mudando&amp;amp;quot;)
   }
 * */
package owinteractive.utils
{
	import flash.display.MovieClip;
	import flash.events.FocusEvent;
	import flash.text.TextField;
	import gs.easing.*
	import gs.*

	public class Validation extends MovieClip
	{
		public var textInput:   TextField;
		public var tipo:        String;
		public  var textStatus:  Boolean;
		public var textOutput:  TextField;
		public var textName:    String;
		public var mcStatus:    MovieClip;
		public var limpar:      Boolean;

		public function Validation (_txtCamp:TextField,_type:String,_txtResp:TextField,_txtName:String,_mcStatus:MovieClip,_clear:Boolean):void
		{
			this.textInput = _txtCamp;
			this.tipo = _type;
			this.textStatus = false;
			this.textOutput = _txtResp;
			this.textName = _txtName;

			if (_mcStatus != null)
			{
				this.mcStatus = _mcStatus;
			}
			this.limpar = _clear;
			this.textInput.addEventListener(FocusEvent.FOCUS_IN, onIn);
			this.textInput.addEventListener(FocusEvent.FOCUS_OUT,onOut);
		}

		public function onIn(f:FocusEvent):void
		{
			//trace(&amp;amp;quot;Selecionou &amp;amp;quot; + f.target.name)
			if (this.limpar == true)
			{
				f.target.text = &amp;amp;quot;&amp;amp;quot;
			}
			else
			{
				trace(&amp;amp;quot;Não Limpar campo&amp;amp;quot;)
			}
		}

		public function onOut(f:FocusEvent):void
		{
			if(this.tipo == &amp;amp;quot;email&amp;amp;quot;)
			{
				this.emailValidation(f)
			}
			else
			{
				this.textValidation(f)
			}
		}

		public function textValidation(t:*):void
		{
			if(t.target.text == &amp;amp;quot;&amp;amp;quot;)
			{
				//trace(&amp;amp;quot;Campo Vazio&amp;amp;quot;)
				this.textStatus = false
				this.textOutput.text = &amp;amp;quot;Preencher o campo &amp;amp;quot; + this.textName
				if (this.mcStatus != null)
				{
					this.mcStatus.gotoAndStop(3)
				}
			}
			else
			{
				//trace(&amp;amp;quot;Campo Preenchido&amp;amp;quot;)
				this.textStatus = true
				if (this.mcStatus != null)
				{
					this.mcStatus.gotoAndPlay(2)
					TweenMax.to(this.mcStatus, 0.5, { alpha:0, ease:Linear.easeNone,delay:2,onComplete:retornaStatus} );
				}

			}
		}
		public function emailValidation(t:*):void
		{
			var email:String = t.target.text;
			var arroba:Number = email.indexOf(&amp;amp;quot;@&amp;amp;quot;);
			var ponto:Number = email.lastIndexOf(&amp;amp;quot;.&amp;amp;quot;);
			var resp:Boolean = arroba &amp;amp;gt; 0 &amp;amp;amp;&amp;amp;amp; ponto &amp;amp;gt; arroba;

			if(resp == true)
			{
				//trace(&amp;amp;quot;Email Correto&amp;amp;quot;)
				this.textStatus = true
				if (this.mcStatus != null)
				{
					this.mcStatus.gotoAndStop(2);
					TweenMax.to(this.mcStatus, 0.5, { alpha:0, ease:Linear.easeNone,delay:2,onComplete:retornaStatus} );
				}

			}
			else
			{
				//trace(&amp;amp;quot;Preencher corretamente&amp;amp;quot;)
				this.textStatus = false
				this.textOutput.text = &amp;amp;quot;Campo &amp;amp;quot; + this.textName + &amp;amp;quot; incorreto&amp;amp;quot;
				if (this.mcStatus !=  null)
				{
					this.mcStatus.gotoAndStop(3)
				}

			}
		}

		public function getTextStatus():Boolean
		{
			return textStatus
		}
		public function retornaStatus():void
		{
			if (this.mcStatus != null)
			{
				this.mcStatus.gotoAndStop(1);
				this.mcStatus.alpha = 1
			}

		}

	}
}
</pre>
<p>Abraço a todos</p>
]]></content:encoded>
			<wfw:commentRss>http://www.lucasmarcal.com.br/blog/index.php/2009/10/validando-campos-de-formulario-no-actionscript-30/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

