<?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>Blog do Grupo de Desenvolvedores AS3 do Brasil</title>
	<atom:link href="http://as3devs.com.br/feed/" rel="self" type="application/rss+xml" />
	<link>http://as3devs.com.br</link>
	<description>Just another WordPress site</description>
	<lastBuildDate>Tue, 10 Jan 2012 14:27:44 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Jogando a toalha</title>
		<link>http://as3devs.com.br/2012/filipe-cunha/jogando-a-toalha/</link>
		<comments>http://as3devs.com.br/2012/filipe-cunha/jogando-a-toalha/#comments</comments>
		<pubDate>Tue, 10 Jan 2012 14:27:44 +0000</pubDate>
		<dc:creator>filipe.cunha</dc:creator>
				<category><![CDATA[notícias]]></category>

		<guid isPermaLink="false">http://as3devs.com.br/?p=630</guid>
		<description><![CDATA[Pessoas, Comunico que a partir de hoje não estou mais à frente do ASDEVs e deixo a bola apenas com o Jay Moretti. Em pouco mais de um ano fizemos muitas ações como: - Dois Flash Camps (Rio e São Paulo) - Grupo de estudos de Actionscript (aberto a todos e de graça) com 14 [...]]]></description>
			<content:encoded><![CDATA[<p>Pessoas,</p>
<p>Comunico que a partir de hoje não estou mais à frente do ASDEVs e deixo a bola apenas com o Jay Moretti.</p>
<div>Em pouco mais de um ano fizemos muitas ações como:</div>
<div>- Dois Flash Camps (Rio e São Paulo)</div>
<div>- Grupo de estudos de Actionscript (aberto a todos e de graça) com 14 gravações</div>
<div>- 31 palestras sobre Flash Plataform e tecnologias relacionadas</div>
<div>Devido à alguns reposicionamentos profissionais, não vou poder dedicar todo tempo que dedicava ao grupo e para fazer menos do que já fizemos até aqui, não me interessa <img src='http://as3devs.com.br/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </div>
<p>Foi muito legal a experiência como moderador do grupo e continuarei no chat do msn (grupo1337489@groupsim.com) junto com os vários bons desenvolvedores tirando dúvidas e ajudando quando puder.</p>
<p>Grande abraço,</p>
<p>Filipe Cunha</p>
]]></content:encoded>
			<wfw:commentRss>http://as3devs.com.br/2012/filipe-cunha/jogando-a-toalha/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mesa Redonda sobre Flash Plataform</title>
		<link>http://as3devs.com.br/2011/filipe-cunha/592/</link>
		<comments>http://as3devs.com.br/2011/filipe-cunha/592/#comments</comments>
		<pubDate>Wed, 16 Nov 2011 16:31:45 +0000</pubDate>
		<dc:creator>filipe.cunha</dc:creator>
				<category><![CDATA[notícias]]></category>

		<guid isPermaLink="false">http://as3devs.com.br/?p=592</guid>
		<description><![CDATA[Muitos desenvovledores da Plataforma Flash já criaram posts sobre a questão do Flash Player e Flex SDK. Amanhã às 21h, reuniremos todas essas opiniões no endereço https://experts.adobeconnect.com/_a204547676/mesa_redonda/ e todo mundo está mais do que convidado. Confira quem vai participar. Stefan Horochovec Vicente Maciel Jr Jay Moretti Fabio Vedovelli Bruno Ribeiro Joao Felipe (Justin Bieber) Lauro Santos Tofinha [...]]]></description>
			<content:encoded><![CDATA[<p>Muitos desenvovledores da Plataforma Flash já criaram posts sobre a questão do Flash Player e Flex SDK.<br />
Amanhã às 21h, reuniremos todas essas opiniões no endereço <a href="https://experts.adobeconnect.com/_a204547676/mesa_redonda/">https://experts.adobeconnect.com/_a204547676/mesa_redonda/</a> e todo mundo está mais do que convidado.</p>
<p>Confira quem vai participar.</p>
<p>Stefan Horochovec<br />
Vicente Maciel Jr<br />
Jay Moretti<br />
Fabio Vedovelli<br />
Bruno Ribeiro<br />
Joao Felipe (Justin Bieber)<br />
Lauro Santos<br />
Tofinha<br />
Igor Costa<br />
Odair Seixas<br />
Alex Affonso<br />
Fabio Flatschart<br />
Ystallonne Alves<br />
Neto Leal<br />
Filipe Cunha</p>
]]></content:encoded>
			<wfw:commentRss>http://as3devs.com.br/2011/filipe-cunha/592/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>A Adobe não matou o Flash, apenas quer definir um lugar para ele.</title>
		<link>http://as3devs.com.br/2011/filipe-cunha/a-adobe-nao-matou-o-flash-apenas-quer-definir-um-lugar-para-ele/</link>
		<comments>http://as3devs.com.br/2011/filipe-cunha/a-adobe-nao-matou-o-flash-apenas-quer-definir-um-lugar-para-ele/#comments</comments>
		<pubDate>Tue, 15 Nov 2011 18:37:31 +0000</pubDate>
		<dc:creator>filipe.cunha</dc:creator>
				<category><![CDATA[notícias]]></category>

		<guid isPermaLink="false">http://as3devs.com.br/?p=583</guid>
		<description><![CDATA[Então você se assustou com as declarações da Adobe semana passada, mas você sabe dizer porque exatamente? Não vou discutir aqui se a Adobe fez &#8220;a coisa certa&#8221; ao descontinuar o Flash Player para mobile por dois simples motivos: 1) A decisão já foi tomada 2) Isso é papo para o dia 19/11 no #FlashCampSP. [...]]]></description>
			<content:encoded><![CDATA[<p>Então você se assustou com as declarações da Adobe semana passada, mas você sabe dizer porque exatamente?</p>
<p>Não vou discutir aqui se a Adobe fez &#8220;a coisa certa&#8221; ao descontinuar o Flash Player para mobile por dois simples motivos:</p>
<p>1) A decisão já foi tomada</p>
<p>2) Isso é papo para o dia 19/11 no <a href="http://www.asdevs.com.br/flashcampsp">#FlashCampSP</a>.</p>
<p>Para quem não terá saco de ler o post até o final, já coloco aqui minha conclusão:</p>
<p>Sim, você terá que aprender HTML5 (e agregados) tão bem quanto você sabe Flash/Actionscript se você quiser continuar desenvolvendo front-end para internet e se você está puto com isso, terá dois trabalhos: Um de ficar puto e outro de deixar de ficar.</p>
<p>Vamos ao título do post: <strong>A Adobe não matou o Flash apenas quer definir um lugar para ele.</strong></p>
<p>Sejamos muito francos. Quem aqui já pensou em como seu site/aplicação, desenvolvido para o browser do desktop, ficaria no celular? Nós já ficamos putos em ter que pensar nas diferentes resoluções de monitores, layouts fluidos, resoluções mínimas, bla, bla, bla, quanto mais na tela do celular, que pede um projeto totalmente diferente.</p>
<p>Mesmo trabalhando com a plataforma Flash (entre desenvolvimento e design) há +-8 anos, nunca usei o fato do meu Android rodar Flash Player no browser para outra coisa que não fosse sacanear quem tem iPhone, pelo simples fato de que entrar em sites feitos em Flash no browser do celular nunca lembrou, nem de longe, a experiência que tenho no desktop por 2 motivos:</p>
<p>- A performance do Flash Player no dispositivo móvel é <strong>muito</strong> menor do que no desktop e segundo o post do <a href="http://www.mikechambers.com/blog/2011/11/11/clarifications-on-flash-player-for-mobile-browsers-the-flash-platform-and-the-future-of-flash/">Mike Chambers</a>, não estava nem próximo de se igualar.</p>
<p>- Tamanho da tela do celular é tão menor que o monitor que apenas dar zoom na tela ou colocar uma série de if/else if na programação não resolve. Tem que ter outro desenvolvimento, com uma leitura do projeto totalmente diferente, o que lembra a época das trevas de criar sites na versão HTML e na versão Flash.</p>
<p>Por muito tempo houveram coisas na internet que somente o Flash pôde oferecer ou oferecia de uma forma muito mais fácil, tanto para usuários como para desenvolvedores, como áudio, vídeo e animações vetoriais, etc.</p>
<p>Surge o HTML5 prometendo fazer algumas coisas que até então só o Flash fazia (e faz, quardada algumas proporções) sem depender de plugins, contudo que você tenha os browsers mais modernos para poder renderizar tudo corretamente.</p>
<p>Essa semana ouvi bastante de pessoas que fizeram sua carreira em cima da Plataforma Flash, coisas do tipo:</p>
<p>- Eu já sou bom o suficiente com o Flash, vou ter que recomeçar do zero com HTML5?</p>
<p>- Eu estava em um ambiente tão confortável (Flash Player) vou ter que voltar para guerra dos browsers?</p>
<p>- Voltar a programar em javascript depois de trabalhar com AS3 por tanto tempo é um puta retrocesso (Essa é minha).</p>
<p>- Porque eu não ouvi minha mãe e estudei Direito ou Medicina??</p>
<p>Esse tipo de sentimento de <strong>alguns</strong> na comunidade Flash somado aos comentários de pessoas que se dizem jornalistas e adoram anunciar que &#8220;O Flash morreu&#8221; sem nem saber de onde veio o tiro e ao total despreparo da Adobe em fazer os anuncios da semana passada, causaram uma boa bagunça na cabeça de algumas pessoas, principalmente de quem está começando na área e de lá até aqui não teve um dia que não viesse algum aluno/ex-aluno perguntar se vale apenas continuar aprendendo AS3.</p>
<p>&nbsp;</p>
<p><strong>Vamos aos fatos:</strong></p>
<p><strong>1)</strong> Adobe parou de investir esforços no FlashPlayer para dispositivos móveis</p>
<p><strong>Motivos:</strong></p>
<p>Segundo a Adobe, é muito caro manter uma equipe com foco no desenvolvimento do Flash Player para dispositivos móveis e o retorno em cima desse investimento era quase zero.</p>
<p>A Adobe viu que as pessoas não consomem aplicativos, de qualquer natureza, nos browsers e sim como apps, baixadas na App Store do seu dispositivo (Apple App Store, Android Market, Blackberry App World, etc).</p>
<p><strong>E agora?</strong></p>
<p>Segundo a Adobe, eles continuarão a investir no desenvolvimento do Adobe AIR, o que significa que você poderá continuar a desenvolver em Flash/Actioncript para dispositivos móveis, mas ao invés de colocar a aplicação no seu servidor, terá que empacota-lá e envia-lá às App Stores da vida e ao invés do usuário entrar no seu endereço no browser, ele vai baixar aquela aplicação para o celular/tablet.</p>
<p>&nbsp;</p>
<p><strong>2)</strong> A Adobe continuará a investir no Flash Player para browsers desktop e no Adobe AIR para mobile.</p>
<p><strong>Motivos:</strong></p>
<p>Como já disse, tem coisas que o Flash faz que o HTML5 já faz diretamente no navegador, sem necessidade de plugin (Flash Player), mas tem coisas que mesmo quando a especificação do HTML5 estiver finalizada, ele não fará nem de longe.</p>
<p>A versão 11 do Flash Player já oferece possibilidades de fazer coisas na internet que antes nem sonhavamos (basta ver os vários exemplos de <a href="http://www.adobe.com/devnet/flashplayer/stage3d.html">Stage3D</a>, <a href="http://www.adobe.com/devnet/actionscript/samples/interactivity_3.html">suporte à joystick</a>, entre outros).<br />
A Adobe já anunciou que <a href="http://blogs.adobe.com/ukchannelnews/2011/11/09/flash-to-focus-on-pc-browsing-and-mobile-apps/">está trabalhando na versão 12 do Player</a> para desktops e acaba de lançar a <a href="http://www.adobe.com/br/products/air.html">nova versão do Adobe AIR</a></p>
<p><strong>E agora?</strong></p>
<p>Porém a Adobe &#8220;sugeriu&#8221; uma mudança no escopo do uso do Flash que é para entrega de vídeo de uma forma que o HTML5 não pode, criação de games e desenvolvimento de Apps para mobile.</p>
<p>Eu disse que a Adobe &#8220;sugeriu&#8221; porque uma vez que o player continuará em desenvolvimento, tecnicamente, nada te impede de continuar a usar o Flash para desenvolver um site inteiro (por exemplo), como já é feito hoje em dia.</p>
<p>Mas não comemore ainda!</p>
<p>O fato de você <strong>poder</strong> <strong>fazer</strong> tecnicamente <strong>não</strong> quer dizer que você <strong>vá fazer</strong>, pois outras razões influenciam nessa decisão, como desde o cliente que ouviu falar que o Flash morreu e não quer que você faça aquele freela em uma tecnologia &#8220;morta&#8221;, ou seu chef, que <strong>muitas</strong> vezes não entende absolutamente nada do que você faz, mas ouviu em algum lugar que não é legal usar Flash, até que <strong>realmente</strong> o Flash não seja a melhor tecnologia para um determinado projeto.</p>
<p>&nbsp;</p>
<p><strong>3)</strong> <a href="http://blogs.adobe.com/conversations/2011/11/flash-focus.html">Adobe vai investir em ferramentas que facilitem a vida ao desenvolver com HTML5</a></p>
<p><strong>Motivo:</strong></p>
<p>O HTML5 é aplamente suportado pelos dispositivos móveis. Novamente, segundo <a href="http://www.mikechambers.com/blog/2011/11/11/clarifications-on-flash-player-for-mobile-browsers-the-flash-platform-and-the-future-of-flash/">Mike Chambers</a>, o HTML5 é hoje para os browsers de dispositivos móveis o que o Flash Player é para os browsers de desktops.</p>
<p>O Flash Player para mobile já não era lá essas coisas (vamos combinar né?) então a Adobe parou seus esforços em tentar fazer o plugin no mobile ter o mesmo rendimento dos desktops para focar em fazer melhores ferramentas que facilitarão a sua vida.</p>
<p>Outro anuncio que fez a comunidade da Plataforma Flash temer pelo futuro da tecnologia, foi que a Adobe cada vez mais portará recursos do Flash para o HTML5. Nada menos esperado já que eles anunciaram que vão investir pesado na tecnologia.</p>
<p>Isso não quer dizer que o HTML5 SERÁ o Flash, nem mesmo que o substituirá totalmente, mesmo por conta das suas arquiteturas que são muito diferentes.<br />
Ao que tudo indica, nada impede (e é bem provável) da Adobe fazer com que a IDE do Flash dê saída para muita coisa em HTML5&#8230;</p>
<p><strong>E agora?</strong></p>
<p>E agora meu amigo… ou você aprende HTML5 para continuar desenvolvendo os front-ends seja na sua agência seja nos seus freelas ou você continua apenas com seu conhecimento de Flash/Actionscript e se concentra no novo escopo que a Adobe quer dar p/ ele, vídeo, games e Apps para mobile (se é que essa moda vai pegar).</p>
<p>&nbsp;</p>
<p><strong>E o futuro?</strong></p>
<p>Continuo apostando na Plataforma Flash, não apenas por gostar muito de trabalhar com ela e pelo que ela me permite fazer como desenvolvedor, mas porque em nenhum momento a Adobe disse que a plataforma morrerá e eu também não vi nada que me levasse a crer nisso.</p>
<p>A  Adobe errou absurdamente em não dar a devida importância a esse comunicado. Perderam a chance de fazer um evento para explicar as coisas, por exemplo, dando chance para os jornalistas fazerem as perguntas que aos poucos foram se esclarecendo ao longo da semana. Assim evitariam várias especulações e conclusões infundadas de quem já não simpatiza com Flash.</p>
<p>Não é questão de esperar para ver o HTML5 vai vingar ou não… <strong>já vingou</strong>! E se você ainda está puto com isso, está na hora de deixar de ficar não acha?!</p>
<p>Acho que a comunidade da Plataforma Flash está fazendo muito #mimimi em cima disso, alguns por falta de informação, por medo de perder o posto de &#8220;único desenvolvedor de coisas legais da equipe&#8221; ou por preguiça/frustação de ter que voltar a mexer com HTML, CSS, javascript (porque na maioria das vezes, esse cara também já brincou com isso) e voltar p/ esse terreno bizarro que é a guerra dos browsers (com o Flash Player a gente não tem que se preocupar muito com isso).</p>
<p>Ao meu ver, o profissional de Flash continuará a ser muito solicitado por um bom tempo, pois longe de morrer, por <strong>muito tempo</strong> existirão coisas que somente o Flash/Actionscript poderá fazer ou fará de uma forma muito mais fácil e ou com melhor performance que o HTML5.</p>
<p>Mas o pulo do gato é você conhecer <strong>muito bem</strong> as duas tecnologias, seus poderes e limitações e saber quando usar o que e <strong>principalmente</strong> o que os dois podem fazer juntos. Na verdade, o cara que hoje só se limita ao Flash, já deveria rever essa postura há muito tempo!</p>
<p>É uma frase batida, mas totalmente válida: Temos que nos apegar à <strong>soluções</strong> e não à <strong>tecnologias</strong>, por mais passional que seja a comunidade do Flash (me incluo nisso).</p>
<p>Se você trabalha com internet e não tem disposição para estudar cosias novas, sempre dá tempo de mudar de profissão.</p>
<p>Para esclarecimentos sobre as mudanças com o <strong>Flex</strong>, passo a bola para o <a href="http://blog.mariojunior.com/">Mário Júnior</a>, <a href="http://www.jandersonfc.com/">Janderson FC</a> e <a href="http://www.igorcosta.com/blog/">Igor Costa</a> que já escrevem/gravaram bastante coisa à respeito.</p>
]]></content:encoded>
			<wfw:commentRss>http://as3devs.com.br/2011/filipe-cunha/a-adobe-nao-matou-o-flash-apenas-quer-definir-um-lugar-para-ele/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Mover objetos com seno e cosseno</title>
		<link>http://as3devs.com.br/2011/luizgadao/mover-objetos-com-seno-e-cosseno/</link>
		<comments>http://as3devs.com.br/2011/luizgadao/mover-objetos-com-seno-e-cosseno/#comments</comments>
		<pubDate>Fri, 04 Nov 2011 20:16:40 +0000</pubDate>
		<dc:creator>luiz_gadao</dc:creator>
				<category><![CDATA[notícias]]></category>

		<guid isPermaLink="false">http://as3devs.com.br/?p=520</guid>
		<description><![CDATA[O primeiro fato ao mover objetos com seno e cosseno e saber como funciona os ângulos no flash. O segundo fato e que sempre precisamos converte o ângulo em radiano. O terceiro fato e termos que ter um valor para o raio desse ângulo. Observações: O cosseno movimento objeto apenas na horizontal, ou seja, no [...]]]></description>
			<content:encoded><![CDATA[<p>O primeiro fato ao mover objetos com seno e cosseno e saber como funciona os ângulos no flash.<br />
<a href="http://as3devs.com.br/wp-content/uploads/2011/10/imagem_angulos.jpg"><img class="aligncenter size-full wp-image-521" src="http://as3devs.com.br/wp-content/uploads/2011/10/imagem_angulos.jpg" alt="" width="554" height="546" /></a></p>
<p>O segundo fato e que sempre precisamos converte o ângulo em radiano.<br />
O terceiro fato e termos que ter um valor para o raio desse ângulo.<br />
Observações:<br />
O cosseno movimento objeto apenas na horizontal, ou seja, no eixo x.<br />
O seno faz a movimentação no eixo y, ou seja, apenas na vertical.</p>
<p>Então, agora vamos abrir o Flash e criar um arquivo do tipo &#8220;ActionScript 3.0&#8243; de 500px de largura por 500px de altura a 30 fps. Você pode criar o arquivo do tamanho que preferir.<br />
Com a ferramenta &#8220;oval toll&#8221; ou pressionando &#8220;o&#8221; criei um círculo branco, e pressione f8 para converte-lo em <strong>Movie Clip</strong> com o ponto de registro no centro. Também definir que a classe responsável por esse círculo vai ser &#8220;Ball&#8221; isso possibilita que eu adicione esse círculo no palco por código.<br />
<img class="aligncenter size-full wp-image-535" src="http://as3devs.com.br/wp-content/uploads/2011/10/criando_circulo_2.jpg" alt="" width="595" height="360" /></p>
<p>Observe que na biblioteca está o movieclip que acabamos de criar e seu &#8220;linkage&#8221; é &#8220;Ball&#8221;. Se você não estiver visualizando a biblioteca pressione &#8220;f11&#8243;.<br />
Se o círculo criado estiver no palco click sobre ele e pressione &#8220;Delete&#8221; para que seja excluído.<br />
Pressione &#8220;f9&#8243; para que abra a janela &#8220;Actions&#8221; é onde vamos inserir nosso código.</p>
<pre class="brush: javascript">
var ball:MovieClip = new Ball(); //instanciando o objeto criado
var posX:Number = stage.stageWidth * .5; //capturando metade do palco na horizontal
var posY:Number = stage.stageHeight * .5; //capturando metade do palco na vertical

//posicionado e adicionando no centro do palco
ball.x = posX;
ball.y = posY;
addChild(ball);
</pre>
<p>Apenas adicionei o objeto no palco, ele ainda não tem nenhum movimento. Para adicionar movimento objeto, vou utilizar o evento &#8220;ENTER_FRAME&#8221; esse evento é atualizando de acordo com o fps definido. Ou seja se você definiu com 30 fps a função responsável por esse evento vai ser chamada 30 vezes por segundo.</p>
<p>Vamos definir também, o raio e o ângulo de movimento. Como não vamos trabalhar com o ângulo diretamente, utilizaremos uma fórmula que vai converter o ângulo em radiano. Que é o seguinte: ângulo multiplicado por (Math.PI / 180)</p>
<pre class="brush: javascript">
import flash.display.MovieClip;
import flash.events.Event;

var radius:Number = 50;
var angle:Number = 0;

var ball:MovieClip = new Ball(); //instanciando o objeto criado
var posX:Number = stage.stageWidth * .5; //capturando metade do palco na horizontal
var posY:Number = stage.stageHeight * .5; //capturando metade do palco na vertical

//posicionado e adicionando no centro do palco
ball.x = posX;
ball.y = posY;
addChild(ball);

//adicionando o evento que vai atualizar a posição de ball
ball.addEventListener(Event.ENTER_FRAME, updateBall);

function updateBall(e:Event):void
{
	var radians:Number = getRadians(angle);//converteno o ângulo em radiano
	ball.x = (Math.cos(radians) * radius) + posX;
	ball.y = (Math.sin(radians) * radius) + posY;	

	angle += 10; //incrementando o ângulo
	angle %= 360; //o resto da divisão do ângulo por 360, assim esse valor não ultrapassa 360
}

function getRadians(angle:Number):Number
{
	return angle * (Math.PI / 180);
}
</pre>
<p>Nas linhas 23 e 24 é onde acontece os cálculos referente a nova posição. Utilizei os métodos Math.cos e Math.sin para calcular o cosseno e o senno, passei como parâmetro o valor do ângulo convertido em radiano e multipliquei pelo valor do raio. O ângulo determina a direção em que o objeto vai traçar e o raio determina a velocidade com que o objeto vai traçar a direção!</p>
<p>Faça alguns teste alterando o valor do ângulo, raio e o valor com que o ângulo é incrementado.<br />
Observação:<br />
O diâmetro do movimento de &#8220;ball&#8221; é 2 vezes o valor do raio, sendo assim 2 * radius = 100.<br />
Você pode movimentar &#8220;ball&#8221; apenas na direção x ou y comentando as linhas 22 e 23.<br />
Você pode usar valores negativos para o valor do ângulo.<br />
Exemplo: -90 que seria exatamente o mesmo que 270.</p>
<p>Na próxima etapa desse tutorial, vou apresentar alguns exemplos práticos que utilizei na criação de uma game.<br />
Valew galera.</p>
]]></content:encoded>
			<wfw:commentRss>http://as3devs.com.br/2011/luizgadao/mover-objetos-com-seno-e-cosseno/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Flash Camp SP &#8211; 19 de novembro</title>
		<link>http://as3devs.com.br/2011/filipe-cunha/flash-camp-sp-19-de-novembro/</link>
		<comments>http://as3devs.com.br/2011/filipe-cunha/flash-camp-sp-19-de-novembro/#comments</comments>
		<pubDate>Sun, 30 Oct 2011 17:21:59 +0000</pubDate>
		<dc:creator>filipe.cunha</dc:creator>
				<category><![CDATA[Eventos]]></category>
		<category><![CDATA[notícias]]></category>

		<guid isPermaLink="false">http://as3devs.com.br/?p=543</guid>
		<description><![CDATA[Dia 19/11 acontecerá o Flash Camp SP, nos auditórios da Impacta em São Paulo. A agenda do evento conta com Lee Brimelow e Paul Trani, evangelistas da Adobe US para a plataforma Flash e vários nomes nacionais de peso, como Arthur Debert, Lucas Dupin, Janderson Cardoso, Leon Kulikowski, Gabriel Peart e Stefan Horochovec, além de Claus [...]]]></description>
			<content:encoded><![CDATA[<p>Dia <strong>19/11</strong> acontecerá o <strong>Flash Camp SP</strong>, nos auditórios da <a href="http://www.impacta.com.br">Impacta</a> em São Paulo.</p>
<p>A agenda do evento conta com<strong> Lee Brimelow</strong> e <strong>Paul Trani</strong>, evangelistas da Adobe US para a plataforma Flash e vários nomes nacionais de peso, como <strong>Arthur Debert</strong>, <strong>Lucas Dupin</strong>, <strong>Janderson Cardoso</strong>, <strong>Leon Kulikowski</strong>, <strong>Gabriel Peart</strong> e <strong>Stefan Horochovec</strong>, além de <strong>Claus Wahlers</strong>, um cara que já programava antes de você saber o que é um computador.</p>
<p>Os temas vão desde <strong>games em Flash</strong>, <strong>AIR para mobile e devices</strong> até <strong>arte generativa com HTML5</strong>, divididos em <strong>6 palestras</strong> e <strong>4 workshops</strong> em um dia inteiro dedicado a fazer você melhorar o desempenho e qualidade das suas aplicações!</p>
<p>Porque você deve sair de casa em um sábado e participar do evento?<br />
<strong>1)</strong> O Brasil já tem tão poucos eventos dedicados ao desenvolvimento de aplicações <strong>RIA</strong> que se você tem algum contato com projetos desse tipo, não deveria nem precisar de motivos para se convencer!</p>
<p><strong>2)</strong> A agenda do evento foi montada para que todos tirem proveitos das palestras/workshops, <strong>independente do nível de conhecimento</strong>.</p>
<p><strong>3)</strong> O custo do evento é menor do que aquele jantar com a namorada no Japonês. Certamente é melhor o jantar ao invés ver um monte de nerd o dia todo, mas, a não ser que sua namorada seja sua chefe ou você seja Chef de outro restaurante , o japonês não te ajudará profisisonalmente <img src='http://as3devs.com.br/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><strong>4)</strong> O evento encerra em uma <strong>mesa redonda</strong> com todos os palestrantes. Não é todo dia que se tem a chance de fazer perguntas diretamente para essas personalidades. Quer saber o que esses caras fizeram para chegar onde estão? É só perguntar.</p>
<p><strong>5)</strong> Quer trocar de emprego ou está precisando de freela?? Lá estarão vários outros profissionais da mesma área que certamente conhecem uma empresa procurando alguém para contratação ou freela.</p>
<p><strong>6) </strong>Quer mais motivos? Aparece lá na Impacta dia 19/11 que nós te mostramos.</p>
<p>Mais informações em <a href="http://asdevs.com.br/flashcampsp">asdevs.com.br/flashcampsp</a></p>
]]></content:encoded>
			<wfw:commentRss>http://as3devs.com.br/2011/filipe-cunha/flash-camp-sp-19-de-novembro/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Criação de um sitemap.xml</title>
		<link>http://as3devs.com.br/2011/sandrosilva/criacao-de-um-sitemap-xml/</link>
		<comments>http://as3devs.com.br/2011/sandrosilva/criacao-de-um-sitemap-xml/#comments</comments>
		<pubDate>Fri, 02 Sep 2011 03:28:00 +0000</pubDate>
		<dc:creator>SandroSilva</dc:creator>
				<category><![CDATA[notícias]]></category>

		<guid isPermaLink="false">http://as3devs.com.br/?p=495</guid>
		<description><![CDATA[Saudações! Vimos no último post sobre SEO e FLASH como funciona a indexação de sites pelo Google, e conforme vimos no link onde o prórpio Google anúncia melhorias na indexação do Flash, é muito importante disposnibilizarmos um Sitemap em XML que deve ser hospedado na raiz (root) do website para facilitar o acesso do Google [...]]]></description>
			<content:encoded><![CDATA[<h1><span style="font-size: 13px;font-weight: normal">Saudações! </span></h1>
<p>Vimos no último post sobre   <a href="http://www.sandrosilva.com.br/post/3996114049/indexa-o-de-flash-pelo-google">SEO e FLASH</a> como funciona a indexação de sites pelo Google, e conforme vimos no <a href="http://googlewebmastercentral.blogspot.com/2010/11/what-feeling-even-better-indexing-of.html" target="_blank">link onde o prórpio Google anúncia melhorias na indexação do Flash</a>, é muito importante disposnibilizarmos um Sitemap em XML que deve ser hospedado na raiz (root) do website para facilitar o acesso do Google aos conteúdos de nosso site.</p>
<p>Segue abaixo um exemplo de Sitemap XML para ser usado em um site em Flash que usa  SWFADdress e SWFObject.</p>
<pre>&lt;/?xml version="1.0" encoding="UTF-8"?&gt;
	&lt;urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"&gt;
		&lt;url&gt;
			&lt;loc&gt;http://www.seusite.com.br/#/home/&lt;/loc&gt;
            <span>		</span>&lt;lastmod&gt;201-01-01&lt;/lastmod&gt;
			&lt;changefreq&gt;monthly&lt;/changefreq&gt;
			&lt;priority&gt;1.0&lt;/priority&gt;
		&lt;/url&gt;
		&lt;url&gt;
			&lt;loc&gt;http://www.seusite.com.br/#/contato/&lt;/loc&gt;
            <span>		</span>&lt;lastmod&gt;201-01-01&lt;/lastmod&gt;
			&lt;changefreq&gt;monthly&lt;/changefreq&gt;
			&lt;priority&gt;0.8&lt;/priority&gt;
		&lt;/url&gt;
	&lt;/urlset&gt;</pre>
<p>Vejamos as partes e nós mais importantes deste XML:</p>
<pre>&lt;/?xml version="1.0" encoding="UTF-8"?&gt;</pre>
<p>é o cabeçalho do documento XML.</p>
<pre>&lt;urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"&gt;</pre>
<p>encapsula o XML e mostra a referência do protocolo</p>
<pre>&lt;url&gt;</pre>
<p>Nó inicial para entrada das outras tags.</p>
<pre>&lt;loc&gt;http://www.seusite.com.br/#/contato/&lt;/loc&gt;</pre>
<p>Aqui você coloca a URL da sua página, note que o endereço com &#8220;#&#8221; é justamento o endereço que nos dá o retorno do SWFADdress para dentro do conteúdo de determinada página, neste caso contato.<br />
Neste nó do XML, podemos ter até 2,048 caracteres.</p>
<pre>&lt;lastmod&gt;201-01-01&lt;/lastmod&gt;</pre>
<p>Aqui inserimos a data de última modificação da página. Atentar para o formato ANO/MÊS/DIA, já que é o &#8220;W3C Datatime format&#8221;.</p>
<pre>&lt;changefreq&gt;monthly&lt;/changefreq&gt;</pre>
<p>Neste nó colocamos com que frequência a página é alterada, é aconselhado colocar o valor correto neste parâmetro, para evitar que ela não seja ignorada pelo crawler do motor de busca.<br />
Os valores podem ser os um dos seguintes: always,hourly,daily,weekly,monthly,yearly,never.</p>
<pre>&lt;priority&gt;1.0&lt;/priority&gt;</pre>
<p>Na tag acima temos onde darmos a prioridae para a URL. Esta prioridade vai de 0.0 até 1.0. O valor padrão, quando este parâmetro falta, é de 0.5.</p>
<p>Obviamente, que se tivermos mais páginas  no site, tanto maior será a quantidade de nós que terá este XML. É adequado fazer um nó para cada página no site.<br />
Para mais informações sobre este protocolo, você pode acessar o link abaixo:<br />
<a href="http://www.sitemaps.org/protocol.php">http://www.sitemaps.org/protocol.php</a></p>
<p>O próximo passo é acessar e utilizar a ferramenta de webmaster do Google.</p>
]]></content:encoded>
			<wfw:commentRss>http://as3devs.com.br/2011/sandrosilva/criacao-de-um-sitemap-xml/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Indexação de Conteúdo em Flash (SWF) pelo Google</title>
		<link>http://as3devs.com.br/2011/sandrosilva/indexacao-de-conteudo-em-flash-swf-pelo-google/</link>
		<comments>http://as3devs.com.br/2011/sandrosilva/indexacao-de-conteudo-em-flash-swf-pelo-google/#comments</comments>
		<pubDate>Fri, 02 Sep 2011 03:27:25 +0000</pubDate>
		<dc:creator>SandroSilva</dc:creator>
				<category><![CDATA[SEO]]></category>

		<guid isPermaLink="false">http://as3devs.com.br/?p=493</guid>
		<description><![CDATA[Saudações Amigos desenvolvedores e todos aqueles que trabalham com a Plataforma Flash. Já é de algum tempo que que o Google vem indexando conteúdo de SWF e sua busca. Porém ao longo dos últimos anos tivemos mais algumas novidade e melhorias nesta indexação. Agora o Google indexa muito mais conteúdo do SWF: tais como textos, [...]]]></description>
			<content:encoded><![CDATA[<h1><span style="font-size: 13px;font-weight: normal">Saudações Amigos <strong>desenvolvedores</strong> e todos aqueles que trabalham com a <strong>Plataforma Flash</strong>.</span></h1>
<p>Já é de algum tempo que que o <strong>Google</strong> vem indexando conteúdo de <strong>SWF</strong> e sua busca.<br />
Porém ao longo dos últimos anos tivemos mais algumas novidade e melhorias nesta indexação.</p>
<p>Agora o Google indexa muito mais conteúdo do <strong>SWF</strong>: tais como textos, links e além disso, pode indexar os links dentro do conteúdo em <strong>SWF</strong>.<br />
No entanto estas mudanças são melhores suportadas a partir do <strong>Flash Player 10.1</strong>, ou seja, sites muito antigos com versão de Flash Player inferiores, muito possivelmente não terão estas mudanças verificadas na busca e indexação.</p>
<p>Mas comforme segue, é ideal que cada página tenha uma URL única e que a mesma seja cadastrada em um <strong>SiteMap</strong> feito em <strong>XML</strong> e que os links de cada página em <strong>SWF</strong> e que este mesmo <strong>SiteMap</strong> seja colocado corretamente dentro do <a href="https://www.google.com/webmasters/tools/home?hl=pt-BR" target="_blank">Google Webmasters Tools</a>.<br />
Estas URLs únicas são facilmente conseguidas através do <strong>SWFAddress</strong>, conforme vimos no post anterior sobre <strong>SEO e Flash</strong>.<br />
Este procedimento é o mesmo usado para sites feitos totalmente em <strong>HTML</strong>.</p>
<h2>O que o Google indexa do Flash?</h2>
<p>- Texto Estático;<br />
- Texto Dinâmico;<br />
- URLs Internas;<br />
- URLs externas;<br />
- XML carregado dentro do SWF;<br />
- HTML carregado dentro do SWF;<br />
- SWFs carregados dentro do SWF pai.</p>
<p>Use o <strong>SWFObjetc</strong> para incorporar o <strong>SWF</strong> no <strong>HTML</strong>!<br />
Não é todo <strong>Javascript</strong> que o <strong>Google</strong> consegue ler.</p>
<p>Muito contra vontade, muitos profissionais de SEO e HTML terão que aceitar que coom esta nova indexação é mais fácil uma animação em <strong>Flash</strong> no site ter seus links e textos indexados do que uma imagem em JPG, PNG ou GIF.</p>
<p>Referências:<br />
<a href="http://googlewebmastercentral.blogspot.com/2008/06/improved-flash-indexing.html" target="_blank">http://googlewebmastercentral.blogspot.com/2008/06/improved-flash-indexing.html</a><br />
<a href="http://googlewebmastercentral.blogspot.com/2009/06/flash-indexing-with-external-resource.html" target="_blank">http://googlewebmastercentral.blogspot.com/2009/06/flash-indexing-with-external-resource.html </a><br />
<a href="http://googlewebmastercentral.blogspot.com/2010/11/what-feeling-even-better-indexing-of.html" target="_blank">http://googlewebmastercentral.blogspot.com/2010/11/what-feeling-even-better-indexing-of.html </a></p>
<p><a href="http://www.sandrosilva.com.br/" target="_blank">Sandro Silva</a><br />
<a href="http://twitter.com/sandrilho" target="_blank">@sandrilho</a><br />
<a href="http://sandrosilva.tumblr.com/" target="_blank">sandrosilva.tumblr.com </a></p>
]]></content:encoded>
			<wfw:commentRss>http://as3devs.com.br/2011/sandrosilva/indexacao-de-conteudo-em-flash-swf-pelo-google/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>As metaTags &#8211; SEO e FLASH</title>
		<link>http://as3devs.com.br/2011/sandrosilva/as-metatags-seo-e-flash/</link>
		<comments>http://as3devs.com.br/2011/sandrosilva/as-metatags-seo-e-flash/#comments</comments>
		<pubDate>Thu, 01 Sep 2011 18:22:26 +0000</pubDate>
		<dc:creator>SandroSilva</dc:creator>
				<category><![CDATA[SEO]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[seo]]></category>

		<guid isPermaLink="false">http://as3devs.com.br/?p=188</guid>
		<description><![CDATA[Saudações caros senhores do As3! Estou de volta para continuar na sequência de nossos posts sobre SEO e Flash. Hoje veremos a parte de META TAGS e a sua importância para sites feitos em Flash e o que não poderemos colocar no flash em certas tags. Meta tags são muito importantes no desenvolvimento do site, [...]]]></description>
			<content:encoded><![CDATA[<p>Saudações caros senhores do As3!</p>
<p>Estou de volta para continuar na sequência de nossos posts sobre <strong>SEO</strong> e <strong>Flash</strong>.</p>
<p>Hoje veremos a parte de <strong>META TAGS</strong> e a sua importância para sites feitos em Flash e o que não poderemos colocar no flash em certas tags.</p>
<p><strong>Meta tags</strong> são muito importantes no desenvolvimento do site, pois são destas tags em HTML que os sites de buscas tiram algumas informações vitais do website, onde chamarão a atenção de quem as visualiza, como já vimos no post anterior, bem como um melhor posicionamento no termo de procura digitado.</p>
<p>Neste caso os sites em Flash tem uma desvantagem, pois geralmente só é feito em uma página a os links são feitos através de loadMovie ou por frames dentro do SWF.</p>
<p>Assim os sites em Flash tem pouca abrangência em <strong>títulos</strong> e <strong>descrição</strong> de um site, pois só apresentam uma página HTML para contê-los, enquanto sites de HTML podem variar de página a página.</p>
<p>Convenhamos, fazer um site em <strong>Flash</strong> e colocar uma parte em cada HTML diferente fica feio demais, quem faz isso deveria fazer o site em HTML.</p>
<p>Todas as tags baixo ficarão entra a TAG &lt;head&gt; e o fechamento dela &lt;/head&gt;:</p>
<p><strong>1 &#8211; &lt;tittle&gt;PALAVRAS-CHAVE &#8211; empresa&lt;/tittle&gt;</strong></p>
<p>Muito cuidado ao trabalhar com o <strong>título</strong>, aqui está a parte mais importante do teu site para o Google e outros sites de busca em geral.</p>
<p>Aqui conforme o exemplo acima deveremos colocar <strong>palavras-chave</strong> primeiro e depois o nome da empresa ou do relativo dono do site, por ordem de relevância.</p>
<p>Aqui o ideal é que o texto não ultrapasse 70 caracteres.</p>
<p>Por exemplo: <strong>&lt;tittle&gt;</strong>Restaurante de Frutos do Mar em São Paulo &#8211; Tramontini<strong>&lt;/tittle&gt;</strong></p>
<p>No exemplo acima as <strong>palavras-chave</strong> são: restaurante, frutos do mar e São Paulo.</p>
<p>Claro que o interessante é você caprichar muito mais no <strong>título</strong> e pensar como usuário do Google na hora da pesquisa e jogar com algumas palavras chaves que mais combinem com o conteúdo do site.</p>
<p>Como <strong>título</strong> deixe uma frase que faça sentido, pois digitando algo sem sentido não será em nada atraente para um click de mouse no Google, Yahoo, Bing.</p>
<p>Nunca deixe como <strong>título</strong> algo que não tenha nada haver com o website em questão, contará pontos negativos para você.</p>
<p><strong>2 &#8211; &lt;meta http-equiv=”expires” content=”0” /&gt;</strong></p>
<p>Não tão importante quanto a primeira, esta tag avisa quando a página irá expirar.<br />
Caso você queira marcar ela para expirar algum dia nos sites de busca, você poderá marcar conforme exemplo abaixo:</p>
<p>&lt;meta http-equiv=”expires” content=”Tue, 17 Oct 2011 00:00:00 GMT” /&gt;</p>
<p><strong>3 &#8211; &lt;meta name=&#8221;robots&#8221; content=&#8221;follow,index&#8221;&gt;</strong></p>
<p>Esta<br />
meta tag é na verdade era mais importantes para sites em HTML, mas com as mudanças recentes do Google já é importante para nós.</p>
<p>Ela indexa esta página, e os outros links que estão na página, no caso dentro do SWF.</p>
<p>Exemplos abaixo:</p>
<p><strong>&lt;meta name=&#8221;robots&#8221; content=&#8221;index,follow&#8221;&gt;</strong></p>
<p>Indexa a página inicial e todos os links nela contida.</p>
<p><strong>&lt;meta name=&#8221;robots&#8221; content=&#8221;noindex,follow&#8221;&gt;</strong></p>
<p>Não indexa a página inicial, mas indexa todos os links nela contida.</p>
<p><strong>&lt;meta name=&#8221;robots&#8221; content=&#8221;index,nofollow&#8221;&gt;</strong></p>
<p>Indexa a página inicial, mas nenhum link existente nela.</p>
<p><strong>&lt;meta name=&#8221;robots&#8221; content=&#8221;noindex,nofollow&#8221;&gt;</strong></p>
<p>Não indexa nem a página inicial e nem seus links.</p>
<p>Indexar os links que você tem no site é opção sua, mas tenha em mente que links externos podem detonar o PageRank do teu site.<br />
<strong>4 &#8211; &lt;meta name=&#8221;description&#8221; content=&#8221;texto sobre o que é a página ou site.&#8221;&gt;</strong></p>
<p>Outra <strong>Meta tag</strong> importantíssima para nós, aqui você terá que descrever o conteúdo do site, também pensando naquilo que o usuário irá procurar nos sites de buscas.</p>
<p>Você tem que colocar na descrição algumas palavras chaves que já tenham no <strong>Título</strong> do website e também tenham no conteúdo do website, para reforçar a importância.</p>
<p>Este texto de descrição será o que aparecerá logo abaixo do <strong>Título</strong> do site no Google, assim, escreva algo <strong>atraente</strong> e que faça algum sentido.</p>
<p>Exemplo:</p>
<p>&lt;meta name=&#8221;Description&#8221; content=&#8221;Restaurante especializado em Frutos do Mar em São Paulo com larga carta de vinhos e várias pções de pagamento.&#8221; / &gt;</p>
<p>No exemplo acima as <strong>palavras-chave</strong> são: restaurante, frutos do mar e São Paulo, novamente, reforçando o <strong>título</strong>.</p>
<p>Aqui o ideal é que o texto não ultrapasse 155 caracteres.</p>
<p><strong>5 &#8211; &lt;meta name=&#8221;keywords&#8221; content=&#8221;palavras-chave&#8221;&gt;</strong></p>
<p>Esta aqui já foi declarada em desuso para o Google, porém não para outros sites de busca, pelo menos não declararam nada que não usam maiis como referência para as buscas.</p>
<p>Mas aqui você pode colocar algumas palavras-chave que serão os termos onde você se guiará para desenvolvimento de um bom título e uma boa descrição para o site.</p>
<p>Exemplo:</p>
<p>&lt;meta name=&#8221;Keywords&#8221; content=&#8221;Restaurante, frutos do mar, São Paulo, SP, jantar, almoço&#8221; /&gt;</p>
<p>Aqui o ideal é que o texto não ultrapasse 200 caracteres.</p>
<p><strong>6 &#8211; &lt;meta name=&#8221;generator&#8221; content=&#8221;programa &#8211; Flash&#8221;&gt;</strong></p>
<p>Meta name generator é onde declaramos o programa usado para desenvolvimeno do site, no caso aqui, coloco <strong>Flash</strong>.</p>
<p><strong>7 &#8211; &lt;meta name=&#8221;author &#8220;content=&#8221;Sandro Silva&#8221;&gt;</strong></p>
<p><strong> </strong></p>
<p><strong> </strong>A meta tag author é explícita em seu significado, no caso aqui colocaremos o nome do autor do website, no caso, você ou a agência onde você trabalha.</p>
<p>Por hoje é isto galera do Flash,  FDT, FlashDeveloper.</p>
<p>No meu próximo post entrarei em assuntos um pouco mais avançados com a maravilhosa ferramenta<br />
<strong>SWFAddress</strong>, e a possibilidade de indexação de vários links para um site só em <strong>Flash</strong>.</p>
<p>Até mais!</p>
]]></content:encoded>
			<wfw:commentRss>http://as3devs.com.br/2011/sandrosilva/as-metatags-seo-e-flash/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Lendo arquivos com compressão ZIP pelo Flash</title>
		<link>http://as3devs.com.br/2011/marcosbitetti/lendo-arquivos-com-compressao-zip-pelo-flash/</link>
		<comments>http://as3devs.com.br/2011/marcosbitetti/lendo-arquivos-com-compressao-zip-pelo-flash/#comments</comments>
		<pubDate>Wed, 01 Jun 2011 18:37:22 +0000</pubDate>
		<dc:creator>Bitetti</dc:creator>
				<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[as3]]></category>
		<category><![CDATA[flash]]></category>

		<guid isPermaLink="false">http://as3devs.com.br/?p=302</guid>
		<description><![CDATA[Olá galera, este é meu primeiro post aqui neste blog. E vou começar explorando uma necessidade bem comum atualmente, a compressão de dados. Vou sempre ser o mais curto possível, mas não irei deixar os newbies na mão. &#160; E vou começar explorando uma necessidade bem comum atualmente: a compressão de dados.Vou usar como exemplo [...]]]></description>
			<content:encoded><![CDATA[<p>Olá galera, este é meu primeiro post aqui neste blog.</p>
<p>E vou começar explorando uma necessidade bem comum atualmente, a compressão de dados.</p>
<p>Vou sempre ser o mais curto possível, mas não irei deixar os newbies na mão.</p>
<p>&nbsp;</p>
<p>E vou começar explorando uma necessidade bem comum atualmente: a compressão de dados.Vou usar como exemplo um projeto meu que precisou fazer leitura num arquivo comprimido em ZIP gerado pelo <a href="http://www.xmind.net/">XMind</a>.<span id="more-302"></span>Tem pressa e sabe porque quer comprimir dados <a href="#criandoocodigo">pule o texto abaixo</a>.</p>
<p>&nbsp;</p>
<h2>Comprimir dados tem mesmo vantagem hoje em dia?</h2>
<p>Você pode fazer aquela analise clássica dizendo que a Internet hoje permite maior transferência de dados e ficar reduzindo o tamanho de arquivos é bobagem, muitas agências de publicidade alegam isso.</p>
<p>Mas na realidade temos o fato real de que nem todos possuem aquela banda larga linda, existe a sobrecarga de transmissão no servidor e tem a necessidade de termos um trabalho mais protegido das mãos de gente maliciosa.</p>
<p>&nbsp;</p>
<h2>Onde eu uso isso?</h2>
<p>Um cenário típico é quando precisamos enviar um XML extenso, como uma lista com 10.000 registros ou um arquivo Collada para usar com 3D por exemplo. Comprimi-la nos dá um arquivo em média 10% menor que o original.</p>
<p>&nbsp;</p>
<h2>Quem realmente usa isso?</h2>
<p>Alguns exemplos de arquivos que são na verdade arquivos ZIP com uma terminação diferente são:</p>
<ul>
<li>Java (.jar, .war)</li>
<li>Google Earth (.kmz)</li>
<li>Open Raster (.ora)</li>
<li>XMind (.xmind)</li>
</ul>
<p>&nbsp;</p>
<p>Só vou usar isso para comprimir os dados ou tem mais  alguma outra&#8230;</p>
<p>&nbsp;</p>
<h2>vantagem além do tamanho?</h2>
<p>1) Todo arquivo costuma ser um grupo de estruturas com pastas e informações organizadas.</p>
<p>Como já vem organizados nós passamos ele para a memória muito mais rápido e podemos fazer alterações no esquema de dados muito praticamente.</p>
<p>&nbsp;</p>
<p>2) Segurança, pois os dados passam pela rede em forma incompreensível para humanos. Além de você poder usar uma biblioteca de criptografia também.</p>
<p>&nbsp;</p>
<p>Já falei o suficiente para convencer, então vamos a&#8230;</p>
<p>&nbsp;</p>
<h2>Implementação em um caso de uso</h2>
<p><img style="float: left;margin: 8px" src="https://lh5.googleusercontent.com/_yqRkvDx98Fs/TYbVH9wHDQI/AAAAAAAABtk/k7ZkXkGqwlM/xmind2lua.jpg" alt="" width="261" height="380" /></p>
<p>Isso surgiu quando eu procurei uma ferramenta gráfica para trabalhar com diálogos dos personagens de um jogo.<br />
Precisava de um jeito fácil de montar os balões e desvios condicionais. Escolhi o XMind, um famoso editor de <a href="http://pt.wikipedia.org/wiki/Mapa_mental">Mapas Mentais</a>.</p>
<p>Todos os editores de mapas mentais usam um arquivo XML, bastaria exportar do XMind. No entanto isso acarreta um trabalho adicional, um terceiro arquivo de lixo que pode ocasionar problemas com versionamento e limpeza. (E meu jogo anda com uns 6.000 arquivos de produção).</p>
<p>Mas uma rápida pesquisa e descobri que formato do XMind nada mais é que um XML dentro de um ZIP&#8230; Tcha-ram, Meus problemas se acabaram. Basta ler o arquivo e interpretar o XML como o do formato mais simples.Assim eu ganho velocidade e limpeza.</p>
<h2><a name="criandoocodigo"></a>Criando nosso código</h2>
<p><img style="float: right;margin: 8px" src="https://lh6.googleusercontent.com/_yqRkvDx98Fs/TYbVIREqOJI/AAAAAAAABto/Qw2Al6iMqgs/Captura_de_tela-269.jpg" alt="" width="316" height="499" /></p>
<h3>Você vai precisar:</h3>
<p><a href="http://opensource.adobe.com/wiki/display/flexsdk/Download+Flex+4">Flex 4.0</a></p>
<p>Flash Develop (ultimo release, baixe <a href="http://www.flashdevelop.org/community/viewtopic.php?t=2574">neste forum</a>)</p>
<p><a href="http://nochump.com/blog/wp-content/uploads/2008/11/nochump-ziplib-105-dist.zip">nochump-ziplib-105-dist.zip</a></p>
<p>&nbsp;</p>
<p>Criei um mxml para ser a cara da aplicação.</p>
<p>Coisa pouca, um campo para mostrar o thumbnail, uma aba para selecionar o arquivo origem e o destino, uma aba para mostrar a saida do depurador, e uma para erros.</p>
<p>Coloquei o código no Pastebin.com</p>
<p><a href="http://pastebin.com/akaExS3x">http://pastebin.com/akaExS3x</a></p>
<p>&nbsp;</p>
<h3>Feita a interface, vamos ao que interessa</h3>
<p>Instalei a biblioteca simplesmente copiando o .swc na pasta /lib e clicando com o direito no arqu</p>
<p>ivo escolhi a opção &#8220;add to library&#8221;.</p>
<p>&nbsp;</p>
<p>A classe de trabalho é simples ela herda a classe EventDispatcher isso quer dizer que recebe e manda eventos.<br />
Como sera lido um XML criei a lista de namespaces usado no documento.</p>
<pre><span style="color: #333399">//mamespaces</span></pre>
<pre><span style="color: #333399">private var xmind:Namespace = new Namespace("urn:xmind:xmap:xmlns:content:2.0");		</span></pre>
<pre><span style="color: #333399">private var fo:Namespace = new Namespace("http://www.w3.org/1999/XSL/Format");		</span></pre>
<pre><span style="color: #333399">private var svg:Namespace = new Namespace("http://www.w3.org/2000/svg");</span></pre>
<pre><span style="color: #333399">private var xhtml:Namespace = new Namespace("http://www.w3.org/1999/xhtml");</span></pre>
<pre><span style="color: #333399">private var xlink:Namespace = new Namespace("http://www.w3.org/1999/xlink");</span></pre>
<p>&nbsp;</p>
<p>A classe funciona instanciando-se um objeto e usando o método load como é de costume.</p>
<p>Você pode adicionar eventos à ela, com eu fiz no mxml.</p>
<pre><span style="color: #000080">parser.load( new URLRequest( "mind1.xmind" ) );	</span></pre>
<pre><span style="color: #000080">parser.addEventListener( Event.COMPLETE, added );</span></pre>
<p>No carregamento crio um objeto ZipFile, e descarto o URL Loader usando o System.gc().</p>
<p>&nbsp;</p>
<h3>A biblioteca em ação:</h3>
<p>Cada entrada no Zip é chamada de ZipEntry.</p>
<p>Basta correr as entradas do arquivo. No caso do padrão XMind existem arquivos especificos.</p>
<p>Este é o &#8220;coração&#8221; do leitor de arquivos:</p>
<pre><span style="color: #000080">private function loaderDone( e:Event ):void</span></pre>
<pre><span style="color: #000080">{</span></pre>
<pre><span style="color: #000080">  var data:IDataInput = internalLoader.data;</span></pre>
<pre><span style="color: #000080">  // as ByteArray;</span></pre>
<pre><span style="color: #000080">  zipFile = new ZipFile( data );	</span></pre>
<pre><span style="color: #000080">  internalLoader = null;	</span></pre>
<pre><span style="color: #000080">  System.gc();	</span></pre>
<pre><span style="color: #000080">  LogManager.message = "Carga efetuada.";	</span></pre>
<pre><span style="color: #000080">  for (var i:int = 0; i &lt; zipFile.entries.length; i++)	</span></pre>
<pre><span style="color: #000080">  {</span></pre>
<pre><span style="color: #000080">    var entry:ZipEntry = zipFile.entries[i];	</span></pre>
<pre><span style="color: #000080">    var dt:ByteArray; </span></pre>
<pre><span style="color: #000080">    switch( entry.name )</span></pre>
<pre><span style="color: #000080">    {	</span></pre>
<pre><span style="color: #000080">      case "Thumbnails/thumbnail.jpg":</span></pre>
<pre><span style="color: #000080">        LogManager.message = "Thumbnail carregado.";</span></pre>
<pre><span style="color: #000080">        dt = zipFile.getInput(entry);</span></pre>
<pre><span style="color: #000080">        thumbnail = new Loader();</span></pre>
<pre><span style="color: #000080">        thumbnail.loadBytes(dt);</span></pre>
<pre><span style="color: #000080">        break;</span>
<span style="color: #000080">      case "content.xml":</span></pre>
<pre><span style="color: #000080">        LogManager.message = "Lendo XML";</span></pre>
<pre><span style="color: #000080">        dt = zipFile.getInput(entry);	</span></pre>
<pre><span style="color: #000080">        _xml = new XML( dt.readMultiByte(dt.bytesAvailable, "UTF-8") );</span></pre>
<pre><span style="color: #000080">        break;	</span></pre>
<pre><span style="color: #000080">    }</span></pre>
<pre><span style="color: #000080">  }</span></pre>
<pre><span style="color: #000080">  System.gc();</span></pre>
<pre><span style="color: #000080">  this.parse( _xml );</span></pre>
<pre><span style="color: #000080">  dispatchEvent( new Event(Event.COMPLETE) );</span></pre>
<pre><span style="color: #000080">}</span></pre>
<p>Como todo conteúdo é binário eu tenho que recuperar o XML assim:</p>
<pre><span style="color: #000080">dt = zipFile.getInput(entry);</span></pre>
<pre><span style="color: #000080">_xml = new XML( dt.readMultiByte(dt.bytesAvailable, "UTF-8") );</span></pre>
<p>&nbsp;</p>
<p>O thumbnail é usado num Loader a parte e será exibido no aplicativo.<br />
O content.xml é o arquivo que nos interessa.</p>
<pre><span style="color: #000080">public function parse( x:* ):void</span></pre>
<pre><span style="color: #000080">{</span></pre>
<pre><span style="color: #000080">  if (x is XML)</span></pre>
<pre><span style="color: #000080">  {</span></pre>
<pre><span style="color: #000080">    if (_xml==null)</span></pre>
<pre><span style="color: #000080">      _xml = x as XML;</span></pre>
<pre><span style="color: #000080">  }</span></pre>
<pre><span style="color: #000080">  else</span></pre>
<pre><span style="color: #000080">    _xml = new XML( x as String );</span></pre>
<pre><span style="color: #000080">  var i:int;</span></pre>
<pre><span style="color: #000080">  LogManager.message = "Lendo XML:";</span></pre>
<pre><span style="color: #000080">  default xml namespace = xmind;</span></pre>
<pre><span style="color: #000080">  for each(var x:XML in _xml.sheet)</span></pre>
<pre><span style="color: #000080">  {</span></pre>
<pre><span style="color: #000080">    LogManager.message = "Folha: " + x.title;
    // Aqui voce implementa alguma coisa </span></pre>
<pre><span style="color: #000080">  }</span></pre>
<pre><span style="color: #000080">}</span></pre>
<p>Terminado envio um Event.COMPLETE para o sistema, ai o mxmlc desenha o thumbnail.</p>
<p>&nbsp;</p>
<p>A classe você pode ver neste link <a href="http://pastebin.com/g8MrT1bD">http://pastebin.com/g8MrT1bD</a></p>
<p>&nbsp;</p>
<p>Também criei uma classe extra para gerenciar os logs, mas isso foi capricho meu mesmo.</p>
<p><a href="http://pastebin.com/fiE9jn1s">http://pastebin.com/fiE9jn1s</a></p>
<p>&nbsp;</p>
<h2>E o último XML?</h2>
<p>Este tutorial esta apenas mostrando o caminho das pedras.</p>
<p>Falarei da implementação final quando estiver pronta. Mas já é o suficiente para vocês modificarem o mecanismo de leitura em seus projetos.</p>
<p>Enjoy</p>
]]></content:encoded>
			<wfw:commentRss>http://as3devs.com.br/2011/marcosbitetti/lendo-arquivos-com-compressao-zip-pelo-flash/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>AIR 2.7 iOS</title>
		<link>http://as3devs.com.br/2011/cristiano/air-2-7-ios/</link>
		<comments>http://as3devs.com.br/2011/cristiano/air-2-7-ios/#comments</comments>
		<pubDate>Thu, 28 Apr 2011 02:32:11 +0000</pubDate>
		<dc:creator>Cristiano Caldas</dc:creator>
				<category><![CDATA[FlashPlatform]]></category>
		<category><![CDATA[notícias]]></category>

		<guid isPermaLink="false">http://as3devs.com.br/?p=403</guid>
		<description><![CDATA[Um exemplo de game para iOS feito com AIR 2.7, cada release a adobe nos surpreende em otimização, cada vez mais fica claro que vale a pena experimentar, principalmente com games casuais. via The Flash Blog]]></description>
			<content:encoded><![CDATA[<p><iframe src="http://player.vimeo.com/video/22789140?title=0&amp;byline=0&amp;portrait=0&amp;color=ffffff" width="540" height="303" frameborder="0"></iframe></p>
<p>Um exemplo de game para iOS feito com AIR 2.7, cada release a adobe nos surpreende em otimização, cada vez mais fica claro que vale a pena experimentar, principalmente com games casuais.</p>
<p></p>
<p>via <a href="http://blog.theflashblog.com/?p=2716" target="_blank">The Flash Blog</a></p>
]]></content:encoded>
			<wfw:commentRss>http://as3devs.com.br/2011/cristiano/air-2-7-ios/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

