<?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; admin</title>
	<atom:link href="http://www.lucasmarcal.com.br/blog/index.php/author/admin/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.lucasmarcal.com.br/blog</link>
	<description>Blog Oficial</description>
	<lastBuildDate>Wed, 11 Aug 2010 17:50:42 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Vendo Motorola Milestone desbloqueado com Android 2.1</title>
		<link>http://www.lucasmarcal.com.br/blog/index.php/2010/08/vendo-motorola-milestone-desbloqueado-com-android-2-1/</link>
		<comments>http://www.lucasmarcal.com.br/blog/index.php/2010/08/vendo-motorola-milestone-desbloqueado-com-android-2-1/#comments</comments>
		<pubDate>Wed, 11 Aug 2010 17:48:49 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Tutoriais]]></category>

		<guid isPermaLink="false">http://www.lucasmarcal.com.br/blog/?p=114</guid>
		<description><![CDATA[Boa tarde pessoal!
Faz tempo que não posto aqui, mas gostaria de avisar que estou vendendo meu Motorola Milestone desbloqueado com sistema Android 2.1 e já com o Adobe Air Instalado (para desenvolvedores)
O aparelho acompanha:

Caixa com CD, Aparelho e fone de ouvido
Nota fiscal
Sistema Android 2.1
Adobe Air instalado

Decidi vender o celular depois que ganhei um outro aparelho [...]]]></description>
			<content:encoded><![CDATA[<p>Boa tarde pessoal!</p>
<p>Faz tempo que não posto aqui, mas gostaria de avisar que estou vendendo meu Motorola Milestone desbloqueado com sistema Android 2.1 e já com o Adobe Air Instalado (para desenvolvedores)</p>
<p>O aparelho acompanha:</p>
<ol>
<li>Caixa com CD, Aparelho e fone de ouvido</li>
<li>Nota fiscal</li>
<li>Sistema Android 2.1</li>
<li>Adobe Air instalado</li>
</ol>
<p>Decidi vender o celular depois que ganhei um outro aparelho do mesmo modelo rsrs então não existe motivo para ficar com 2 aparelhos.</p>
<p>Valor: R$ 1200,00</p>
<p>Caso se interesse entre em contato comigo pelo e-mail <a href="mailto:inbox@lucasmarcal.com.br" target="_blank">inbox@lucasmarcal.com.br</a> ou mande uma Tweet em <a href="http://twitter.com/lmcosta" target="_blank">@lmcosta</a></p>
<p>Abaixo fotos ilustrativas do aparelho:</p>
<p><img class="alignnone" title="Motorola Milestone" src="http://pplware.sapo.pt/wp-content/uploads/2009/11/motorola-verizon-droid.jpg" alt="" width="500" height="398" /></p>
<p><img class="alignnone" title="Motorola Milestone" src="http://pplware.sapo.pt/wp-content/images2009/imagem_motorola_milestone01_small.jpg" alt="" width="425" height="342" /></p>
<p><img class="alignnone" title="Motorola Milestone" src="http://pplware.sapo.pt/wp-content/images2009/imagem_motorola_milestone02_small.jpg" alt="" width="425" height="298" /></p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="420" height="253" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/OoHW7yioyfg&amp;hl=pt_BR&amp;fs=1" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="420" height="253" src="http://www.youtube.com/v/OoHW7yioyfg&amp;hl=pt_BR&amp;fs=1" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
]]></content:encoded>
			<wfw:commentRss>http://www.lucasmarcal.com.br/blog/index.php/2010/08/vendo-motorola-milestone-desbloqueado-com-android-2-1/feed/</wfw:commentRss>
		<slash:comments>0</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>admin</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[<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>GetTweets.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; wrap-lines: false;">
/**
 * @author: Lucas Marçal
 * @version: 1.0
 * @email: inbox@lucasmarcal.com.br
 * @link: www.lucasmarcal.com.br/blog
 */
package lmcosta.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;

	public class GetTweets extends MovieClip
	{
		internal var usuario			:String;
		internal var url				:String;
		internal var tag				:String;
		internal var qtdTweets		    :int;
		internal var arrTweets		    :Array;
		internal var dataTweets		    :Array;

		public function GetTweets() { }

		/**
		 *
		 * @param	_user:String;
		 * @param	_tag:String;
		 * @param	_qtd:Number;
		 */
		public function configTwitter(_user:String,_tag:String,_qtd:Number):void
		{
			this.usuario = _user;
			this.tag = _tag;
			this.qtdTweets = _qtd;
			this.carregaXML();
		}
		/**
		 * Responsavel pela chamada do XML
		 */
		public function carregaXML():void
		{
			this.url = &quot;http://search.twitter.com/search.atom?q=+from:&quot; + this.usuario + &quot;&amp;rpp=&quot; + this.qtdTweets + &quot;&amp;tag=&quot; + this.tag
			var urlReq:URLRequest =  new URLRequest(this.url);
			var loader:URLLoader = new URLLoader();

			loader.addEventListener(Event.COMPLETE, parserDados);
			loader.addEventListener(IOErrorEvent.IO_ERROR, IOError);
			loader.addEventListener(SecurityErrorEvent.SECURITY_ERROR, SError);

			this.addEventListener(TwitterEvents.PARSER_COMPLETO, onComplete);

			loader.load(urlReq);
		}
		/**
		 * Responsavel por tratar os dados vindos
		 * do XML
		 * @param	e:Event
		 */
		public function parserDados(e:Event):void
		{
			if (e.target.data)
			{
				this.arrTweets = new Array();
				this.dataTweets = new Array();

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

				var tweetItem:String;
				var timeItem:String;

				for (var i:int = 0; i &lt; tweetList.length(); i++)
				{
					//Assim traz o HTML
					//tweetItem = tweetList[i].*::content;
					tweetItem = tweetList[i].*::title;
					timeItem = tweetList[i].*::published;

					if (timeItem != &quot;&quot;)
					{
						timeItem = timeItem.split(&quot;T&quot;).join(&quot; - &quot;);
						timeItem = timeItem.split(&quot;Z&quot;).join(&quot;&quot;);
						dataTweets.push(timeItem);
						arrTweets.push(tweetItem + dataTweets);
					}
				}
				dispatchEvent(new TwitterEvents(TwitterEvents.PARSER_COMPLETO));
			}
		}

		private function IOError(e:Event):void
		{
			trace(&quot;IO Error!&quot;);
		}
		private function SError(e:Event):void
		{
			trace(&quot;Security Error!&quot;);
		}
		/**
		 * Dispara um evento ao completar o recebimento
		 * @param	e:TwitterEvents
		 */
		private function onComplete(e:TwitterEvents):void
		{
			dispatchEvent(new TwitterEvents(TwitterEvents.DADOS_RECEBIDOS));
		}
		/**
		 * Retorna os dados
		 */
		public function get dados():Array
		{
			return this.arrTweets;
		}
	}

}
</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; wrap-lines: false;">
/**
 * @author: Lucas Marçal
 * @version: 1.0
 * @email: inbox@lucasmarcal.com.br
 * @link: www.lucasmarcal.com.br/blog
 */
