﻿<?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; criação de sites</title>
	<atom:link href="http://www.virtualizeid.com.br/tag/criacao-de-sites/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>Proposta Morena Veículos</title>
		<link>http://www.virtualizeid.com.br/2010/02/proposta-morena-veiculos/</link>
		<comments>http://www.virtualizeid.com.br/2010/02/proposta-morena-veiculos/#comments</comments>
		<pubDate>Thu, 18 Feb 2010 22:26:29 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Portfólio]]></category>
		<category><![CDATA[criação de sites]]></category>
		<category><![CDATA[sites]]></category>

		<guid isPermaLink="false">http://www.virtualizeid.com.br/?p=817</guid>
		<description><![CDATA[Proposta para criação do site da Morena Veículos.
Compartilhar]]></description>
			<content:encoded><![CDATA[<div id="attachment_818" class="wp-caption aligncenter" style="width: 534px"><a href="http://www.virtualizeid.com.br/wp-content/uploads/2010/02/morena.jpg"><img class="size-large wp-image-818 " title="morena" src="http://www.virtualizeid.com.br/wp-content/uploads/2010/02/morena-873x1024.jpg" alt="proposta criação de site morena veiculos" width="524" height="614" /></a><p class="wp-caption-text">Proposta de criação de site para a Morena Veículos</p></div>
<p>Proposta para criação do site da Morena Veículos.</p>
<a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fwww.virtualizeid.com.br%2F2010%2F02%2Fproposta-morena-veiculos%2F&amp;linkname=Proposta%20Morena%20Ve%C3%ADculos">Compartilhar</a>]]></content:encoded>
			<wfw:commentRss>http://www.virtualizeid.com.br/2010/02/proposta-morena-veiculos/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Website Pratigi Alimentos</title>
		<link>http://www.virtualizeid.com.br/2010/02/website-pratigi-alimentos/</link>
		<comments>http://www.virtualizeid.com.br/2010/02/website-pratigi-alimentos/#comments</comments>
		<pubDate>Fri, 12 Feb 2010 22:30:03 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Portfólio]]></category>
		<category><![CDATA[criação de sites]]></category>
		<category><![CDATA[sites]]></category>

		<guid isPermaLink="false">http://www.virtualizeid.com.br/?p=822</guid>
		<description><![CDATA[Proposta de layout para a Pratigi Alimentos.
Compartilhar]]></description>
			<content:encoded><![CDATA[<div id="attachment_823" class="wp-caption aligncenter" style="width: 604px"><a href="http://www.virtualizeid.com.br/wp-content/uploads/2010/02/pratigi.jpg"><img class="size-large wp-image-823 " title="Criação de sites - Pratigi Alimentos" src="http://www.virtualizeid.com.br/wp-content/uploads/2010/02/pratigi-990x1024.jpg" alt="Criação de sites - Pratigi Alimentos" width="594" height="614" /></a><p class="wp-caption-text">Criação de sites - Pratigi Alimentos</p></div>
<p>Proposta de layout para a Pratigi Alimentos.</p>
<a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fwww.virtualizeid.com.br%2F2010%2F02%2Fwebsite-pratigi-alimentos%2F&amp;linkname=Website%20Pratigi%20Alimentos">Compartilhar</a>]]></content:encoded>
			<wfw:commentRss>http://www.virtualizeid.com.br/2010/02/website-pratigi-alimentos/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Virtualize lança Website EPD Home Terapia</title>
		<link>http://www.virtualizeid.com.br/2009/10/virtualize-lanca-website-epd-home-terapia/</link>
		<comments>http://www.virtualizeid.com.br/2009/10/virtualize-lanca-website-epd-home-terapia/#comments</comments>
		<pubDate>Tue, 20 Oct 2009 17:23:14 +0000</pubDate>
		<dc:creator>arivanbastos</dc:creator>
				<category><![CDATA[Portfólio]]></category>
		<category><![CDATA[criação de sites]]></category>
		<category><![CDATA[sites]]></category>

		<guid isPermaLink="false">http://www.virtualizeid.com.br/?p=778</guid>
		<description><![CDATA[Criação do site EPD Home Terapia. O conceito do site transmite conforme e cuidado. Em menos de 15 dias de lançamento o Website ja figurou em 4° lugar no Google para a palavra-chave que define o serviço da empresa: home care.
Acesse: http://www.epdterapia.com.br
Lançamento em 25/09/2009
Compartilhar]]></description>
			<content:encoded><![CDATA[<div id="attachment_779" class="wp-caption aligncenter" style="width: 501px"><a href="http://www.epdterapia.com.br/" rel="nofollow"><img class="size-large wp-image-779  " title="Criação de site EPD Home Terapia" src="http://www.virtualizeid.com.br/wp-content/uploads/2009/10/epd-terapia-1024x758.jpg" alt="Website EPD Home TErapia" width="491" height="364" /></a><p class="wp-caption-text">Website EPD Home TErapia</p></div>
<p>Criação do site EPD Home Terapia. O conceito do site transmite conforme e cuidado. Em menos de 15 dias de lançamento o Website ja figurou em 4° lugar no Google para a palavra-chave que define o serviço da empresa: home care.</p>
<p>Acesse: <a title="Criação do site EPD" rel="nofollow" href="http://www.epdterapia.com.br" target="_blank">http://www.epdterapia.com.br</a><br />
<em>Lançamento em 25/09/2009</em></p>
<a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fwww.virtualizeid.com.br%2F2009%2F10%2Fvirtualize-lanca-website-epd-home-terapia%2F&amp;linkname=Virtualize%20lan%C3%A7a%20Website%20EPD%20Home%20Terapia">Compartilhar</a>]]></content:encoded>
			<wfw:commentRss>http://www.virtualizeid.com.br/2009/10/virtualize-lanca-website-epd-home-terapia/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Formulario de contato e envio de e-mail</title>
		<link>http://www.virtualizeid.com.br/2009/09/formulario-de-contato-e-envio-de-e-mail/</link>
		<comments>http://www.virtualizeid.com.br/2009/09/formulario-de-contato-e-envio-de-e-mail/#comments</comments>
		<pubDate>Thu, 17 Sep 2009 22:01:59 +0000</pubDate>
		<dc:creator>arivanbastos</dc:creator>
				<category><![CDATA[2. Intermediário]]></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/?p=771</guid>
		<description><![CDATA[Seja em um formulário de contato, uma validação de e-mail, um pré-orçamento ou confirmação de um pedido, uma das tarefas mais comuns em projetos com Flash é o envio de e-mail. Nesse tutorial discutiremos como enviar e-mails utilizando Actionscript 3 e um script CGI.]]></description>
			<content:encoded><![CDATA[<p>Enviar e-mail é sem dúvida uma função fundamental em qualquer aplicação WEB.</p>
<p>Para entendermos a mecânica de envio de e-mail, precisamos entender o formato cliente-servidor da comunicação na Internet.</p>
<p>Quando acessamos uma página na Internet, tudo que vemos é o resultado do processamento de um arquivo que está hospedado no servidor da página. Para tanto, existem tecnologias cujo objetivo é possibilitar ao desenvolvedor da página definir como o conteúdo a ser enviado paro visitante será gerado.</p>
<p>Dessa forma, temos duas perspectivas na aplicação: a perspectiva do desenvolvedor, que, por exemplo, ao acessar o código fonte da página verá as diversas regras e algorítmos que definem como o conteúdo será gerado, e a persperctiva do cliente, que ao acessar o código-fonte da página verá apenas o conteúdo gerado, e desconhece as regras.</p>
<p>Para definir as regras para geração dinâmica de conteúdo existem linguagens como PHP, ASP ou JSP. Essas linguagem são chamadas &#8220;server-side&#8221;, pois são executadas no lado servidor. Para definir o formato, layout e mecânicas de interação da página existem linguagens como HTML, Javascript e CSS. São linguagens &#8220;client-side&#8221; pois são executadas no lado cliente (no navegador do visitante).</p>
<p>Para enviarmos um e-mail precisamos utilizar um servidor de e-mail. Os servidores de hospedagem de sites frequentemente possuem um servidor de e-mail integrado. Quando, por exemplo, configuramos nossa conta de e-mail no outlook (informando smtp, pop3, etc), estamos configurando a conexão entre o outlook e o servidor de e-mail, para que ele possa realizar os envios.</p>
<p>Da mesma forma, para enviarmos um e-mail através de uma aplicação Actionscript precisamos utilizar um servidor de e-mail. A forma mais fácil de fazer essa conexão entre nossa aplicação e o servidor de e-mail é utilizar uma página em linguagem &#8220;server-side&#8221;.</p>
<p>Nosso projeto em Actionscript envia os dados que desejamos enviar para a página e essa página conecta com o servidor de e-mail, enviando o e-mail. Nesse exemplo utilizarei uma página em linguagem PHP, mas isso se aplica a outras linguagens. Vamos ao exemplo!</p>
<p>Crie um formulário no seu projeto em Flash. Para isso crie campos de texto do tipo InpuText (nome, email e mensagem). Nomeie eles de nome_txt, email_txt e mensagem_txt. Crie também um campo de texto chamado resultado_txt (para exibirmos o resultado do envio) e um botão enviar_btn. Veja a figura (o exemplo estará disponível para download ao fim do tutorial):</p>
<div id="attachment_772" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.virtualizeid.com.br/wp-content/uploads/2009/09/exemplo.jpg"><img src="http://www.virtualizeid.com.br/wp-content/uploads/2009/09/exemplo-300x234.jpg" alt="Exemplo do tutorial." title="Tutorial Actionscript 3 - Formulário de contato e envio de e-mails com Actionscript 3" width="300" height="234" class="size-medium wp-image-772" /></a><p class="wp-caption-text">Exemplo do tutorial.</p></div>
<p>O código para que nosso formulário funcione é apresentado a seguir:</p>
<pre class="brush: as3;">
// Associamos o click no botão enviar à função de envio de e-mail.
enviar_btn.addEventListener(MouseEvent.CLICK, EnviarEmail);

function EnviarEmail(evt)
{
	resultado_txt.text = &quot;Enviando mensagem... aguarde!&quot;;

	// Cria o objeto que realizará o envio dos dados para a página
	// envio_email.php.
	var loader:URLLoader = new URLLoader();

	// Criamos o listener que será chamado ao fim da execução do script
	// de envio de e-mail.
	loader.addEventListener(Event.COMPLETE					, FimLoad);

	// Criamos os listener que serão chamados em caso de erro ao tentar abrir
	// o script (arquivo não encontrado ou em outro domínio por exemplo).
	loader.addEventListener(IOErrorEvent.IO_ERROR				, ErroLoad);
	loader.addEventListener(SecurityErrorEvent.SECURITY_ERROR	, ErroLoad);	

	// Definimos qual script enviará o e-mail e como serão enviados os
	// parâmetros para esse script.
	var request:URLRequest = new URLRequest(&quot;envio_email.php&quot;);
	request.method = &quot;POST&quot;;

	// Definimos os parâmetros a serem passados para o script
	// envio_email.php.
	var variables:URLVariables = new URLVariables();
	variables.nome	 	= nome_txt.text;
	variables.email		= email_txt.text;
	variables.mensagem	= mensagem_txt.text;
	request.data 		= variables;

	// Solicitamos a execução do Script.
	loader.load(request);
}

function FimLoad(evt)
{
	// Exibimos o resultado do envio.
	resultado_txt.text = evt.target.data;
}

function ErroLoad(evt)
{
	resultado_txt.text = &quot;Ocorreu um erro durante o envio do e-mail.&quot;;
}
</pre>
<p>Na linha 2 associamos o clique no botão enviar à função que realiza o envio de e-mail.</p>
<p>Na linha 10 criamos um objeto do tipo URLLoader. Esse objeto é utilizado para se carregar conteúdos de páginas externas. Ele servirá como ponte entre nossa aplicação em Flash e a página em PHP que realizará o envio do e-mail.</p>
<p>Nas linhas 14 dizemos que quando o objeto URLLoader terminar de carregar os dados da página (que definiremos qual será mais adiante) queremos que a função FimLoad seja executada. Nas linhas 18 e 19 definimos que a função ErroLoad deverá ser chamada caso ocorra algum erro durante o carregamento da página.</p>
<p>Na linha 23 criamos um objeto que define qual página deverá ser carregada. Na linha 24 definimos o formato do envio de dados para a página, não irei entrar em detalhes quanto a isso para não alongar o tutorial.</p>
<p>Na linha 28 criamos um objeto que passará parâmetros para a página que iremos carregar. Assim, poderemos definir o nome de quem está enviado o e-mail, o e-mail desta pessoa e a mensagem. Nas linhas 29 a 31 definimos os parâmetros, e na linha 32 associamos esses parâmetros ao objeto Request.</p>
<p>Por fim, na linha 35 solicitamos o carregamento da página. A partir daí entra em execução a página PHP que realizará o envio da mensagem, cujo código é apresentado a seguir:</p>
<pre class="brush: php;">
// Recuperamos os parâmetros enviados através do formulário.
$nome		= $_POST[&quot;nome&quot;];
$email		= $_POST[&quot;email&quot;];
$mensagem	= $_POST[&quot;mensagem&quot;];

// Definimos o título da mensagem (lembrando que '.' é operador de concatenação em PHP).
$assunto	= &quot;Mensagem de &quot; . $mensagem . &quot; (&quot; . $email . &quot;)&quot;;

// Definimos o destinatário da mensagem.
$destino	= &quot;seuemail@seudominio.com.br&quot;;

// Enviamos o e-mail.
if (mail($destino, $assunto, $mensagem))
{
	echo &quot;Mensagem enviada com sucesso!&quot;;
}
else
{
	echo &quot;Não foi possível enviar sua mensagem!&quot;;
}
</pre>
<p>Nas linhas 1 a 3 recuperamos os parâmetros que enviamos através do Actionscript 3. Observe que o nome dos parâmetros têm que ser idêntico aos digitado nas linhas 29 a 31 do código Actionscript. Na linha 13, utilizamos a função mail() do PHP, para realizar o envio do e-mail. Observe que isso tudo ocorre no lado servidor, e até agora não geramos nenhum conteúdo para o cliente (no caso a aplicação Flash). Na linha 15 utilizamos o comando &#8220;echo&#8221; para enviar um resultado ao cliente, que será recuperado na linha 41 da aplicação Flash, com o acesso a propriedade target.data do evento de fim de load.</p>
<p><strong><br />
Lembre-se que para que esse exemplo funcione você precisa enviá-lo (tanto o arquivo .swf e o arquivo .php) para um servidor de hospedagem com suporte a PHP.</strong></p>
<p>O uso de linguagens dinâmicas (como o PHP) e seu acesso através do Flash possibilita a criação de sistemas que acessam banco de dados, o que é fundamental em diversos projetos.</p>
<p>Vamos ficando por aqui, até o próximo tutorial. Dúvidas?</p>
<p><center><a href='http://www.virtualizeid.com.br/wp-content/uploads/2009/09/email.zip' alt="Tutorial Actionscript 3 - Formulario de contato e envio de e-mails com Actionscript 3." title="Tutorial Actionscript 3 - Formulario de contato e envio de e-mails com Actionscript 3.">Baixar tutorial</a></center></p>
<a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fwww.virtualizeid.com.br%2F2009%2F09%2Fformulario-de-contato-e-envio-de-e-mail%2F&amp;linkname=Formulario%20de%20contato%20e%20envio%20de%20e-mail">Compartilhar</a>]]></content:encoded>
			<wfw:commentRss>http://www.virtualizeid.com.br/2009/09/formulario-de-contato-e-envio-de-e-mail/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Virtualize lança Website Prato Assinado</title>
		<link>http://www.virtualizeid.com.br/2009/08/website-prato-assinado/</link>
		<comments>http://www.virtualizeid.com.br/2009/08/website-prato-assinado/#comments</comments>
		<pubDate>Mon, 31 Aug 2009 13:44:32 +0000</pubDate>
		<dc:creator>arivanbastos</dc:creator>
				<category><![CDATA[Portfólio]]></category>
		<category><![CDATA[criação de sites]]></category>
		<category><![CDATA[sites]]></category>

		<guid isPermaLink="false">http://www.virtualizeid.com.br/blog/?p=701</guid>
		<description><![CDATA[
Projeto de reformulação do Website Prato Assinado. O novo layout transmite elegância e sofisticação. Buscamos explorar o uso de imagens de pratos da empresa, cuja decoração é um de seus pontos fortes.
Acesse: http://www.pratoassinado.com.br
Lançamento em 28/08/2009
Compartilhar]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;">
<div id="attachment_702" class="wp-caption aligncenter" style="width: 501px"><a href="http://www.virtualizeid.com.br/wp-content/uploads/2009/08/prato_assinado.jpg"><img class="size-large wp-image-702  " title="Website Prato Assinado" src="http://www.virtualizeid.com.br/wp-content/uploads/2009/08/prato_assinado-1024x798.jpg" alt="Website Prato Assinado" width="491" height="383" /></a><p class="wp-caption-text">Website Prato Assinado</p></div>
<p>Projeto de reformulação do Website Prato Assinado. O novo layout transmite elegância e sofisticação. Buscamos explorar o uso de imagens de pratos da empresa, cuja decoração é um de seus pontos fortes.</p>
<p>Acesse: <a title="Criação do site Prato Assinado" rel="nofollow" href="http://www.pratoassinado.com.br" target="_blank">http://www.pratoassinado.com.br</a><br />
<em>Lançamento em 28/08/2009</em></p>
<a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fwww.virtualizeid.com.br%2F2009%2F08%2Fwebsite-prato-assinado%2F&amp;linkname=Virtualize%20lan%C3%A7a%20Website%20Prato%20Assinado">Compartilhar</a>]]></content:encoded>
			<wfw:commentRss>http://www.virtualizeid.com.br/2009/08/website-prato-assinado/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Virtualize recebe reconhecimento no prêmio Dope Awards</title>
		<link>http://www.virtualizeid.com.br/2009/08/virtualize-recebe-reconhecimento-no-premio-dope-awards/</link>
		<comments>http://www.virtualizeid.com.br/2009/08/virtualize-recebe-reconhecimento-no-premio-dope-awards/#comments</comments>
		<pubDate>Tue, 04 Aug 2009 18:18:46 +0000</pubDate>
		<dc:creator>arivanbastos</dc:creator>
				<category><![CDATA[Portfólio]]></category>
		<category><![CDATA[criação de sites]]></category>
		<category><![CDATA[premios]]></category>

		<guid isPermaLink="false">http://www.virtualizeid.com.br/blog/?p=681</guid>
		<description><![CDATA[A Virtualize foi mencionada na categoria &#8220;Recognition Gallery&#8221; do site Dope Awards, que premia os melhores sites desenvolvidos em Flash, novamente com o projeto 3Ventos.
Premiação em 04/08/2009
Compartilhar]]></description>
			<content:encoded><![CDATA[<div id="attachment_685" class="wp-caption aligncenter" style="width: 420px"><a href="http://www.virtualizeid.com.br/wp-content/uploads/2009/08/dopeawards1.jpg"><img class="size-large wp-image-685" title="Virtualize é mencionada no site Dope Awards, com a criação do site 3Ventos." src="http://www.virtualizeid.com.br/wp-content/uploads/2009/08/dopeawards1-1024x671.jpg" alt="dopeawards" width="410" height="268" /></a><p class="wp-caption-text">Virtualize é mencionada no site Dope Awards, com a criação do site 3Ventos.</p></div>
<p>A Virtualize foi mencionada na categoria &#8220;Recognition Gallery&#8221; do site Dope Awards, que premia os melhores sites desenvolvidos em Flash, novamente com o projeto 3Ventos.</p>
<p><em>Premiação em 04/08/2009</em></p>
<a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fwww.virtualizeid.com.br%2F2009%2F08%2Fvirtualize-recebe-reconhecimento-no-premio-dope-awards%2F&amp;linkname=Virtualize%20recebe%20reconhecimento%20no%20pr%C3%AAmio%20Dope%20Awards">Compartilhar</a>]]></content:encoded>
			<wfw:commentRss>http://www.virtualizeid.com.br/2009/08/virtualize-recebe-reconhecimento-no-premio-dope-awards/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Reposicionando elementos após redimensionamento da janela</title>
		<link>http://www.virtualizeid.com.br/2009/07/reposicionando-elementos-apos-redimensionamento-da-janela/</link>
		<comments>http://www.virtualizeid.com.br/2009/07/reposicionando-elementos-apos-redimensionamento-da-janela/#comments</comments>
		<pubDate>Thu, 23 Jul 2009 21:42:17 +0000</pubDate>
		<dc:creator>arivanbastos</dc:creator>
				<category><![CDATA[2. Intermediário]]></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=582</guid>
		<description><![CDATA[Quando desenvolvemos um site, uma preocupação que devemos ter diz respeito a resolução que será utilizada pelo visitante para visualização. Atualmente, a resolução mais comum é 1024x768. Entretanto, muitos computadores adotam resoluções superiores a esta, e alguns resoluções inferiores. No flash, podemos redistribuir os elementos do layout de um site, posicionando-os de forma a explorar toda a área disponível no navegador, resultando em um layout mais agradável e com mais espaço. Vejamos como fazer isso neste tutorial.]]></description>
			<content:encoded><![CDATA[<p>O layout de uma página de internet ou de uma aplicação desktop em flash deve ser projetado tendo em mente uma resolução mínima. Caso não tratemos a possibilidade de várias resoluções (ou mesmo o redimensionamento da área disponível no navegador), é possível que o usuário do produto veja barras de rolagem horizontais e verticais (em aplicações WEB), ou que parte do seu conteúdo seja cortado.</p>
<p>Barras de rolagem (principalmente a horizontal) afetam a usabilidade e a estética do site. Para evitar esse tipo de problema em aplicações Flash, podemos estabelecer que o nosso conteúdo SWF ocupará 100% da área disponível no navegador, conforme explicado no tutorial &#8220;Fazendo o site ocupar toda a área do navegador&#8221;.</p>
<p>Entretanto, quando adotamos essa abordagem, o conteúdo Flash é redimensionado de acordo com a resolução e área disponível no navegador do visitante, o que pode resultar em efeitos indesejados na aparência final (redimensionamentos que não seguem proporção por exemplo).</p>
<p>Para evitar esse tipo de efeito, podemos gerenciar o redimensionamento do conteúdo em Flash, reposicionando e redimensionado o conteúdo conforme desejarmos.</p>
<p>Podemos ter, por exemplo, um website composto de um menu esquerdo, um conteúdo central, e um espaço na lateral direita reservado para banners. Eu desejo que o menu esquerdo fique sempre a 20 pixels da margem esquerda do navegador (centralizado verticalmente), que o conteúdo central fique sempre no centro (vertical e horizontal), e que o espaço de banners fique a 20 pixels da margem direita (centralizado verticalmente). Desejo também que o conteúdo não seja rediomensionado de acordo com o tamanho da área do navegador.</p>
<p>Tendo em vista essas especificações, devemos definir os pontos de registro dos movieclips correspondentes de acordo com os respectivos alinhamentos. Exemplo, se eu quero que o menu esquerdo fique alinhado a esquerda horizontalmente e ao centro verticalmente, o ponto de registro do seu movieclip deverá estar alinhado a esquerda e centralizado verticalmente, conforme a figura a seguir:</p>
<div id="attachment_583" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.virtualizeid.com.br/wp-content/uploads/2009/07/ponto-registro.jpg"><img class="size-medium wp-image-583" title="Tutorial actionscript - Definição do ponto de registro - Criação de sites" src="http://www.virtualizeid.com.br/wp-content/uploads/2009/07/ponto-registro-300x240.jpg" alt="Definindo corretamente o ponto de registro" width="300" height="240" /></a><p class="wp-caption-text">Definindo corretamente o ponto de registro</p></div>
<p>Essa configuração do ponto de registro não é obrigatória, mas facilitará o nosso trabalho ao alinhar o elemento. A mesmo lógica se aplica a outros tipos de alinhamento. Por exemplo, se desejo alinhar um elemento ao centro (horizontalmente e verticalmente), seu ponto de registro deve estar no centro.</p>
<p>Após definirmos corretamente os pontos de registro, precisamos dizer ao flash que não desejamos que ele redimensione o conteúdo de acordo com a área disponível. Precisamos também, definir uma orientação para o stage, quando o arquivo flash estiver em tamanhos superiores ou inferiores ao tamanho original do stage. Para isso, usamos o código a seguir:</p>
<pre class="brush: as3;">
// Indica que o conteúdo não dever ser redimensionado.
stage.scaleMode = StageScaleMode.NO_SCALE;

// Indica que caso a área do flash (no navegador por exemplo) seja
// maior ou menor que o stage, o ponto 0,0 do stage deve-se posicionar
// no canto superior (TOP) esquerdo (LEFT) da área.
stage.align		= StageAlign.TOP_LEFT;
</pre>
<p>Feito isso, podemos tratar o redimensionamento da área de conteúdo com facilidade. Para exemplificar, vou utilizar 3 conteúdos, um que será alinhado a 10 pixels da margem superior esquerda, outro que será alinhado ao centro e outro que será alinhado a 10 pixels da margem inferior direita, conforme a figura a seguir (o código fonte deste tutorial encontra-se no fim do texto):</p>
<div id="attachment_584" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.virtualizeid.com.br/wp-content/uploads/2009/07/estrutura.jpg"><img class="size-medium wp-image-584" title="Tutorial actionscript - estrutura do exemplo - criação de sites" src="http://www.virtualizeid.com.br/wp-content/uploads/2009/07/estrutura-300x233.jpg" alt="Estrutura do exemplo apresentado nesse tutorial" width="300" height="233" /></a><p class="wp-caption-text">Estrutura do exemplo apresentado nesse tutorial</p></div>
<p>Nesse exemplo, nomearei os movieclips dos quadrados como quadEsqTop_mc, quadCent_mc e quadDirBaixo_mc (respectivamente da esquerda para direita).</p>
<p>Para realizar o reposicionamento dos elementos a partir do redimensionamento do stage criamos um ouvinte para o evento &#8220;Event.RESIZE&#8221;. O evento &#8220;Event.RESIZE&#8221; sempre que o conteúdo flash é redimensionado. Veja:</p>
<pre class="brush: as3;">

stage.scaleMode = StageScaleMode.NO_SCALE;
stage.align		= StageAlign.TOP_LEFT;

// Criamos um ouvinte para o evento Event.RESIZE (redimensionamento).
stage.addEventListener(Event.RESIZE, Redimensionamento);
function Redimensionamento(evt)
{
	// Alinhamento a 10 pixels da margem superior esquerda.
	quadEsqTop_mc.x = 10;
	quadEsqTop_mc.y = 10;

	// Alinhamento ao centro.
	quadCent_mc.x	= stage.stageWidth 	/ 2;
	quadCent_mc.y	= stage.stageHeight	/ 2;

	// Alinhamento a 10 pixels da margem inferior direita.
	quadDirBaixo_mc.x = stage.stageWidth 	- 10;
	quadDirBaixo_mc.y = stage.stageHeight 	- 10;
}

// Chamamos a função inicialmente para que os quadrados posicionem-se
// nas margens desejadas.
Redimensionamento(null);
</pre>
<p>Na linha 05, associamos o evento de redimensionamento à função Redimensionamento, que irá tratar esse evento. Nas linhas 09 a 18 posicionamos os quadrados de acordo com o desejado. Utilizamos as propriedades stage.stageWidth e stage.stageHeight para saber a largura e altura atuais do stage.</p>
<p>Na linha 23 realizamos uma chamada à função, para assegurar que assim que o site seja carregado a função seja disparada, e a distribuição dos elementos seja aplicada.</p>
<p>Experimente rodar esse exemplo no flash e redimensionar a janela do .SWF. Veja que as margens se mantêm as mesmas, e quadrado central permanece sempre no centro.</p>
<p>Dúvidas, é só perguntar! Até o próximo artigo!</p>
<p><a href="http://www.virtualizeid.com.br/wp-content/uploads/2009/07/exemplo.fla">Tutorial actionscript &#8211; Reposicionando elementos após redimensionamento da janela</a></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%2Freposicionando-elementos-apos-redimensionamento-da-janela%2F&amp;linkname=Reposicionando%20elementos%20ap%C3%B3s%20redimensionamento%20da%20janela">Compartilhar</a>]]></content:encoded>
			<wfw:commentRss>http://www.virtualizeid.com.br/2009/07/reposicionando-elementos-apos-redimensionamento-da-janela/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<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>
		<item>
		<title>Website Tmar Transportes</title>
		<link>http://www.virtualizeid.com.br/2009/07/website-tmar-transportes/</link>
		<comments>http://www.virtualizeid.com.br/2009/07/website-tmar-transportes/#comments</comments>
		<pubDate>Wed, 15 Jul 2009 17:39:45 +0000</pubDate>
		<dc:creator>arivanbastos</dc:creator>
				<category><![CDATA[Portfólio]]></category>
		<category><![CDATA[criação de sites]]></category>
		<category><![CDATA[sites]]></category>

		<guid isPermaLink="false">http://www.virtualizeid.com.br/blog/?p=506</guid>
		<description><![CDATA[
Reformulação completa do site da Tmar transportes. Buscou-se nesse projeto alcançar uma identidade visual que transmitisse modernidade, segurança e agilidade, e uma estrutura que tornasse prática a realização de orçamentos online.
Acesse: http://www.tmartransportes.com.br
 Lançamento em 17/07/2009.
Compartilhar]]></description>
			<content:encoded><![CDATA[<div id="attachment_690" class="wp-caption aligncenter" style="width: 471px"><a title="Criação de site para a TMAR Transportes" rel="nofollow" href="http://www.tmartransportes.com.br" target="_blank"><img class="size-full wp-image-690  " title="Website TMAR Transportes" src="http://www.virtualizeid.com.br/wp-content/uploads/2009/07/TmarLayoutHome3.jpg" alt="Website TMAR Transportes" width="461" height="393" /></a><p class="wp-caption-text">Website TMAR Transportes</p></div>
<p style="text-align: center;">
<p>Reformulação completa do site da Tmar transportes. Buscou-se nesse projeto alcançar uma identidade visual que transmitisse modernidade, segurança e agilidade, e uma estrutura que tornasse prática a realização de orçamentos online.</p>
<p>Acesse: <a title="tmar transportes" rel="nofollow" href="http://www.tmartransportes.com.br" target="_blank">http://www.tmartransportes.com.br<br />
</a> <em>Lançamento em 17/07/2009.</em></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%2Fwebsite-tmar-transportes%2F&amp;linkname=Website%20Tmar%20Transportes">Compartilhar</a>]]></content:encoded>
			<wfw:commentRss>http://www.virtualizeid.com.br/2009/07/website-tmar-transportes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Fazendo o site ocupar toda a área do navegador</title>
		<link>http://www.virtualizeid.com.br/2009/07/fazendo-o-site-ocupar-toda-a-area-do-navegador/</link>
		<comments>http://www.virtualizeid.com.br/2009/07/fazendo-o-site-ocupar-toda-a-area-do-navegador/#comments</comments>
		<pubDate>Mon, 06 Jul 2009 20:14:02 +0000</pubDate>
		<dc:creator>arivanbastos</dc:creator>
				<category><![CDATA[2. Intermediário]]></category>
		<category><![CDATA[Actionscript 3]]></category>
		<category><![CDATA[Artigos e Tutoriais]]></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=473</guid>
		<description><![CDATA[Quando desenvolvemos um Website Full-Flash (completamente em flash) normalmente desejamos que o site ocupe toda a área disponível do browser. Isso, além de nos oferecer mais área para explorar, também apresenta o layout de uma forma mais integrada ao navegador. Vejamos como fazer isso nesse tutorial.]]></description>
			<content:encoded><![CDATA[<p>Quando desenvolvemos um Website Full-Flash (completamente em flash) normalmente desejamos que o site ocupe toda a área disponível do browser. Isso, além de nos oferecer mais área para explorar, também apresenta o layout de uma forma mais integrada ao navegador.</p>
<p>Para que nosso site ocupe 100% da área disponível, precisamos fazer duas coisas (os arquivos fontes deste tutorial estão disponíveis ao fim do texto):</p>
<p>1. Adicionar um CSS ao HTML da página que inclui o arquivo .SWF, indicando que não desejamos nenhum tipo de borda no site. O CSS é uma linguagem padrão que trabalha junto ao HTML na formatação/estilização de sites. É uma linguagem cujo conhecimento é importantíssimo para Web Designers. Veja o exemplo a seguir.</p>
<pre class="brush: xml; highlight: [9,10,11,12,13,14,15,16];">
&lt;html xmlns=&quot;http://www.w3.org/1999/xhtml&quot; xml:lang=&quot;en&quot; lang=&quot;en&quot;&gt;
	&lt;head&gt;
		&lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=iso-8859-1&quot; /&gt;
		&lt;title&gt;Virtualize Interatividade Digital - Tutorial Actionscript&lt;/title&gt;
		&lt;script type=&quot;text/javascript&quot; src=&quot;swfobject.js&quot;&gt;&lt;/script&gt;
		&lt;script type=&quot;text/javascript&quot;&gt;
			swfobject.embedSWF(&quot;exemplo.swf&quot;, &quot;exemplo&quot;, &quot;100%&quot;, &quot;100%&quot;, &quot;9.0.0&quot;, &quot;expressInstall.swf&quot;);
		&lt;/script&gt;
		&lt;style type=&quot;text/css&quot;&gt;
		body
		{
			height:100%;
			margin:0;
			padding:0;
		}
		&lt;/style&gt;
	&lt;/head&gt;
	&lt;body bgcolor=&quot;#000000&quot;&gt;
		&lt;div id=&quot;exemplo&quot;&gt;
			&lt;h1&gt;Conteúdo alternativo&lt;/h1&gt;
			&lt;p&gt;&lt;a href=&quot;http://www.adobe.com/go/getflashplayer&quot;&gt;&lt;img src=&quot;http://www.adobe.com/images/shared/download_buttons/get_flash_player.gif&quot; alt=&quot;Get Adobe Flash player&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
		&lt;/div&gt;
	&lt;/body&gt;
&lt;/html&gt;
</pre>
<p>2. Precisamos indicar que o flash deve ocupar 100% da altura e largura da página, o que fazemos utilizando os parâmetros da tag object ou do SWFObject. O SWFObject é uma pequena biblioteca em Javascript, que permite a inclusão de conteúdo Flash em páginas HTML, através de um comando Javascript. Essa bibliteca nos livra da preocupação em identificar se o usuário possui Flash player ou Javascript ativado. Aconselho utilizá-la em seus projetos. Veja o código:</p>
<pre class="brush: xml; highlight: [6,7,8,19,20,21,22];">
&lt;html xmlns=&quot;http://www.w3.org/1999/xhtml&quot; xml:lang=&quot;en&quot; lang=&quot;en&quot;&gt;
	&lt;head&gt;
		&lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=iso-8859-1&quot; /&gt;
		&lt;title&gt;Virtualize Interatividade Digital - Tutorial Actionscript&lt;/title&gt;
		&lt;script type=&quot;text/javascript&quot; src=&quot;swfobject.js&quot;&gt;&lt;/script&gt;
		&lt;script type=&quot;text/javascript&quot;&gt;
			swfobject.embedSWF(&quot;exemplo.swf&quot;, &quot;exemplo&quot;, &quot;100%&quot;, &quot;100%&quot;, &quot;9.0.0&quot;, &quot;expressInstall.swf&quot;);
		&lt;/script&gt;
		&lt;p&gt;&lt;style type=&quot;text/css&quot;&gt;
		body&lt;
		{
			height:100%;
			margin:0;
			padding:0;
		}
		&lt;/style&gt;
	&lt;/head&gt;
	&lt;body bgcolor=&quot;#000000&quot;&gt;
		&lt;div id=&quot;exemplo&quot;&gt;
			&lt;h1&gt;Conteúdo alternativo&lt;/h1&gt;
			&lt;p&gt;&lt;a href=&quot;http://www.adobe.com/go/getflashplayer&quot;&gt;&lt;img src=&quot;http://www.adobe.com/images/shared/download_buttons/get_flash_player.gif&quot; alt=&quot;Get Adobe Flash player&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
		&lt;/div&gt;
	&lt;/body&gt;
&lt;/html&gt;
</pre>
<p>Nas linhas 06 a 09, importamos e fazemos uso da biblioteca SWFObject. Na linha 08, está o comando que realiza toda a &#8220;mágica&#8221; do processo. O 1° parâmetro deste comando é o arquivo .swf a ser exibido. O 2° é o identificador do arquivo, um nome que daremos para nosso conteúdo. O 3° e 4° parâmetros são as dimensões do arquivo, largura e altura, o qual pode ser fornecido em percentagem. O 5° parâmetro é a versão de Flash Player necessária para rodar o arquivo.O 6° parâmetro é um utilitário para instalação automática do Flash Player que já vem com o SWFObject.</p>
<p>Como falei, o SWFObject identifica a versão do Flash do visitante. Caso a versão seja inferior a exigida o conteúdo da div de id correspondente ao 2° parâmetro da chamada &#8220;swfobject.embedSWF()&#8221;. Caso  contrário, o SWF será exibido no lugar da div.</p>
<p>Isso é o suficiente para o seu conteúdo Flash ser executado ocupando toda a área do navegador. Observe que quando definimos tamanho 100% para o conteúdo flash, o conteúdo também cresce, e não apenas o Stage. Isso não é desejado na maioria dos projetos. Nos próximo artigos veremos como evitar isso e também como alinhar os elementos do site de acordo com o redimensioanamento.</p>
<p>Dúvidas, é só perguntar! Até o próximo artigo!</p>
<p><a href="http://www.virtualizeid.com.br/wp-content/uploads/2009/07/Fazendo-o-site-ocupar-toda-a-área-do-navegador.zip">Tutorial actionscript &#8211; Fazendo o site ocupar toda a área do navegador</a></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%2Ffazendo-o-site-ocupar-toda-a-area-do-navegador%2F&amp;linkname=Fazendo%20o%20site%20ocupar%20toda%20a%20%C3%A1rea%20do%20navegador">Compartilhar</a>]]></content:encoded>
			<wfw:commentRss>http://www.virtualizeid.com.br/2009/07/fazendo-o-site-ocupar-toda-a-area-do-navegador/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
	</channel>
</rss>
