<?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># Johnatan Oliveira ~ joww.net - Internet, Segurança, Tecnologia, Linux, Programação, Música e Vida Profissional &#187; Action Script</title>
	<atom:link href="http://www.joww.net/blog/category/action-script/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.joww.net/blog</link>
	<description>Internet, Segurança, Tecnologia, Linux, Programação, Música e Vida Profissional</description>
	<lastBuildDate>Thu, 02 Sep 2010 13:13:59 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Classe FileReferenceList – Português</title>
		<link>http://www.joww.net/blog/2009/10/20/classe-filereferencelist-%e2%80%93-portugues/</link>
		<comments>http://www.joww.net/blog/2009/10/20/classe-filereferencelist-%e2%80%93-portugues/#comments</comments>
		<pubDate>Tue, 20 Oct 2009 06:24:25 +0000</pubDate>
		<dc:creator>Johnatan Oliveira joww.net</dc:creator>
				<category><![CDATA[Action Script]]></category>

		<guid isPermaLink="false">http://www.joww.net/blog/?p=394</guid>
		<description><![CDATA[A classe FileReferenceList fornece recursos para permitir o usuário selecionar um ou mais arquivos para upload. ]]></description>
			<content:encoded><![CDATA[<p>A classe FileReferenceList fornece recursos para permitir o usuário selecionar um ou mais arquivos para upload.</p>
<p>Um objeto FileReferenceList representa um grupo de um ou mais arquivos locais no disco do usuário como um array de objetos FileReference.</p>
<p><strong>Para trabalhar com a classe FileReferenceList:</strong></p>
<p>*  Instanciar a classe: var frl:FileReferenceList = new FileReferenceList();<br />
* Chamar o método FileReferenceList.browse(), que abre uma janela que permiete o usuário selecionar um ou mais arquivos para upload: frl.browse();<br />
* Depois o método é browse() ser chamado com sucesso, a propriedade fileList do pobjeto FileReferenceList é populado com um array de objetos FileReference.<br />
* Chame FileReference.upload() em cada elemento do array fileList.</p>
<p>A classe FileReferenceList inclui um método browse() e uma propriedade fileList para trabalhar com múltiplos arquivos. Enquanto uma chamada para FileReferenceList.browse() está em execução, o arquivo pausa a reprodução em stand-alone e players externos para Linux e Mac OS X 10.1 e versões anteriores.<br />
Propriedades Públicas</p>
<p>* fileList:Array – [somente leitura] Cria um novo objeto FileReferenceList.<br />
* browse(typeFilter:Array):Boolean – Apresenta uma janela que permite o usuário selecionar um ou mais arquivos para upload.</p>
<p><strong>Eventos</strong></p>
<p>* cancel – Disparado quando o usuário fecha a janela.<br />
* select – Disparado quando o usuário seleciona um ou mais arquivos para upload de uma janela de arquivo</p>
<p><strong>Fonte:</strong> http://livedocs.adobe.com/flex/201/langref/flash/net/FileReferenceList.html</p>
]]></content:encoded>
			<wfw:commentRss>http://www.joww.net/blog/2009/10/20/classe-filereferencelist-%e2%80%93-portugues/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Classe FileReference – Português</title>
		<link>http://www.joww.net/blog/2009/10/18/classe-filereference-%e2%80%93-portugues/</link>
		<comments>http://www.joww.net/blog/2009/10/18/classe-filereference-%e2%80%93-portugues/#comments</comments>
		<pubDate>Sun, 18 Oct 2009 06:26:00 +0000</pubDate>
		<dc:creator>Johnatan Oliveira joww.net</dc:creator>
				<category><![CDATA[Action Script]]></category>

		<guid isPermaLink="false">http://www.joww.net/blog/?p=397</guid>
		<description><![CDATA[A classe FileReference fornece recursos para upload e download de arquivos entre o cliente e o servidor. ]]></description>
			<content:encoded><![CDATA[<p>A classe FileReference fornece recursos para upload e download de arquivos entre o cliente e o servidor. Uma janela avisa o usuário para selecionar um arquivo para upload ou um local para download. Cada objeto FileReference referencia um único arquivo no disco do usuário e tem propriedades que contêm informações sobre o arquivo: Tamanho, tipo, data de criação, data de modificação e tipo do criador (somente Macintosh).</p>
<p>Instâncias FileReference são criadas em dois passos:</p>
<p>* Quando você usa o operador new com o construtor FileReference: var fr:FileReference = new FileReference();<br />
* Quando você chama o método FileReferenceList.browse(), que cria um array de objetos FileReference.</p>
<p>Durante a operação de upload, todas as propriedades de um objeto FileReference são populados por chamadas para os métodos FileReference.browse() ou FileReferenceList.browse(). Durante uma operação de download, a propriedade nameé populada quando o evento select é disparado, todas as outras propriedades são populadas quando o evento complete é disparado.</p>
<p>O método browse() abre uma janela do sistema operacional para o usuário selecionar um arquivo para upload.</p>
<p>O método FileReference.browse() pemite o usuário selecionar somente um arquivo; o método FileReferenceList.browse() permite o usuário selecionar múltiplos arquivos. Depois de uma chamada bem sucedida do método browse(), chame o método FileReference.upload() para fazer o upload de um arquivo de cada vez.</p>
<p>As classes FileReference e FileReferenceList não permitem definir o local padrão de arquivos para a caixa de diálogo que os métodos browse() ou download() geram. O local padrão mostrado na caixa de diálogo é a pasta que recentemente foi mais acessada, se aquele local puder ser determinado, ou o desktop. As classes não permitem ler ou escrever a partir do arquivo transferido. Elas não permitem que o arquivo SWF que iniciou o upload ou download acesse o arquivo baixado ou a localização no disco do usuário.</p>
<p>As classes FileReference e FileReferenceList também não fornecem métodos para autenticação. Como servidores que requerem  autenticação, você pode baixar arquivos com o Flash Player, mas upload (em todos players) e download (no stand-alone ou player externo) falha. Observe os eventos FileReference para determinar se as operações foram concluídas com êxito e para tratar os erros.</p>
<p>Para operações de upload e download, um arquivo SWF pode acessar somente dentro do mesmo domínio, incluindo alguns domínios que estiverem especificados em um arquivo cross-domain policy. Coloque um arquivo policy no servidor se iniciar upload ou download de outro servidor de arquivos.</p>
<p>Enquanto chamadas para o FileReference.browse(), FileReference.browse(), FileReferenceList.browse(), ou FileReference.download() são executadas, o arquivo SWF pausa a reprodução em stand-alone e players externos para o Mac OS X 10.1 e anteriores.</p>
<h3>Propriedades Públicas</h3>
<ul>
<li><strong>creationDate : Date</strong> &#8211; [somente leitura] A data de criação do arquivo no disco local.</li>
<li><strong>creator : Strng</strong> – [somente leitura ] O tipo criador de arquivo do Macintosh, que só é usado no Mac OS em versões anteriores ao Mac OS X.</li>
<li><strong>extension : String</strong> – [AIR][somente leitura] A extensão do arquivo.</li>
<li><strong>modificationDate : Date</strong> – [somente leitura] A data que o arquivo foi modificado no disco local.</li>
<li><strong>name : String</strong> – [somente leitura] O nome do arquivo no disco local.</li>
<li><strong>size : Number</strong> – [somente leitura] O tamanho do arquivo no disco local.</li>
<li><strong>type : String</strong> – [somente leitura] O tipo de arquivo.</li>
</ul>
<h3>Métodos Públicos</h3>
<ul>
<li><strong>FileReference()</strong> – Cria um novo objeto FileReference.</li>
<li><strong>browse(tipeFilter:Array = null):Boolean</strong> – Apresenta uma janela que permite o usuário selecionar um arquivo para upload.</li>
<li><strong>cancel():void</strong> – Cancela qualquer operação de upload ou download em curso neste objeto FileReference.</li>
<li><strong>download(request:URLRequest, defaultFileName:String = null):void</strong> – Abre uma janela que permite o usuário baixar um arquivo de um servidor remoto.</li>
<li><strong>upload(request:URLRequest, uploadDataFieldName:String = “FileData”, testUpload:Boolean = false):void</strong> – Inicia o upload de um arquivo selecionado por um usuário para um servidor remote.</li>
<li><strong>uploadUnencoded(request:URLRequest):void</strong> – Inicia o upload de um arquivo para uma URL sem qualquer codificação.</li>
</ul>
<h3>Eventos</h3>
<ul>
<li><strong>cancel</strong> – Disparado quando o upload ou download de arquivos é cancelado através de uma caixa de diálogo de navegação pelo usuário.</li>
<li><strong>complete</strong> – Disparado quando download é completado ou quando o upload gerar um HTTP status código 200.</li>
<li><strong>httpResponseStatus</strong> – [AIR] Disparado se a chamada para o método upload() ou uploadUnencoded tenta acessar os dados sobre HTTP e Adobe AIR é capaz de detectar e retornar o código de status da solicitação.</li>
<li><strong>httpStatus</strong> – Disparado quando um upload falha e um status HTTP está disponível para descrever a falha.</li>
<li><strong>ioError</strong> – Disparado quando uma operação de upload ou download falha.</li>
<li><strong>open</strong> – Disparado quando uma operação de upload ou download inicia.</li>
<li><strong>progress</strong> – Disparado periodicamente durante a operação de upload ou download.</li>
<li><strong>securityError</strong> – Disparado quando uma chamada para o método FileReference.upload() ou FileReference.download() tenta fazer o upload de um arquivo de um servidor ou pegar um arquivo de um servidor que esteja fora do sandbox de segurança da chamada.</li>
<li><strong>select</strong> – Disparado quando o usuário seleciona um arquivo para download ou upload de uma janela do sistema.</li>
<li><strong>uploadCompleteData</strong> – Disparado após os dados serem recebidos pelo servidor depois de um upload bem-sucedido.</li>
</ul>
<p>(via carlos tristacci)</p>
<p>Fonte:  http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/flash/net/FileReference.html</p>
]]></content:encoded>
			<wfw:commentRss>http://www.joww.net/blog/2009/10/18/classe-filereference-%e2%80%93-portugues/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ActionScript 3.0 – Sintaxe</title>
		<link>http://www.joww.net/blog/2009/10/16/actionscript-3-0-%e2%80%93-sintaxe/</link>
		<comments>http://www.joww.net/blog/2009/10/16/actionscript-3-0-%e2%80%93-sintaxe/#comments</comments>
		<pubDate>Fri, 16 Oct 2009 06:29:11 +0000</pubDate>
		<dc:creator>Johnatan Oliveira joww.net</dc:creator>
				<category><![CDATA[Action Script]]></category>
		<category><![CDATA[Tecnologia]]></category>
		<category><![CDATA[action]]></category>
		<category><![CDATA[actionscript]]></category>
		<category><![CDATA[flash]]></category>

		<guid isPermaLink="false">http://www.joww.net/blog/?p=402</guid>
		<description><![CDATA[A sintaxe de uma linguagem define as regras que devem ser seguidas quando escrever código executável.]]></description>
			<content:encoded><![CDATA[<p>A sintaxe de uma linguagem define as regras que devem ser seguidas quando escrever código executável.</p>
<p><strong>Case sensitivity</strong></p>
<p>ActionScript é uma linguagem case-sensitive, o que significa que os identificadores diferem em case (letras maiúsculas de minúsculas). Abaixo, como exemplo duas variáveis diferentes:</p>
<p>[as3]var num1:int;<br />
var Num1:int;[/as3]</p>
<p><strong>Sintaxe de ponto (Dot sintax)</strong></p>
<p>O operador ponto (.) disponibiliza um caminho para acessar as propriedades e métodos de um objeto. Por exemplo, considere a classe:</p>
<p>[as3]class ExemploPonto {<br />
public var prop1 : String;<br />
public function metodo1() : void {}<br />
}<br />
[/as3]</p>
<p>Acessando a propriedade e o método da classe a partir de uma instância.<code><br />
</code></p>
<p>[as3]var meuPonto : ExemploPonto = new ExemploPonto();<br />
meuPonto.prop1 = “oi”;<br />
meuPonto.metodo1();[/as3]</p>
<p>Podemos usar <em>dot sintax</em> para definir pacotes, usando o operador ponto (.) para referir-se a pacotes internos. Por exemplo, a classe <em>EventDispatcher </em>está dentro de um pacote chamado <em>events, </em>que está dentro de um pacote chamado<em> flash. </em>Você pode fazer referencia ao pacote <em>events </em>usando a seguinte expressão:</p>
<p>[as3]flash.events[/as3]</p>
<p>Você também pode referir-se a classe EventDispatcher usando esta espressão:</p>
<p>[as3]flash.events.EventDispatcher[/as3]</p>
<p><strong>Literais</strong><br />
Um literal é um valor que aparece diretamente no seu código. Os exemplos abaixo são todos literais:</p>
<ul>
<li>17</li>
<li>&#8220;oi&#8221;</li>
<li>-3</li>
<li>9.4</li>
<li>null</li>
<li>undefined</li>
<li>true</li>
<li>false</li>
</ul>
<p>Literais também podem ser agrupados para formar literais compostos. Arrays literais são escritos dentro de colcheteses ([ ]) e são usadas virgulas para se separar os elementos do array.</p>
<p>Um array literal pode ser usado para inicializar um array. Abaixo exemplo de dois arrays sendo inicializados usando arrays literais. Você pode usar a declaração <em>new </em>e passar o literal composto como um parâmetro para o construtor da classe Array, mas você também pode declarar valores literais diretamente quando instancia instâncias das classes: Object, Array, String, Number, int, uint, XML, XMLList e Boolean.</p>
<p>[as3]// Usando a declaração new.<br />
var minhasStrings:Array = new Array(["alpha", "beta", "gamma"]);<br />
var meusNumeros:Array = new Array([1,2,3,5,8]);<br />
// Declarando diretamente com literais.<br />
var minhasStrings:Array = ["alpha", "beta", "gamma"];<br />
var meusNumeros:Array = [1,2,3,5,8];[/as3]</p>
<p>Literais podem ser usadas para inicializar um objeto genérico. Um objeto genérico é uma instância da classe Object. literais Object são colocados dentro de chaves ({ }) e usa vírgulas para separaras propriedades do objeto. Cada propriedade é declarada com dois pontos ( : ), que separa o nome da propriedade do valor da propriedade. Você pode usar a declaração <em>new </em>e passar o literal composto como um parâmetro para o construtor da classe Object. Veja o exemplo a seguir:</p>
<p>[as3]// Usando a declaração new.<br />
var meuObjeto:Object = new Object({propA:1, propB:2, propC:3});<br />
// Declarando diretamente com literais.<br />
var myObject:Object = {propA:1, propB:2, propC:3};[/as3]</p>
<p><strong>Ponto e vírgura ( ; )</strong></p>
<p>Você pode usar ponto e vírgula para terminar uma declaração. Alternativamente, se você omitir o ponto e vírgula, o compilador irá assumir que cada linha de código representa uma declaração.</p>
<p><strong>Parênteses</strong></p>
<p>Você irá usar parênteses em 3 casos:</p>
<p>1. Para alterar a ordem das operações em uma expressão. Operações agrupadas dentro de parênteses são executadas primeiro.</p>
<p>[as3]trace(2 + 3 *4); //14<br />
trace((2 + 3) *4); //20[/as3]</p>
<p>2. Você pode usar parênteses com o operador vírgula ( , ) para avaliar uma série de expressões e retornar o resultado no final da expressão.</p>
<p>[as3]var a:int = 2;<br />
var b:int = 3;<br />
trace((a++, b++, a+b)); // 7[/as3]</p>
<p>3. Você usa parênteses para passar um ou mais parênteses para funções ou métodos.</p>
<p>[as3]trace(&#8220;oi&#8221;);[/as3]</p>
<p><strong>Comentários</strong></p>
<p>O código ActionScript 3.0 suporta dois tipos de comentários: um linhas e de várias linhas. O compilador ignora o que estiver marcado como um comentário.</p>
<p>[as3]// comentário de uma linha<br />
/*<br />
comentário<br />
de várias<br />
linhas<br />
*/[/as3]</p>
<p><strong>Palavras-chave</strong></p>
<p>Palavras-chave não podem ser usadas como identificadores em seu código, pois estas palavras são reservadas para o ActionScript. As palavras reservadas incluem palavras-chave léxicas, que são transferidas para o namespace do programa pelo compilador. O compilador pode retornar um erro se você usar uma palavra léxica como um identificador. Abaixo uma lista de palavrasa lexicas:</p>
<ul>
<li>as</li>
<li>break</li>
<li>case</li>
<li>catch</li>
<li>class</li>
<li>const</li>
<li>continue</li>
<li>default</li>
<li>delete</li>
<li>do</li>
<li>else</li>
<li>extends</li>
<li>false</li>
<li>finally</li>
<li>for</li>
<li>function</li>
<li>if</li>
<li>implements</li>
<li>import</li>
<li>in</li>
<li>instanceof</li>
<li>interface</li>
<li>internal</li>
<li>is</li>
<li>native</li>
<li>new</li>
<li>null</li>
<li>package</li>
<li>private</li>
<li>protected</li>
<li>public</li>
<li>return</li>
<li>super</li>
<li>switch</li>
<li>this</li>
<li>throw</li>
<li>to</li>
<li>true</li>
<li>try</li>
<li>typeof</li>
<li>use</li>
<li>var</li>
<li>void</li>
<li>while</li>
<li>with</li>
</ul>
<p>Este é um grupo de palavras-chave, chamado palavras-chave sintática, estas podem ser usadas como identificadores, mas tem um significado especial em certos contextos. Abaixo a lista de palavras-chave sintáticas:</p>
<ul>
<li>each</li>
<li>get</li>
<li>set</li>
<li>namespace</li>
<li>include</li>
<li>dynamic</li>
<li>final</li>
<li>native</li>
<li>override</li>
<li>static</li>
</ul>
<p>Estes também são alguns identificadores que às vezes são referidos como <em>futuras palavras reservadas</em>. Estes identificadores não são reservados para o ActionScript 3.0, apesar de terem que ser tratadas como palavras-chave para produtos ActionScript 3.0 incorporados. Você esta apto a usar vários destes identificadores em seu código, mas a Adobe recomenda você não usar pois poderão aparecer como palavras-chave em futuras versões da linguagem.</p>
<ul>
<li>abstract</li>
<li>boolean</li>
<li>byte</li>
<li>cast</li>
<li>char</li>
<li>debugger</li>
<li>double</li>
<li>enum</li>
<li>export</li>
<li>float</li>
<li>goto</li>
<li>intrinsic</li>
<li>long</li>
<li>prototype</li>
<li>short</li>
<li>synchronized</li>
<li>throws</li>
<li>to</li>
<li>transient</li>
<li>type</li>
<li>virtual</li>
<li>volatile</li>
</ul>
<p>(via carlos tristacci)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.joww.net/blog/2009/10/16/actionscript-3-0-%e2%80%93-sintaxe/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Flash CS4 – Onde está o linkage?</title>
		<link>http://www.joww.net/blog/2009/10/12/flash-cs4-%e2%80%93-onde-esta-o-linkage/</link>
		<comments>http://www.joww.net/blog/2009/10/12/flash-cs4-%e2%80%93-onde-esta-o-linkage/#comments</comments>
		<pubDate>Mon, 12 Oct 2009 10:19:02 +0000</pubDate>
		<dc:creator>Johnatan Oliveira joww.net</dc:creator>
				<category><![CDATA[Action Script]]></category>
		<category><![CDATA[Tecnologia]]></category>

		<guid isPermaLink="false">http://www.joww.net/blog/?p=388</guid>
		<description><![CDATA[Flash CS4 – Onde está o linkage?]]></description>
			<content:encoded><![CDATA[<p><strong>O que é?</strong></p>
<p>Linkage é uma opção para identificar MovieClipes na Library. Isso permite a manipulação do MovieClip através do ActionScript, inserindo-o no Stage e realizando as mesmas interações de um Movie Clip que tenha sido inserido manualmente.</p>
<p><strong>O que mudou?</strong></p>
<p>A Adobe renomeou essa opção para Properties, para utilizar o Linkage na versão CS4 siga os passos abaixo.</p>
<p>1. Clique com o botão direito do mouse no símbolo, dentro do painel Library.</p>
<p>2. Selecione a opção Properties…</p>
<p><img class="alignnone size-full wp-image-389" title="imagem14" src="http://www.joww.net/blog/wp-content/uploads/2009/10/imagem14.png" alt="imagem14" width="214" height="349" /></p>
<p style="text-align: left;">3. Na janela <strong>Symbol Properties</strong> clique em <em><strong>Advanced</strong></em>.</p>
<p style="text-align: left;">Irá abrir as opções de configuração avançadas do Movie Clip, onde podemos encontrar a opção <strong>Linkage</strong>.</p>
<p style="text-align: left;"><img class="alignnone size-full wp-image-390" title="imagem15" src="http://www.joww.net/blog/wp-content/uploads/2009/10/imagem15.png" alt="imagem15" width="555" height="158" /></p>
<p style="text-align: left;">4. Marque a opção <em><strong>Export for ActionScript, </strong></em>clique no botão OK e já pode trabalhar na interação entre o Movie Clip e  o ActionScript.</p>
<p style="text-align: left;"><img class="alignnone size-full wp-image-391" title="imagem16" src="http://www.joww.net/blog/wp-content/uploads/2009/10/imagem16.png" alt="imagem16" width="555" height="601" /></p>
<p style="text-align: left;">(via carlos tristacci)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.joww.net/blog/2009/10/12/flash-cs4-%e2%80%93-onde-esta-o-linkage/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Introdução a Orientação a Objetos</title>
		<link>http://www.joww.net/blog/2009/08/16/introducao-a-orientacao-a-objetos/</link>
		<comments>http://www.joww.net/blog/2009/08/16/introducao-a-orientacao-a-objetos/#comments</comments>
		<pubDate>Sun, 16 Aug 2009 17:04:18 +0000</pubDate>
		<dc:creator>Johnatan Oliveira joww.net</dc:creator>
				<category><![CDATA[Action Script]]></category>
		<category><![CDATA[Tecnologia]]></category>
		<category><![CDATA[oop]]></category>
		<category><![CDATA[programacao]]></category>

		<guid isPermaLink="false">http://www.joww.net/blog/?p=241</guid>
		<description><![CDATA[Introdução a Orientação a Objetos e um pouco de action script 3.0]]></description>
			<content:encoded><![CDATA[<h3></h3>
<h3>História</h3>
<p>O termo Programação Orientada a Objetos foi criado por Alan Kay, autor da linguagem de programação Smalltalk. Mas mesmo antes da criação do Smalltalk, algumas das idéias da POO já eram aplicadas, sendo que a primeira linguagem a realmente utilizar estas idéias foi a Simula 67 no ano de 1967. A POO já é bastante antiga, mas só agora vem sendo aceito realmente nas grandes empresas de desenvolvimento de Software. Alguns exemplos de linguagens modernas utilizadas por grandes empresas em todo o mundo que adotaram essas idéias: Java, C#, C++, Object Pascal (Delphi), Ruby, Python.</p>
<p>A maioria das linguagens modernas, adotam parcialmente as idéias do POO, deixando as formas procedurais serem utilizadas normalmente junto com a orientação a objetos, como o C++ por exemplo.</p>
<h3>Visão Geral do Objeto</h3>
<p>OOP (Programação orientada a objetos) é uma maneira de organizar o código em um programa agrupando-o em objetos. O uso de uma abordagem orientada a objetos para organizar um programa permite agrupar partes específicas de informações (por exemplo, informações sobre música, como título do álbum, título da faixa ou nome do artista) juntamente com a funcionalidade comum ou com as ações associadas a essas informações (como “adicionar faixa à lista de reprodução” ou “reproduzir todas as canções desse artista”). Esses itens são combinados em único item, um objeto (por exemplo, um “Album” ou “MusicTrack”).</p>
<p>Um objeto é uma entidade do mundo real que tem uma identidade. Objetos podem representar entidades concretas (um arquivo no meu computador, uma bicicleta) ou entidades conceituais (uma estratégia de jogo, uma política de escalonamento em um sistema operacional). Cada objeto ter sua identidade significa que dois objetos são distintos mesmo que eles apresentem exatamente as mesmas características.</p>
<p>Embora objetos tenham existência própria no mundo real, em termos de linguagem de programação um objeto necessita um mecanismo de identificação. Esta identificação de objeto deve ser única, uniforme e independente do conteúdo do objeto. Este é um dos mecanismos que permite a criação de coleções de objetos, as quais são também objetos em si.</p>
<p>Vários benefícios são obtidos quando se pode agrupar esses valores e funções em conjunto, incluindo apenas a necessidade de manter o rastreio de uma única variável, em vez de várias, organizar a funcionalidade relacionada em conjunto, e poder estruturar programas de maneiras muito correspondentes ao mundo real.</p>
<h3>Classes</h3>
<p>O comportamento de um objeto é representado pelo conjunto de operações que podem ser executadas sobre o objeto. Objetos com a mesma estrutura e o mesmo comportamento são agrupados em classes. Uma classe é uma abstração que descreve propriedades importantes para uma aplicação e simplesmente ignora o resto.</p>
<p>Cada classe descreve um conjunto (possivelmente infinito) de objetos individuais. Cada objeto é dito ser uma instância de uma classe. Assim, cada instância de uma classe tem seus próprios valores para cada atributo, mas dividem os nomes dos atributos e métodos com as outras instâncias da classe. Implicitamente, cada objeto contém uma referência para sua própria classe &#8212; em outras palavras, ele sabe o que ele é.</p>
<h3>Atributos</h3>
<p>A estrutura de um objeto é representada em termos de atributos. Uma característica atribuída a um elemento de classe (como uma propriedade ou método) na definição de classe. Os atributos são usados normalmente para definir se a propriedade ou método estará disponível para acesso por código em outras partes do programa. Por exemplo, private e public são atributos. Um método particular pode ser chamado apenas pelo código dentro da classe, enquanto um método público pode ser chamado por qualquer código no programa.</p>
<p>Um atributo é um valor de dado assumido pelos objetos de uma classe. Nome, idade e peso são exemplos de atributos de objetos Pessoa. Cor, peso e modelo são possíveis atributos de objetos Carro. Cada atributo tem um valor para cada instância de objeto. Por exemplo, o atributo idade tem valor &#8220;29&#8221; no objeto Pedro Y. Em outras palavras, Pedro Y tem 29 anos de idade. Diferentes instâncias de objetos podem ter o mesmo valor para um dado atributo.</p>
<p>Cada nome de atributo é único para uma dada classe, mas não necessariamente único entre todas as classes. Por exemplo, ambos Pessoa e Companhia podem ter um atributo chamado endereço.</p>
<p>No diagrama de classes, atributos são listados no segundo segmento da caixa que representa a classe. O nome do atributo pode ser seguido por detalhes opcionais, tais como o tipo de dado assumido e valor default.</p>
<p>Não se deve confundir identificadores internos de objetos com atributos do mundo real. Identificadores de objetos são uma conveniência de implementação, e não têm nenhum significado para o domínio da aplicação. Por exemplo, CIC e RG não são identificadores de objetos, mas sim verdadeiros atributos do mundo real.</p>
<h3>Operações e Métodos</h3>
<p>Uma operação é uma função ou transformação que pode ser aplicada a ou por objetos em uma classe. Por exemplo, abrir, salvar e imprimir são operações que podem ser aplicadas a objetos da classe Arquivo. Todos objetos em uma classe compartilham as mesmas operações.</p>
<p>Toda operação tem um objeto-alvo como um argumento implícito. O comportamento de uma operação depende da classe de seu alvo. Como um objeto &#8220;sabe&#8221; qual sua classe, é possível escolher a implementação correta da operação. Além disto, outros argumentos (parâmetros) podem ser necessários para uma operação.</p>
<p>Uma mesma operação pode se aplicar a diversas classes diferentes. Uma operação como esta é dita ser polimórfica, ou seja, ela pode assumir distintas formas em classes diferentes.</p>
<p>Um método é a implementação de uma operação para uma classe. Por exemplo, a operação imprimir pode ser implementada de forma distinta, dependendo se o arquivo a ser impresso contém apenas texto ASCII, é um arquivo de um processador de texto ou binário. Todos estes métodos executam a mesma operação &#8212; imprimir o arquivo; porém, cada método será implementado por um diferente código.</p>
<p>A assinatura de um método é dada pelo número e tipos de argumentos do método, assim como por seu valor de retorno. Uma estratégia de desenvolvimento recomendável é manter assinaturas coerentes para métodos implementando uma dada operação, assim como um comportamento consistente entre as implementações.</p>
<p>Em termos de diagramas OMT(Object Modelling Technique), operações são listadas na terceira parte da caixa de uma classe. Cada nome de operação pode ser seguida por detalhes opcionais, tais como lista de argumentos e tipo de retorno. A lista de argumentos é apresentada entre parênteses após o nome da operação. Uma lista de argumentos vazia indica que a operação não tem argumentos; da ausência da lista de argumentos não se pode concluir nada. Caso a operação retorne resultado, este não deve ser omitido &#8212; esta é a forma de distingui-la de operações que não retornam resultado.</p>
<p>Vamos exemplificar a linguagem.</p>
<h3>E pra que serve o Construtor?</h3>
<p>Um construtor tem uma função especial: ele serve para inicializar os atributos e é executado automaticamente sempre que você cria um novo objeto.<br />
Quando você especifica os atributos de uma classe, você apenas diz ao sistema algo como &#8220;objetos desta classe Pessoa vão ter uma variável chamada Nome que é do tipo String, uma variável chamada idade que é do tipo inteiro, etc, etc&#8221;. Mas estas variáveis não são criadas, elas só serão criadas no construtor. O construtor também pode receber parâmetro, desta forma, você pode passar para o construtor uma String contendo o nome da Pessoa que você está criando, sua idade, etc. Normalmente, a sintaxe é algo parecido com isto:</p>
<p>Pessoa joao := new Pessoa( &#8220;João&#8221;, 13 );</p>
<p>Este código gera um novo objeto chamado joao que é do tipo Pessoa e contem os valores &#8220;João&#8221; como nome e 13 como idade.</p>
<p>O mais importante é entender como funciona a comunicação entre os objetos, que sempre segue o seguinte fluxo:</p>
<p>-Um objeto A envia uma mensagem para o objeto B.<br />
-Objeto B verifica qual foi a mensagem que recebeu e executa sua ação correspondente. Esta ação está descrita no método que corresponde a mensagem recebida, e está dentro da Classe a qual este objeto pertence.</p>
<h3>Pacotes</h3>
<p>Falando da linguagem AS3, ela contém os seguintes pacotes:</p>
<p>•    adobe<br />
•    fl<br />
•    flash</p>
<p>Pacotes (packages) é um conjunto de classes. Na verdade, é uma pasta. Então, a grosso modo, um pacote é uma pasta com um monte de classes dentro. Mas, porque agrupar as classes em um pacote? Por uma questão: or-ga-ni-za-ção!</p>
<p>Vamos pegar, por exemplo, o pacote flash. Dentro deste, temos diversos sub-pacotes. Um destes sub-pacotes é o net, que contém um conjunto de classes para enviar e receber dados através de uma rede, como por exemplo, receber dados de um URL, gerenciar arquivos, etc.</p>
<p>Enfim, pacotes são uma forma de organizar melhor suas classes, a fim de encontrá-las facilmente quando precisar. Agora você sabe que, se precisar executar alguma tarefa relacionada a redes, irá procurar no pacote flash.net a classe que atende as suas necessidades.</p>
<p>Dê uma olhada pelas classes do Flash sempre que possível, para que você possa se ambientar com o que a linguagem tem a oferecer, e não ficar perdido quando precisar de algo.</p>
<p>Um bom caminho para dar uma olhada nas classes é o F1, ou o livedocs: <a href="http://help.adobe.com/en_US/AS3LCR/Flash_10.0/" target="_blank">http://help.adobe.com/en_US/AS3LCR/Flash_10.0/</a></p>
<h3>Especializações</h3>
<p>No mundo real, alguns objetos e classes podem ser descritos como casos especiais, ou especializações, de outros objetos e classes. Por exemplo, a classe Notebook Core 2 Duo, é uma especialização da Classe Notebook, que por sua vez é uma especialização da Classe Computadores. Não seria interessante, muito menos necessário que tudo que foi criado e descrito para Classe Computadores fosse copiado e colado para Classes subseqüentes como Notebook.</p>
<h3>Herança</h3>
<p>Herança é o mecanismo do paradigma de orientação a objetos que permite compartilhar atributos e operações entre classes baseada em um relacionamento hierárquico. Uma classe pode ser definida de forma genérica e depois refinada sucessivamente em termos de subclasses ou classes derivadas.</p>
<p>Cada subclasse incorpora, ou herda todas as propriedades de sua superclasse (ou classe base) e adiciona suas propriedades únicas e particulares. As propriedades da classe base não precisam ser repetidas em cada classe derivada. Esta capacidade de fatorar as propriedades comuns de diversas classes em uma superclasse pode reduzir dramaticamente a repetição de código em um projeto ou programa, sendo uma das principais vantagens da abordagem de orientação a objetos.</p>
<h3>Vantagens da POO</h3>
<p>- Os sistemas, em geral, possuem uma divisão de código um pouco mais lógica e melhor encapsulada do que a empregada nos sistemas não orientados a objetos. Isto torna a manutenção e extensão do código mais fácil e com menos riscos de inserção de bugs. Também é mais fácil reaproveitar o código.</p>
<p>- É mais fácil gerenciar o desenvolvimento deste tipo de software quando temos uma equipe grande. Podemos fazer uma especificação UML antes de iniciar o desenvolvimento do software em si, e em seguida dividirmos o sistema em classes e pacotes, e cada membro da equipe pode ficar responsável por desenvolver uma parte do sistema.<br />
Desvantagens da POO</p>
<p>- O aprendizado do paradigma de programação orientada a objetos é bem mais complicado no início do que os velhos sistemas procedurais. Para começar a programar é necessário ter estabelecido uma série de conceitos bastante complexos. Já na programação procedural tradicional, basta decorar meia dúzia de comandos e você já consegue fazer um programa simples.</p>
<p>- Dificilmente uma linguagem orientada a objetos conseguirá ter um desempenho em tempo de execução superior a linguagens não orientadas a objetos.</p>
<h3>Bibliografia</h3>
<p>Adobe ActionScript 3.0<br />
Linha de Código<br />
Mozart Petter<br />
Marcio Frayze David<br />
Wikipedia</p>
]]></content:encoded>
			<wfw:commentRss>http://www.joww.net/blog/2009/08/16/introducao-a-orientacao-a-objetos/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Iniciando Actionscript 3.0</title>
		<link>http://www.joww.net/blog/2009/08/10/iniciando-actionscript-3-0/</link>
		<comments>http://www.joww.net/blog/2009/08/10/iniciando-actionscript-3-0/#comments</comments>
		<pubDate>Mon, 10 Aug 2009 18:30:34 +0000</pubDate>
		<dc:creator>Johnatan Oliveira joww.net</dc:creator>
				<category><![CDATA[Action Script]]></category>
		<category><![CDATA[actionscript]]></category>
		<category><![CDATA[flash]]></category>

		<guid isPermaLink="false">http://www.joww.net/blog/?p=210</guid>
		<description><![CDATA[Iniciando Actionscript 3.0]]></description>
			<content:encoded><![CDATA[<p>Olá! Vou tentar apartir deste tutorial, passar sempre informações pertinentes sobre ActionScript 3.0, PHP e MySQL. Hoje vou tratar de as3.</p>
<p>Certamente a principal diferença entre as versões anteriores e o Actionscript 3.0 é que antes existiam diversos locais onde era possível a utilização dos códigos (timelines, movies, buttons, arquivos externos e etc). Hoje com o as3.0 a utilização é baseada em classes, onde os códigos são colocados dentro de métodos da classe.</p>
<p>No Actionscript 2.0:</p>
<div style="background-color:#393C40; border:thin solid #5B6066; padding:10px 10px 10px 10px">
<div class="code">
<pre class="actionscript3" style="font-family:monospace;"><span style="color: #B500F0; font-weight: bold;">class</span> <span class="style1">mx.transitions.Tween</span> {
}</pre>
</div>
</div>
<p>A  estrutura mínima de uma Classe quando programamos em Actionscript 3.0 é a seguinte:</p>
<div style="background-color:#393C40; border:thin solid #5B6066; padding:10px 10px 10px 10px">
<div class="code">
<pre class="actionscript3" style="font-family:monospace;"><span style="color: #B500F0; font-weight: bold;">package</span> {
    <span style="color: #0033ff; font-weight: bold;">public</span> <span style="color: #B500F0; font-weight: bold;">class</span> MinhaClasse {
        <span style="color: #00FB00;">// aqui, funções da minha classe</span>
    }
}</pre>
</div>
</div>
<p>Apenas uma  classe pública é permitida por classe. Outras classes podem ser declaradas no  mesmo arquivo, mas apenas uma pode ser pública.</p>
<p>É de extrema importância o conhecimento básico de  orientação a objetos, facilitará e muito o uso.</p>
<p>Uma classe de as3 é um arquivo com extensão “.as”  contendo o bloco de código. O nome do arquivo deve ser exatamente igual ao da  classe, incluindo diferenças entre maiúsculas e minúsculas.</p>
<p>No exemplo acima, o nome do meu arquivo seria “MinhaClasse.as”.</p>
<p>Todo projeto desenvolvido utilizando a framework Adobe  Flash tem como raiz a mesma pasta do arquivo FLA. Em nosso exemplo, eu devo  colocar o arquivo MinhaClasse.as no mesmo local que o FLA que irá utilizá-lo.</p>
<p>Você poderá utilizar pastas e subpastas, é para isso que  o Package serve, organização.</p>
<p>Por exemplo,  se você quiser utilizar o arquivo as dentro da pasta “aplicacao”, seu script  ficaria assim:</p>
<div style="background-color:#393C40; border:thin solid #5B6066; padding:10px 10px 10px 10px">
<div class="code">
<pre class="actionscript3" style="font-family:monospace;"><span style="color: #B500F0; font-weight: bold;">package</span> aplicacao {
    <span style="color: #0033ff; font-weight: bold;">public</span> <span style="color: #B500F0; font-weight: bold;">class</span> MinhaClasse {
        <span style="color: #00FB00;">// aqui, funções da minha classe</span>

    }
}</pre>
</div>
</div>
<p>Se fosse na  pasta “aplicacao”, subpasta “geral” o script deve ser mudado para:</p>
<div style="background-color:#393C40; border:thin solid #5B6066; padding:10px 10px 10px 10px">
<div class="code">
<pre class="actionscript3" style="font-family:monospace;"><span style="color: #B500F0; font-weight: bold;">package</span> aplicacao.geral {
    <span style="color: #0033ff; font-weight: bold;">public</span> <span style="color: #B500F0; font-weight: bold;">class</span> MinhaClasse {
        <span style="color: #00FB00;">// aqui, funções da minha classe</span>

    }
}</pre>
</div>
</div>
<p>Quando se  omite o package, a classe e definida por padrão como top-level.</p>
<p>Você sempre  terá que escrever em qual lugar a classe estará, isso é extremamente necessário  tanto para organização, quanto para funcionamento, sem esquecer das maiúsculas  e minúsculas.</p>
<h3>Duas classes  com mesmo nome!?</h3>
<p>Pode  acontecer. Caso você tenha duas classes com o mesmo nome, a utilização do  Package é essencial para não ocorrer erros no projeto. É só informar qual a  classe o o Package que você esta requisitando.</p>
<p>Antes de  começar a praticar, é importante o conhecimento sobre Orientação a Objetos, vou  falar um pouco sobre isso e logo depois a prática.</p>
<h3>Document Class</h3>
<p>Document  Class é como se fosse a Classe inicial do seu projeto. Mesmo que você esqueça  de criar a sua classe inicial, o flash criará uma para você automaticamente  durante o processo de compilação do projeto.</p>
<p>Nosso  objetivo é utilizar todo o projeto usando arquivos externos .as e não códigos desorganizados  dentro do arquivo .fla, então vamos sempre definir claramente nossa Document  Class.</p>
<h3>Extensão de  Classe</h3>
<p>A extensão  de uma classe, é uma das definições da Orientação a Objetos.</p>
<p>É importante saber o que se esta escrevendo e testando, por isso saber por que  usamos o “extends” na definição de uma classe é essencial.</p>
<p>Extender uma  classe é utilizar recursos de uma classe já existente, adicionando ou  modificando eventos. Assim tudo que existe na classe original continua funcionando  na classe que foi extendida.</p>
<p>Exemplificando:  Tenho a classe Animal e classe Gato. Sendo que Gato extends Animal, ou seja,  todas as características padrões instanciadas na classe Animal, serão  extendidas a classe Gato, porém as novas funções adicionadas em Gato, não serão  de Animal.</p>
<p>Finalizando,  quando eu compilo meu projeto .fla eu gero um swf, este é um MovieClip. O  MovieClip é uma Classe. A minha Document Class tem que funcionar como o  MovieClip, logo minha Document Class tem que ser uma extenção da Classe  MovieClip.</p>
<p>Exemplo:</p>
<div style="background-color:#393C40; border:thin solid #5B6066; padding:10px 10px 10px 10px">
<div class="code">
<pre class="actionscript3" style="font-family:monospace;"><span style="color: #B500F0; font-weight: bold;">package</span> {
	<span style="color: #0033ff; font-weight: bold;">import</span> <span>flash.display.MovieClip</span>
    <span style="color: #0033ff; font-weight: bold;">public</span> <span style="color: #B500F0; font-weight: bold;">class</span> MinhaClasse extends <span>MovieClip</span> {
        <span style="color: #00FB00;">// aqui, funções da minha classe</span>

    }
}</pre>
</div>
</div>
<p>Já diria Pelé!:  “entende!??”</p>
<p>Ops! Para  que aquele import? Eu tenho que dizer ao aplicativo, quem é a Classe MovieClip  que MinhaClasse vai extender!</p>
<p>Todas as  classes importadas devem ser definidas logo na abertura do package antes da  definição da classe.</p>
<p>Você poderá  usar a Classe Sprite (import flash.display.Sprite;), que é semelhante a classe  MovieClip, mas não possui uma timeline.</p>
<h3>Vamos a  prática!</h3>
<p>Vamos ao  famoso Hello World. Como diria &#8230;, vamos por partes, a muita coisa para ser  vista e testada.</p>
<div style="background-color:#393C40; border:thin solid #5B6066; padding:10px 10px 10px 10px">
<div class="code">
<pre class="actionscript3" style="font-family:monospace;"><span style="color: #B500F0; font-weight: bold;">package</span> {

	<span style="color: #0033ff; font-weight: bold;">import</span> <span>flash.display.MovieClip</span>

    <span style="color: #0033ff; font-weight: bold;">public</span> <span style="color: #B500F0; font-weight: bold;">class</span> MinhaClasse extends <span>MovieClip</span> {<span class="style1">
<strong>		<span style="color: #0033ff; font-weight: bold;">public</span></strong>  <span style="color: #00FB00;">function</span>  <span class="actionscript3" style="font-family:monospace;">MinhaClasse</span>() {
			trace("Hello World  joww!!");
  		}<strong></strong>
</span>	}
}</pre>
</div>
</div>
<p>Você deve ter percebido que criei uma function  com o mesmo nome da class, esta é uma função construtora que iniciará a classe,  o nome da função construtora deve ter exatamente o mesmo nome da classe (MinhaClasse).</p>
<p style="text-align: center;"><img class="alignnone size-full wp-image-226" title="settings" src="http://www.joww.net/blog/wp-content/uploads/2009/08/settings.jpg" alt="settings" width="454" height="288" /></p>
<p style="text-align: center;">No  inspetor de propriedades em “Document class:” coloque o nome da classe a ser  executada.</p>
<h3>Teste&#8230;</h3>
<p>Agora que  temos o nosso “MinhaClasse.as”, seguinte:</p>
<ol type="1">
<li>Crie um novo arquivo       FLA com ActionScript 3 e salve com um nome qualquer!</li>
<li>Coloque o arquivo “MinhaClasse.as”       na mesma pasta que o FLA;</li>
<li>Nas propriedades do FLA,       preencha o valor da Document Class apenas com a palavra MinhaClasse;</li>
<li>CTRL + Enter!</li>
</ol>
<p>Até a próxima pessoal!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.joww.net/blog/2009/08/10/iniciando-actionscript-3-0/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Flash: Photographer Stefano Bidini</title>
		<link>http://www.joww.net/blog/2009/08/06/flash-photographer-stefano-bidini/</link>
		<comments>http://www.joww.net/blog/2009/08/06/flash-photographer-stefano-bidini/#comments</comments>
		<pubDate>Thu, 06 Aug 2009 21:08:58 +0000</pubDate>
		<dc:creator>Johnatan Oliveira joww.net</dc:creator>
				<category><![CDATA[Action Script]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[fotografia]]></category>
		<category><![CDATA[newsite]]></category>
		<category><![CDATA[Tecnologia]]></category>

		<guid isPermaLink="false">http://www.joww.net/blog/?p=32</guid>
		<description><![CDATA[Achei inovador e de muito bom gosto. Assim defino o site do Fotógrafo Italiano Stefano Bidini, que trabalha principalmente em Milão. Com um layout Clean, usando Flash e vídeos dele mesmo, o fotógrafo demonstra seu maravilhoso trabalho. Confira: http://www.stefanobidini.com/]]></description>
			<content:encoded><![CDATA[<p>Achei inovador e de muito bom gosto. Assim defino o site do Fotógrafo Italiano Stefano Bidini, que trabalha principalmente em Milão.</p>
<p>Com um layout Clean, usando Flash e vídeos dele mesmo, o fotógrafo demonstra seu maravilhoso trabalho.</p>
<p>Confira: <a title="Stefano Bidini" href="http://www.stefanobidini.com/" target="_blank">http://www.stefanobidini.com/</a></p>
<p style="text-align: center;"><img class="aligncenter" title="stefano" src="http://www.joww.net/blog/wp-content/uploads/2009/08/stefano.jpg" alt="stefano" width="500" height="231" /></p>
<p style="text-align: center;"><img class="aligncenter size-full wp-image-33" title="stefano2" src="http://www.joww.net/blog/wp-content/uploads/2009/08/stefano2.jpg" alt="stefano2" width="500" height="231" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.joww.net/blog/2009/08/06/flash-photographer-stefano-bidini/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Flash: Site da Agência McCann Erickson</title>
		<link>http://www.joww.net/blog/2009/08/06/flash-site-da-agencia-mccann-erickson/</link>
		<comments>http://www.joww.net/blog/2009/08/06/flash-site-da-agencia-mccann-erickson/#comments</comments>
		<pubDate>Thu, 06 Aug 2009 20:54:47 +0000</pubDate>
		<dc:creator>Johnatan Oliveira joww.net</dc:creator>
				<category><![CDATA[Action Script]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[newsite]]></category>
		<category><![CDATA[propaganda]]></category>

		<guid isPermaLink="false">http://www.joww.net/blog/?p=29</guid>
		<description><![CDATA[Para quem conhecia o site antigo da agência Paulistana, com filiais em RJ e DF, McCann Erickson vai perceber uma mudança BRUSCA!!! Gostei, por isso estou postando!]]></description>
			<content:encoded><![CDATA[<p>Bom, não sei exatamente quando o site mudou, só sei que vi agora! kkk Não achei nenhuma notícia relacionado sobre o lançamento.</p>
<p>Para quem conhecia o site antigo da agência Paulistana, com filiais em RJ e DF, McCann Erickson vai perceber uma mudança BRUSCA!!! Gostei, por isso estou postando!</p>
<p>Acesse: <a title="Mccann Erickson" href="http://www.mccann.com.br/" target="_blank">http://www.mccann.com.br/</a></p>
<p><a href="http://www.mccann.com.br/"><img class="aligncenter size-full wp-image-30" title="Mccann" src="http://www.joww.net/blog/wp-content/uploads/2009/08/mccann.jpg" alt="Mccann" width="500" height="231" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.joww.net/blog/2009/08/06/flash-site-da-agencia-mccann-erickson/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