package lmcosta.twitter
{
	import flash.events.Event;

	public class TwitterEvents extends Event
	{
		public static const PARSER_COMPLETO:String = &quot;PARSERCOMPLETO&quot;;
		public static const DADOS_RECEBIDOS:String = &quot;RECEBEU&quot;;
		/**
		 *
		 * @param	tipo:String
		 * @param	bubbles:Boolean
		 * @param	cancel:Boolean
		 */
		public function TwitterEvents(tipo:String,bubbles:Boolean=false,cancel:Boolean=false)
		{
			super(tipo, bubbles, cancel);
		}
	}

}
</pre>
<p><em><strong>Consome.as</strong></em></p>
<ul>
<li>Responsável por criar uma instancia da classe GetTweets</li>
</ul>
<pre class="brush: as3; first-line: 8; gutter: false; pad-line-numbers: false; wrap-lines: false;">
/**
 * @author: Lucas Marçal
 * @version: 1.0
 * @email: inbox@lucasmarcal.com.br
 * @link: www.lucasmarcal.com.br/blog
 */
package lmcosta.twitter
{
	import flash.display.MovieClip;
	import lmcosta.twitter.GetTweets
	import lmcosta.twitter.TwitterEvents

	public class Consome extends MovieClip
	{
		public var resultTwitter:GetTweets

		public function Consome()
		{
			this.resultTwitter =  new GetTweets();
			this.resultTwitter.configTwitter(&quot;lmcosta&quot;, &quot;&quot;, 1);
			this.resultTwitter.addEventListener(TwitterEvents.DADOS_RECEBIDOS, initLista);
		}
		/**
		 * Responsavel por criar a lista dos Tweets
		 * Aqui você pode distribuir os itens como
		 * achar melhor.
		 * @param	e
		 */
		private function initLista(e:TwitterEvents):void
		{
			trace(&quot;Pronto para iniciar lista: &quot;);
			trace(this.resultTwitter.dados);
		}
	}

}
</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>4</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>admin</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>0</slash:comments>
		</item>
	</channel>
</rss>
