﻿<?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>Virtualize Interatividade Digital &#187; 3. Avançado</title>
	<atom:link href="http://www.virtualizeid.com.br/category/artigos-e-tutoriais/actionscript3/avancado/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.virtualizeid.com.br</link>
	<description>Agencia Digital de Salvador</description>
	<lastBuildDate>Sat, 27 Feb 2010 18:08:10 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Dicas de performance</title>
		<link>http://www.virtualizeid.com.br/2009/07/dicas-de-performance/</link>
		<comments>http://www.virtualizeid.com.br/2009/07/dicas-de-performance/#comments</comments>
		<pubDate>Mon, 20 Jul 2009 15:17:01 +0000</pubDate>
		<dc:creator>arivanbastos</dc:creator>
				<category><![CDATA[3. Avançado]]></category>
		<category><![CDATA[actionscript 3]]></category>
		<category><![CDATA[criação de sites]]></category>
		<category><![CDATA[tutorial action script]]></category>
		<category><![CDATA[tutorial actionscript]]></category>

		<guid isPermaLink="false">http://www.virtualizeid.com.br/blog/?p=566</guid>
		<description><![CDATA[Em certos tipo de projeto o desempenho é um fator crítico para uma boa experiência do usuário (jogos eletrônicos por exemplo). Nesse post apresentamos algumas dicas que podem ser úteis para otimizar e acelerar o desempenho do seu filme em Flash / Actionscript 3.]]></description>
			<content:encoded><![CDATA[<p>É fato que o desempenho oferecido pelo Actionscript 3, apesar de ser bastante superior ao actionscript 2, ainda deixa muito a desejar. O Actionscript é uma linguagem interpretada (script), e por isso seu desempenho dificilmente atingirá o de verdadeiras linguagens de programação, utilizadas para aplicações mais avançadas, tal como o C/C++. Os problemas de desempenho do Actionscript se evidenciam quando trabalhamos em projetos onde interatividade e  animação se fazem presente de forma intensiva.</p>
<p>Assim, é importante conhecer algumas diretrizes para se obter melhor desempenho em projetos em Flash / Actionscript 3. A seguir, enumeramos numa ordem de importância, as diretrizes para se otimizar o desempenho de sua aplicação em flash.</p>
<h3><span style="text-decoration: underline;"><strong>1. Sempre que possível, use bitmaps ao invés de vetores</strong></span></h3>
<p>O flash se diferenciou na Web por ser um programa vetorial. O conteúdo em vetor era extremamente adequado para a Web de alguns anos atrás, por ser leve para ser transferido pela rede. Hoje, o tamanho final do projeto (tamanho em disco) ainda é um fator importante, porém não crucial. É importante encontrar um equilíbrio entre símbolos em formato de vetor e símbolos em formato de imagem.</p>
<p>Vetores são pequenos pois representam imagens através de funções matémáticas. Entretanto, cada vez que um vetor é desenhado na tela, a função que o representa precisa ser executada, para que ele seja convertido em uma representação visual, e posteriormente desenhado. Uma imagem, por sua vez, precisa apenas ser desenhada. Da pra imaginar a diferença de desempenho não é?</p>
<p>Assim a dica é: se você precisa otimizar o desemenho do seu projeto, só utilize vetores onde for indispensável.</p>
<h3><span style="text-decoration: underline;"><strong>2. Evite máscaras.</strong></span></h3>
<p>Máscaras forçam o flash player a calcular o que deve e o que não deve ser renderizado a cada desenho de quadro. Caso a máscara possua um formato complexo a situação se agrava ainda mais. Dessa forma, sempre que possível, utilize um shape simples, ou mesmo uma imagem, sobre o conteúdo que deseja mascarar, ao invés de utilizar uma máscara.</p>
<h3><span style="text-decoration: underline;"><strong>3. Vídeos e imagens (PNGs) com canal de alpha</strong></span></h3>
<p>Assim como para máscaras, os canais de alpha tornam complexo a renderização de um filme ou imagem. Dessa forma, evite utilizá-los sempre que possível.</p>
<h3><span style="text-decoration: underline;"><strong>4. Use cacheAsBitmap (da forma correta)</strong></span></h3>
<p>&#8220;cacheAsBitmap&#8221; é uma propriedade dos MovieClips que permite-nos informar ao flash que aquele MovieClip deverá ser armazenado em memória como um Bitmap e não como um vetor. Dessa forma, ao renderizar o MovieClip o flash não precisará fazer calcular a função que representa o vetor, pois ele ja terá em memória o vetor em um formato de bitmap.</p>
<p>&#8220;cacheAsBitmap&#8221; parece então ser a solução para todos os problemas de desempenho do flash, certo? Não é bem assim.Você só deve utilizar &#8220;cacheAsBitmap&#8221; em MovieClips que não possuem animação e que não serão alterados ao longo da execução do filme (rotação, escalonamento, aplicação de filtros, etc). Caso o filme seja alterado, o flash precisará recalcular a função que representa o vetor, o que tornará o processo ainda mais lento que se ele não estivesse marcado como &#8220;cacheAsBitmap&#8221;.</p>
<h3><span style="text-decoration: underline;"><strong>5. ENTER_FRAME e setInterval</strong></span></h3>
<p>Crie o mínimio de event listeners para o evento ENTER_FRAME. Em algumas aplicações, como os jogos, o ideal é que você crie apenas um event listener para esse evento, e ele centralizará todos os controles. Lembre-se também de remover os event listeners quando a captura do evento não for mais necessária (utilize &#8220;removeEventListener()&#8221;).</p>
<p>O mesmo se aplica ao setInterval. Crie o mínimo de intervals possível.Utilize clearInterval para remover o interval criado da memória e parar sua execução.</p>
<h3><span style="text-decoration: underline;"><strong>6. Recorte símbolos grandes</strong></span></h3>
<p>Caso você possua símbolos que, por serem grandes, não estarão completamente visíveis na tela, recorte as partes não visíveis.</p>
<h3><span style="text-decoration: underline;"><strong>7. Complexidade algorítmica</strong></span></h3>
<p>Faça uma análise da complexidade algorítimica dos seus códigos actionscript. Otimize seus códigos!</p>
<p>Essas são as principais dicas para se obter melhores desempenhos nas aplicações. Qualquer dúvida é só perguntar! Até o próximo artigo!</p>
<a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fwww.virtualizeid.com.br%2F2009%2F07%2Fdicas-de-performance%2F&amp;linkname=Dicas%20de%20performance">Compartilhar</a>]]></content:encoded>
			<wfw:commentRss>http://www.virtualizeid.com.br/2009/07/dicas-de-performance/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
