<?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>Leonardo França</title>
	<atom:link href="http://www.leonardofranca.com.br/index.php/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.leonardofranca.com.br</link>
	<description>Flash Platform, Adobe AIR, ActionScript, Flash, RIA, Flex, Flash Media Server, RED5, Flash Lite, PHP, ZendAMF, AMFPHP, Java, GraniteDS, BlazeDS</description>
	<lastBuildDate>Thu, 02 Sep 2010 06:47:01 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Desenvolvendo games para Nintendo Wii com Adobe Flash</title>
		<link>http://www.leonardofranca.com.br/index.php/2010/09/02/desenvolvendo-games-para-nintendo-wii-com-adobe-flash/</link>
		<comments>http://www.leonardofranca.com.br/index.php/2010/09/02/desenvolvendo-games-para-nintendo-wii-com-adobe-flash/#comments</comments>
		<pubDate>Thu, 02 Sep 2010 06:45:24 +0000</pubDate>
		<dc:creator>Leonardo França</dc:creator>
				<category><![CDATA[Flash]]></category>
		<category><![CDATA[Flash Lite]]></category>
		<category><![CDATA[Nintendo Wii]]></category>

		<guid isPermaLink="false">http://www.leonardofranca.com.br/?p=1044</guid>
		<description><![CDATA[
			
				
			
		
O Nintendo Wii é um dos consoles mais populares da atualidade, com seu controle até então inovador para época de seu lançamento, se tornou um video game "para família" e para varias utilidades. Hoje o Nintendo Wii é usado em varias partes do mundo não somente para diversão, mas também em aréas como fisioterapia para [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.leonardofranca.com.br%2Findex.php%2F2010%2F09%2F02%2Fdesenvolvendo-games-para-nintendo-wii-com-adobe-flash%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.leonardofranca.com.br%2Findex.php%2F2010%2F09%2F02%2Fdesenvolvendo-games-para-nintendo-wii-com-adobe-flash%2F&amp;style=normal" height="61" width="50" /><br />
			</a>
		</div>
<p><a href="http://www.nintendo.com/wii"><img src="http://www.leonardofranca.com.br/wp-content/uploads/2010/08/top_left_off-e1282913645251.png" alt="" title="Nintendo Wii" width="120" height="110" class="alignleft size-full wp-image-1048" /></a>O Nintendo Wii é um dos consoles mais populares da atualidade, com seu controle até então inovador para época de seu lançamento, se tornou um video game "para família" e para varias utilidades. Hoje o Nintendo Wii é usado em varias partes do mundo não somente para diversão, mas também em aréas como <a href="http://www.fisiogames.com.br/">fisioterapia</a> para <a href="http://francodesign.blogspot.com/2007/12/wii-fit-fisioterapeutas-utilizam-wii-na.html">recuperação</a> de pacientes <img src='http://www.leonardofranca.com.br/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> <span id="more-1044"></span></p>
<blockquote><p>
Hoje o Nintendo Wii é usado em varias partes do mundo não somente para diversão, mas também em aréas como <a href="http://www.fisiogames.com.br/">fisioterapia</a> para <a href="http://francodesign.blogspot.com/2007/12/wii-fit-fisioterapeutas-utilizam-wii-na.html">recuperação</a> de pacientes <img src='http://www.leonardofranca.com.br/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' />
</p></blockquote>
<p>Bom, sabemos que é possivel desenvolver em Flash para o Nintendo Wii, mas precisamos observar alguns detalhes primeiro. Vejamos a especificação do Flash Player para o Nintendo Wii que consta no Adobe Device Central CS5.<br />
<div id="attachment_1067" class="wp-caption aligncenter" style="width: 160px"><a href="http://www.leonardofranca.com.br/wp-content/uploads/2010/08/espec_flash_player_wii.png"><img src="http://www.leonardofranca.com.br/wp-content/uploads/2010/08/espec_flash_player_wii-150x150.png" alt="" title="espec_flash_player_wii" width="150" height="150" class="size-thumbnail wp-image-1067" /></a><p class="wp-caption-text">Especificação Flash Player no Nintendo Wii</p></div><br />
Note que teremos que trabalhar com o Flash Player 7, mas no site da Nintendo consta que <a href="http://www.nintendo.com/consumer/systems/wii/en_na/channelsInternet.jsp">pode ser atualizado para o Flash Player 8</a>, e o aplicativo rodará pelo browser do Wii, seu browser é uma versão do Opera feita exclusivamente para o Wii.<br />
<a href="http://en.wikipedia.org/wiki/Internet_Channel">Wikipedia</a> diz que o Flash Player foi atualizado para o Adobe Flash Lite 3.1, que corresponde ao Flash Player 8 com algumas features do Flash Player 9. Mas eu criei um arquivo Flash Player 9 com ActionScript 2.0 e funcionou, criei um arquivo Flash Player 9 com ActionScript 3.0 e não funcionou, criei um Flash Lite 3.1 e funcionou. <strong>Fiquei com Flash Player 9 e ActionScript 2.0 para meus testes.(System.capabilities.version mostra AFL 9,1,122,0)</strong></p>
<p>Vamos fazer um primeiro exemplo para ver como fica o funcionamento do Flash Player com o Wii Remote.</p>
<ul>
<li>Crie um novo arquivo do tipo ActionScript 2.0 e logo em seguida, coloque o filme para compilar no Flash Player 8 ou 9. Ou pode fazer isso diretamente pelo Adobe Device Central CS5, que deixa tudo configurado para você, inclusive com o tamanho ideial para rodar no navegador do Wii.</li>
<li>O objetivo desse exemplo é avaliar o funcionamento dos botões do Wii Remote, criaremos um simbolo do tipo MovieClip.</li>
<li>Insira o seguinte código no MovieClip para que nosso simbolo possa ser arrastado pelo Wii Remote:
<div class="igBar"><span id="lactionscript-2"><a href="#" onclick="javascript:showPlainTxt('actionscript-2'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">ACTIONSCRIPT:</span>
<div id="actionscript-2">
<div class="actionscript" style="font-family:monospace;">
<ol>
<li style="font-weight: normal; vertical-align:top;color:#3A6A8B;">
<div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"><span style="color: #0066CC;">onClipEvent</span><span style="color: #66cc66;">&#40;</span>mouseDown<span style="color: #66cc66;">&#41;</span></div>
</li>
<li style="font-weight: bold; vertical-align:top;color:#26536A;">
<div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"><span style="color: #66cc66;">&#123;</span></div>
</li>
<li style="font-weight: normal; vertical-align:top;color:#3A6A8B;">
<div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;">&nbsp; &nbsp; <span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">startDrag</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;</div>
</li>
<li style="font-weight: bold; vertical-align:top;color:#26536A;">
<div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"><span style="color: #66cc66;">&#125;</span></div>
</li>
<li style="font-weight: normal; vertical-align:top;color:#3A6A8B;">
<div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"><span style="color: #0066CC;">onClipEvent</span><span style="color: #66cc66;">&#40;</span>mouseUp<span style="color: #66cc66;">&#41;</span></div>
</li>
<li style="font-weight: bold; vertical-align:top;color:#26536A;">
<div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"><span style="color: #66cc66;">&#123;</span></div>
</li>
<li style="font-weight: normal; vertical-align:top;color:#3A6A8B;">
<div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;">&nbsp; &nbsp; <span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">stopDrag</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;</div>
</li>
<li style="font-weight: bold; vertical-align:top;color:#26536A;">
<div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"><span style="color: #66cc66;">&#125;</span></div>
</li>
</ol>
</div>
</div>
</div>
<p>
</li>
</ul>
<p>Pelo que pude perceber, somente nos eventos de mouse que podemos utilizar no Nintendo Wii, não foi possivél usar os outros botões e o direcional pad.<br />
Você pode testar o exemplo abrindo a seguinte URL no navegador do Wii <a href="http://www.leonardofranca.com.br/wii">http://www.leonardofranca.com.br/wii</a> ou veja no video abaixo.<br />
<object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/VZo4y8zt8Yg&#038;hl=pt&#038;fs=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/VZo4y8zt8Yg&#038;hl=pt&#038;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object></p>
<p>Apesar da limitação de só usar eventos do mouse, dá pra fazer aplicativos bem interessantes em Flash para Nintendo Wii. Deixo um link com alguns games para Nintendo Wii feitos em Flash. <img src='http://www.leonardofranca.com.br/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /><br />
<a href="http://www.eiksoft.com/wii/index.htm">http://www.eiksoft.com/wii/index.htm</a></p>
<p>Para saber mais:<br />
<a href="http://livedocs.adobe.com/flash/9.0/main/wwhelp/wwhimpl/js/html/wwhelp.htm">Documentação ActionScript 2.0</a></p>
<p>Aproveite e compre seu Nintendo Wii <img src='http://www.leonardofranca.com.br/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /><br />
<a href="http://www.submarino.com.br/produto/12/1792681/nintendo+wii+com+jogo+wii+sports/?franq=171422">Nintendo Wii com Jogo Wii Sports</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.leonardofranca.com.br/index.php/2010/09/02/desenvolvendo-games-para-nintendo-wii-com-adobe-flash/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Lazy Loading com Adobe Flex e BlazeDS</title>
		<link>http://www.leonardofranca.com.br/index.php/2010/08/31/lazy-loading-com-adobe-flex-e-blazeds/</link>
		<comments>http://www.leonardofranca.com.br/index.php/2010/08/31/lazy-loading-com-adobe-flex-e-blazeds/#comments</comments>
		<pubDate>Tue, 31 Aug 2010 11:01:55 +0000</pubDate>
		<dc:creator>Leonardo França</dc:creator>
				<category><![CDATA[BlazeDS]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[Java]]></category>

		<guid isPermaLink="false">http://www.leonardofranca.com.br/?p=1151</guid>
		<description><![CDATA[
			
				
			
		
BlazeDS é uma implementação feita em Java para se trabalhar com o protocolo AMF(Action Message Format) e facilitar a comunicação entre o swf e seu server-side em Java.
Quando você começa a utilizar um recurso diferentemente da maioria das pessoas, pode achar algums problemas dificeis de resolver. Com Java e Flex o velho problema é o [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.leonardofranca.com.br%2Findex.php%2F2010%2F08%2F31%2Flazy-loading-com-adobe-flex-e-blazeds%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.leonardofranca.com.br%2Findex.php%2F2010%2F08%2F31%2Flazy-loading-com-adobe-flex-e-blazeds%2F&amp;style=normal" height="61" width="50" /><br />
			</a>
		</div>
<p><a href="http://opensource.adobe.com/wiki/display/blazeds/Overview"><img src="http://www.leonardofranca.com.br/wp-content/uploads/2010/08/blazeds_high_119x125.jpg" alt="" title="blazeds_high_119x125" width="119" height="125" class="alignleft size-full wp-image-1152" /></a>BlazeDS é uma implementação feita em Java para se trabalhar com o protocolo AMF(Action Message Format) e facilitar a comunicação entre o swf e seu server-side em Java.<br />
Quando você começa a utilizar um recurso diferentemente da maioria das pessoas, pode achar algums problemas dificeis de resolver. Com Java e Flex o velho problema é o Lazy Loading, que ja foi assunto de varias discurssões entre eu e o <a href="http://www.wendersonsouza.com.br">Wenderson</a><span id="more-1151"></span>. Eu deixei esse assunto de lado para focar em outras coisas. No entanto o Wenderson conseguiu achar uma solução, veja o artigo completo com a solução.<br />
<a href="http://www.wendersonsouza.com.br/index.php/2010/08/30/adobe-flex-blazeds-gilead-lazyloading-resolvidolazyloading-solved/">Adobe Flex, BlazeDS, Gilead, LazyLoading Resolvido(LazyLoading Solved)</a></p>
<p>Livros recomendados:<br />
<a href="http://www.submarino.com.br/produto/1/21846618/flex+3+em+acao/?franq=171422">Flex 3 em Ação</a><br />
<a href="http://www.submarino.com.br/produto/1/21565256/adobe+flex+3+treinamento+direto+da+fonte/?franq=171422">Adobe Flex 3 Treinamento Direto da Fonte</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.leonardofranca.com.br/index.php/2010/08/31/lazy-loading-com-adobe-flex-e-blazeds/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Usando Acelerômetro no Flash Lite com Nokia Platform Services</title>
		<link>http://www.leonardofranca.com.br/index.php/2010/08/30/usando-acelerometro-no-flash-lite-com-nokia-platform-services/</link>
		<comments>http://www.leonardofranca.com.br/index.php/2010/08/30/usando-acelerometro-no-flash-lite-com-nokia-platform-services/#comments</comments>
		<pubDate>Mon, 30 Aug 2010 15:13:49 +0000</pubDate>
		<dc:creator>Leonardo França</dc:creator>
				<category><![CDATA[Flash]]></category>
		<category><![CDATA[Flash Lite]]></category>
		<category><![CDATA[Nokia]]></category>

		<guid isPermaLink="false">http://www.leonardofranca.com.br/?p=783</guid>
		<description><![CDATA[
			
				
			
		
Acelerômetro é um sensor de movimento, sendo um dispositivo responsável por medir as posições relativas nos eixos x, y e z, ou seja, calcular a aceleração do objeto. Hoje em dia é usado para as mais variadas utilidades como por exemplo: air bags, medição de vibrações, medições de inclinação, smartphones, video games etc.

O Acelerômetro é [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.leonardofranca.com.br%2Findex.php%2F2010%2F08%2F30%2Fusando-acelerometro-no-flash-lite-com-nokia-platform-services%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.leonardofranca.com.br%2Findex.php%2F2010%2F08%2F30%2Fusando-acelerometro-no-flash-lite-com-nokia-platform-services%2F&amp;style=normal" height="61" width="50" /><br />
			</a>
		</div>
<p><img src="http://www.leonardofranca.com.br/wp-content/uploads/2010/08/acelerometro-e1283102101239.jpeg" alt="" title="acelerometro" width="120" height="89" class="alignleft size-full wp-image-1101" />Acelerômetro é um sensor de movimento, sendo um dispositivo responsável por medir as posições relativas nos eixos x, y e z, ou seja, calcular a aceleração do objeto. Hoje em dia é usado para as mais variadas utilidades como por exemplo: air bags, medição de vibrações, medições de inclinação, smartphones, video games etc<span id="more-783"></span>.</p>
<blockquote><p>
O Acelerômetro é usado hoje em dia é usado para as mais variadas utilidades como por exemplo: air bags, medição de vibrações, medições de inclinação, smartphones, video games etc.
</p></blockquote>
<p>O Flash Player 10.1(só para mobile) e o Flash Lite 4.0 possuem acesso ao acelerômetro do dispositivo. Estou ancioso para colocar as mãos em um Nokia N8 para testar as novas funcionalidades do <a href="http://help.adobe.com/en_US/flashlite/dev/4/index.html">Flash Lite 4.0</a>, mas esta dificil. Enquanto isso, vamos desenvolvendo com Flash Lite 3.0 e 3.1.<br />
A Nokia criou uma <a href="http://www.forum.nokia.com/Develop/Other_Technologies/Flash_lite/">biblioteca </a>especialmente para trabalhar em conjunto com o Flash Lite dando acesso a recurso que nativamente não são possivéis como acesso ao acelerômetro, GPS, agenda de contatos etc.</p>
<blockquote><p>
A Nokia criou uma <a href="http://www.forum.nokia.com/Develop/Other_Technologies/Flash_lite/">biblioteca </a>especialmente para trabalhar em conjunto com o Flash Lite dando acesso a recurso que nativamente não são possivéis como acesso ao acelerômetro, GPS, agenda de contatos etc.
</p></blockquote>
<p>Vou mostrar um exemplo simples do uso do acelerômetro com Flash Lite 3.0 e Nokia Platform Services.<br />
Baixe a <a href="http://library.forum.nokia.com/topic/Flash_Lite_Developers_Library/ActionScript_library_for_S60_Platform_Services.zip">biblioteca</a> da Nokia e em seguida salve no diretorio de acordo com seu sistema operacional:</p>
<blockquote><p>
O Nokia Platform Services só funciona em dispositivos com o Symbian S60 5th.
</p></blockquote>
<ul>
<li>No Mac - Copie para /Users/<user name>/Library/Application/Support/Adobe/Flash CS5/en/Configuration/Classes/</li>
<li>No Windows Vista - Extraia para /Users/<user name>/AppData/Local/Adobe/Flash CS4/en/Configuration/Classes.</li>
<li>No Windows XP - Extraia para /<user name>/Local Settings/Application Data/Adobe/Flash CS5/en/Configuration/Classes/</li>
</ul>
<p>Começaremos nosso primeiro exemplo:</p>
<ul>
<li>Crie um arquivo do tipo ActionScript 2.0 e peça para compilar para o Flash Lite 3.0 ou 3.1. Ou pode criar diretamente pelo Adobe Device Central CS5.</li>
<li>Crie um simbolo do tipo MovieClip e dê o nome de instância de "ball_mc".</li>
<li>Crie três campos de textos do tipo dinâmicos, neles serão mostradas as posições x, y e z.</li>
<li>Devemos ter o stage parecido com isto:<div id="attachment_1119" class="wp-caption aligncenter" style="width: 160px"><a href="http://www.leonardofranca.com.br/wp-content/uploads/2010/08/stage_acelerometro.png"><img src="http://www.leonardofranca.com.br/wp-content/uploads/2010/08/stage_acelerometro-150x150.png" alt="" title="stage_acelerometro" width="150" height="150" class="size-thumbnail wp-image-1119" /></a><p class="wp-caption-text">Stage para testar Acelerômetro</p></div></li>
</ul>
<p>Feito isto, vamos a parte de programação agora:<br />
Começaremos configurando o stage para não modificar o tamanho do aplicativo caso a janela sejá redimensionada. O "DisableKeypadCompatibilityMode" serve para usar em smartphones com telas touchscreen, se não for usado, o smartphone automaticamente adicionar as teclas virtuais referente a um smartphone não-touchscreen.</p>
<div class="igBar"><span id="lactionscript-7"><a href="#" onclick="javascript:showPlainTxt('actionscript-7'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">ACTIONSCRIPT:</span>
<div id="actionscript-7">
<div class="actionscript" style="font-family:monospace;">
<ol>
<li style="font-weight: normal; vertical-align:top;color:#3A6A8B;">
<div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"><span style="color: #0066CC;">Stage</span>.<span style="color: #0066CC;">scaleMode</span> = <span style="color: #ff0000;">&quot;noScale&quot;</span>;</div>
</li>
<li style="font-weight: bold; vertical-align:top;color:#26536A;">
<div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"><span style="color: #0066CC;">Stage</span>.<span style="color: #0066CC;">align</span> = <span style="color: #ff0000;">&quot;LT&quot;</span>;</div>
</li>
<li style="font-weight: normal; vertical-align:top;color:#3A6A8B;">
<div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;">&nbsp;</div>
</li>
<li style="font-weight: bold; vertical-align:top;color:#26536A;">
<div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;">fscommand2<span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;DisableKeypadCompatibilityMode&quot;</span><span style="color: #66cc66;">&#41;</span>;</div>
</li>
<li style="font-weight: normal; vertical-align:top;color:#3A6A8B;">
<div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;">fscommand2<span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;FullScreen&quot;</span>, <span style="color: #ff0000;">&quot;true&quot;</span><span style="color: #66cc66;">&#41;</span>;</div>
</li>
</ol>
</div>
</div>
</div>
<p>
Agora vamos importar as classes feitas pela Nokia e utilizar a classe Device e desabilitar a autorotação do aplicativo.</p>
<div class="igBar"><span id="lactionscript-8"><a href="#" onclick="javascript:showPlainTxt('actionscript-8'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">ACTIONSCRIPT:</span>
<div id="actionscript-8">
<div class="actionscript" style="font-family:monospace;">
<ol>
<li style="font-weight: normal; vertical-align:top;color:#3A6A8B;">
<div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"><span style="color: #0066CC;">import</span> com.<span style="color: #006600;">nokia</span>.<span style="color: #006600;">lib</span>.<span style="color: #006600;">Service</span>;</div>
</li>
<li style="font-weight: bold; vertical-align:top;color:#26536A;">
<div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"><span style="color: #0066CC;">import</span> com.<span style="color: #006600;">nokia</span>.<span style="color: #006600;">lib</span>.<span style="color: #006600;">Device</span>;</div>
</li>
<li style="font-weight: normal; vertical-align:top;color:#3A6A8B;">
<div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;">&nbsp;</div>
</li>
<li style="font-weight: bold; vertical-align:top;color:#26536A;">
<div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"><span style="color: #000000; font-weight: bold;">var</span> deviceObject:<span style="color: #0066CC;">Object</span> = <span style="color: #000000; font-weight: bold;">new</span> Device<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;</div>
</li>
<li style="font-weight: normal; vertical-align:top;color:#3A6A8B;">
<div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;">deviceObject.<span style="color: #006600;">DisableAutoRotation</span><span style="color: #66cc66;">&#40;</span><span style="color: #000000; font-weight: bold;">true</span><span style="color: #66cc66;">&#41;</span>;</div>
</li>
</ol>
</div>
</div>
</div>
<p>
Utilizaremos a classe Service passando o paramentro Sensor e em seguida passando como criterio de busca as coordenadas do acelerômetro.</p>
<div class="igBar"><span id="lactionscript-9"><a href="#" onclick="javascript:showPlainTxt('actionscript-9'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">ACTIONSCRIPT:</span>
<div id="actionscript-9">
<div class="actionscript" style="font-family:monospace;">
<ol>
<li style="font-weight: normal; vertical-align:top;color:#3A6A8B;">
<div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"><span style="color: #000000; font-weight: bold;">var</span> sensors = <span style="color: #000000; font-weight: bold;">new</span> Service<span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;Service.Sensor&quot;</span>, <span style="color: #ff0000;">&quot;ISensor&quot;</span><span style="color: #66cc66;">&#41;</span>;</div>
</li>
<li style="font-weight: bold; vertical-align:top;color:#26536A;">
<div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"><span style="color: #000000; font-weight: bold;">var</span> inParam = <span style="color: #66cc66;">&#123;</span>SearchCriterion:<span style="color: #ff0000;">&quot;AccelerometerAxis&quot;</span><span style="color: #66cc66;">&#125;</span>;</div>
</li>
<li style="font-weight: normal; vertical-align:top;color:#3A6A8B;">
<div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"><span style="color: #000000; font-weight: bold;">var</span> outParams = sensors.<span style="color: #006600;">FindSensorChannel</span><span style="color: #66cc66;">&#40;</span>inParam<span style="color: #66cc66;">&#41;</span>;</div>
</li>
</ol>
</div>
</div>
</div>
<p>
Será retornado uma serie de valores que usaremos para "avisar" o smartphone que nosso aplicativo será atualizado a cada mudança de valor das coordenadas do acelerômetro através de um método callback.</p>
<div class="igBar"><span id="lactionscript-10"><a href="#" onclick="javascript:showPlainTxt('actionscript-10'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">ACTIONSCRIPT:</span>
<div id="actionscript-10">
<div class="actionscript" style="font-family:monospace;">
<ol>
<li style="font-weight: normal; vertical-align:top;color:#3A6A8B;">
<div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"><span style="color: #000000; font-weight: bold;">var</span> channelInfo = outParams.<span style="color: #006600;">ReturnValue</span>;</div>
</li>
<li style="font-weight: bold; vertical-align:top;color:#26536A;">
<div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"><span style="color: #000000; font-weight: bold;">var</span> channelId = channelInfo<span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;color:#800000;">0</span><span style="color: #66cc66;">&#93;</span>.<span style="color: #006600;">ChannelId</span>;</div>
</li>
<li style="font-weight: normal; vertical-align:top;color:#3A6A8B;">
<div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"><span style="color: #000000; font-weight: bold;">var</span> contextType = channelInfo<span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;color:#800000;">0</span><span style="color: #66cc66;">&#93;</span>.<span style="color: #006600;">ContextType</span>;</div>
</li>
<li style="font-weight: bold; vertical-align:top;color:#26536A;">
<div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"><span style="color: #000000; font-weight: bold;">var</span> quantity = channelInfo<span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;color:#800000;">0</span><span style="color: #66cc66;">&#93;</span>.<span style="color: #006600;">Quantity</span>;</div>
</li>
<li style="font-weight: normal; vertical-align:top;color:#3A6A8B;">
<div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"><span style="color: #000000; font-weight: bold;">var</span> channelType = channelInfo<span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;color:#800000;">0</span><span style="color: #66cc66;">&#93;</span>.<span style="color: #006600;">ChannelType</span>;</div>
</li>
<li style="font-weight: bold; vertical-align:top;color:#26536A;">
<div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"><span style="color: #000000; font-weight: bold;">var</span> location = channelInfo<span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;color:#800000;">0</span><span style="color: #66cc66;">&#93;</span>.<span style="color: #006600;">Location</span>;</div>
</li>
<li style="font-weight: normal; vertical-align:top;color:#3A6A8B;">
<div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"><span style="color: #000000; font-weight: bold;">var</span> vendorId = channelInfo<span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;color:#800000;">0</span><span style="color: #66cc66;">&#93;</span>.<span style="color: #006600;">VendorId</span>;</div>
</li>
<li style="font-weight: bold; vertical-align:top;color:#26536A;">
<div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"><span style="color: #000000; font-weight: bold;">var</span> dataItemSize = channelInfo<span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;color:#800000;">0</span><span style="color: #66cc66;">&#93;</span>.<span style="color: #006600;">DataItemSize</span>;</div>
</li>
<li style="font-weight: normal; vertical-align:top;color:#3A6A8B;">
<div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"><span style="color: #000000; font-weight: bold;">var</span> channelDataTypeId = channelInfo<span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;color:#800000;">0</span><span style="color: #66cc66;">&#93;</span>.<span style="color: #006600;">ChannelDataTypeId</span>;</div>
</li>
<li style="font-weight: bold; vertical-align:top;color:#26536A;">
<div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"><span style="color: #000000; font-weight: bold;">var</span> channelParams = <span style="color: #66cc66;">&#123;</span>ChannelId:channelId, ContextType:contextType, Quantity:quantity, ChannelType:channelType, Location:location, VendorId:vendorId, DataItemSize:dataItemSize, ChannelDataTypeId:channelDataTypeId<span style="color: #66cc66;">&#125;</span>;</div>
</li>
<li style="font-weight: normal; vertical-align:top;color:#3A6A8B;">
<div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;">&nbsp;</div>
</li>
<li style="font-weight: bold; vertical-align:top;color:#26536A;">
<div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"><span style="color: #000000; font-weight: bold;">var</span> inParams = <span style="color: #66cc66;">&#123;</span>ListeningType:<span style="color: #ff0000;">&quot;ChannelData&quot;</span>, ChannelInfoMap:channelParams<span style="color: #66cc66;">&#125;</span>;</div>
</li>
<li style="font-weight: normal; vertical-align:top;color:#3A6A8B;">
<div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;">sensors.<span style="color: #006600;">RegisterForNotification</span><span style="color: #66cc66;">&#40;</span>inParams, callBack<span style="color: #66cc66;">&#41;</span>;</div>
</li>
<li style="font-weight: bold; vertical-align:top;color:#26536A;">
<div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"><span style="color: #000000; font-weight: bold;">function</span> callBack<span style="color: #66cc66;">&#40;</span>transactionID:<span style="color: #0066CC;">String</span>, eventID:<span style="color: #0066CC;">String</span>, outParam:<span style="color: #0066CC;">Object</span><span style="color: #66cc66;">&#41;</span> </div>
</li>
<li style="font-weight: normal; vertical-align:top;color:#3A6A8B;">
<div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"><span style="color: #66cc66;">&#123;</span></div>
</li>
<li style="font-weight: bold; vertical-align:top;color:#26536A;">
<div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;">&nbsp; &nbsp; <span style="color: #b1b100;">if</span> <span style="color: #66cc66;">&#40;</span>outParam.<span style="color: #006600;">ErrorCode</span> == <span style="color: #cc66cc;color:#800000;">0</span><span style="color: #66cc66;">&#41;</span> </div>
</li>
<li style="font-weight: normal; vertical-align:top;color:#3A6A8B;">
<div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;">&nbsp; &nbsp; <span style="color: #66cc66;">&#123;</span></div>
</li>
<li style="font-weight: bold; vertical-align:top;color:#26536A;">
<div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">var</span> channelData = outParam.<span style="color: #006600;">ReturnValue</span>;</div>
</li>
<li style="font-weight: normal; vertical-align:top;color:#3A6A8B;">
<div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;">&nbsp; &nbsp; &nbsp; &nbsp; txtX.<span style="color: #0066CC;">text</span> = channelData.<span style="color: #006600;">XAxisData</span>;</div>
</li>
<li style="font-weight: bold; vertical-align:top;color:#26536A;">
<div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;">&nbsp; &nbsp; &nbsp; &nbsp; txtY.<span style="color: #0066CC;">text</span> = channelData.<span style="color: #006600;">YAxisData</span>;</div>
</li>
<li style="font-weight: normal; vertical-align:top;color:#3A6A8B;">
<div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;">&nbsp; &nbsp; &nbsp; &nbsp; txtZ.<span style="color: #0066CC;">text</span> = channelData.<span style="color: #006600;">ZAxisData</span>;</div>
</li>
<li style="font-weight: bold; vertical-align:top;color:#26536A;">
<div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;">&nbsp; &nbsp; &nbsp; &nbsp; </div>
</li>
<li style="font-weight: normal; vertical-align:top;color:#3A6A8B;">
<div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;">&nbsp; &nbsp; &nbsp; &nbsp; xSpeed -= channelData.<span style="color: #006600;">XAxisData</span><span style="color: #66cc66;">/</span>NOISE;</div>
</li>
<li style="font-weight: bold; vertical-align:top;color:#26536A;">
<div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;">&nbsp; &nbsp; &nbsp; &nbsp; ySpeed += channelData.<span style="color: #006600;">YAxisData</span><span style="color: #66cc66;">/</span>NOISE;</div>
</li>
<li style="font-weight: normal; vertical-align:top;color:#3A6A8B;">
<div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;">&nbsp; &nbsp; <span style="color: #66cc66;">&#125;</span></div>
</li>
<li style="font-weight: bold; vertical-align:top;color:#26536A;">
<div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"><span style="color: #66cc66;">&#125;</span></div>
</li>
</ol>
</div>
</div>
</div>
<p>
Depois basta atualizar as coordenadas x e y com os valores xSpeed e ySpeed em nosso MovieClip. Disponibilizei no fonte um código para delimitar até onde o MovieClip pode andar, ou seja, somente na area do nosso aplicativo.<br />
<a href="http://www.leonardofranca.com.br/wp-content/uploads/2010/08/acelerometro.zip"><img src="http://www.leonardofranca.com.br/wp-content/uploads/2010/08/archive.png" alt="" title="archive" width="46" height="60" valign="absmiddle" /></a> <strong><a href="http://www.leonardofranca.com.br/wp-content/uploads/2010/08/acelerometro.zip">DOWNLOAD SOURCE</a></strong> </p>
<p>Para saber mais:<br />
<a href="http://www.forum.nokia.com/Develop/Other_Technologies/Flash_lite/">http://www.forum.nokia.com/Develop/Other_Technologies/Flash_lite/</a><br />
<a href="http://library.forum.nokia.com/index.jsp?topic=/Flash_Lite_Developers_Library/GUID-46EABDC1-37CB-412A-ACAD-1A1A9466BB68.html">http://library.forum.nokia.com/index.jsp?topic=/Flash_Lite_Developers_Library/GUID-46EABDC1-37CB-412A-ACAD-1A1A9466BB68.html</a></p>
<p>Se você esta procurando um livre sobre Flash Lite, recomendo <a href="http://www.submarino.com.br/produto/1/1470159/flash+lite+2:+crie+aplicativos+e+games+para+celulares/?franq=171422">Flash Lite 2: Crie Aplicativos e Games para Celulares</a> do meu amigo Fabricio Manzi, creio que seja o único em português que temos <img src='http://www.leonardofranca.com.br/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.leonardofranca.com.br/index.php/2010/08/30/usando-acelerometro-no-flash-lite-com-nokia-platform-services/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Detectando movimentos da webcam com Adobe Flash</title>
		<link>http://www.leonardofranca.com.br/index.php/2010/08/27/detectando-movimentos-da-webcam-com-adobe-flash/</link>
		<comments>http://www.leonardofranca.com.br/index.php/2010/08/27/detectando-movimentos-da-webcam-com-adobe-flash/#comments</comments>
		<pubDate>Fri, 27 Aug 2010 10:51:24 +0000</pubDate>
		<dc:creator>Leonardo França</dc:creator>
				<category><![CDATA[ActionScript 3.0]]></category>
		<category><![CDATA[Adobe AIR]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Flex]]></category>

		<guid isPermaLink="false">http://www.leonardofranca.com.br/?p=979</guid>
		<description><![CDATA[
			
				
			
		
Um recurso interessante e que pouca gente conhece no Flash Player ou Adobe AIR, é que além de acessar recursos como a webcam do usuário, ele pode também detectar se há ou não movimentos na camera. Isso pode ser útil se você está implementando um sistema de stream ao vivo e quer economizar a banda [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.leonardofranca.com.br%2Findex.php%2F2010%2F08%2F27%2Fdetectando-movimentos-da-webcam-com-adobe-flash%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.leonardofranca.com.br%2Findex.php%2F2010%2F08%2F27%2Fdetectando-movimentos-da-webcam-com-adobe-flash%2F&amp;style=normal" height="61" width="50" /><br />
			</a>
		</div>
<p><a href="http://www.leonardofranca.com.br/wp-content/uploads/2010/08/webcam-e1282877589444.jpg"><img src="http://www.leonardofranca.com.br/wp-content/uploads/2010/08/webcam-e1282877589444.jpg" alt="" title="webcam" width="150" height="121" class="alignleft size-full wp-image-1001" /></a>Um recurso interessante e que pouca gente conhece no Flash Player ou Adobe AIR, é que além de acessar recursos como a webcam do usuário, ele pode também detectar se há ou não movimentos na camera. Isso pode ser útil se você está implementando um sistema de stream ao vivo e quer economizar a banda usada. Por exemplo, só será publicado o stream se a camera tiver algum movimento<span id="more-979"></span>. </p>
<blockquote><p>
O Flash Player ou Adobe AIR, além de acessar recursos como a webcam do usuário, pode também detectar se há ou não movimentos na camera.
</p></blockquote>
<p>Vamos ver um exemplo usando o Adobe Flash Professional CS5 e com Flash Builder 4(usando o framework Flex 4).</p>
<p><strong>Adobe Flash Professional CS5</strong></p>
<ul>
<li>Crie um arquivo do tipo ActionScript 3.0</li>
<li>Aperte F11 para abrir a library, peça para criar um novo simbolo do tipo "video":<div id="attachment_1011" class="wp-caption aligncenter" style="width: 160px"><a href="http://www.leonardofranca.com.br/wp-content/uploads/2010/08/library_flash.jpg"><img src="http://www.leonardofranca.com.br/wp-content/uploads/2010/08/library_flash-150x150.jpg" alt="" title="library_flash" width="150" height="150" class="size-thumbnail wp-image-1011" /></a><p class="wp-caption-text">Library->New Video</p></div></li>
<li>Aparecerá uma nova janela, de o nome de "cam" e deixe a opção "Video (ActionScript-controlled)" selecionada:<div id="attachment_1013" class="wp-caption aligncenter" style="width: 160px"><a href="http://www.leonardofranca.com.br/wp-content/uploads/2010/08/library_cam.jpg"><img src="http://www.leonardofranca.com.br/wp-content/uploads/2010/08/library_cam-150x150.jpg" alt="" title="library_cam" width="150" height="150" class="size-thumbnail wp-image-1013" /></a><p class="wp-caption-text">cam</p></div></li>
<li>Arraste o componente que você acabou de criar para o stage e de o nome de instância de "cam", depois redimesione para 320x240.</li>
<li>Arraste um componente do tipo ProgressBar da library User Interface. Dê o nome de instância "pbar".</li>
<li>Feito isto, você deve ter algo parecido com isto:<div id="attachment_1015" class="wp-caption aligncenter" style="width: 160px"><a href="http://www.leonardofranca.com.br/wp-content/uploads/2010/08/stage_cam.jpg"><img src="http://www.leonardofranca.com.br/wp-content/uploads/2010/08/stage_cam-150x150.jpg" alt="" title="stage_cam" width="150" height="150" class="size-thumbnail wp-image-1015" /></a><p class="wp-caption-text">Stage pronto para começar a programação</p></div></li>
</ul>
<p>Temos nosso stage pronto para começar a programação ActionScript 3.0. Vamos começar com o Flash Player pedindo para ter acesso a webcam e em seguida colocar a imagem da webcam em nosso componente de video.</p>
<div class="igBar"><span id="lactionscript3-16"><a href="#" onclick="javascript:showPlainTxt('actionscript3-16'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">ACTIONSCRIPT3:</span>
<div id="actionscript3-16">
<div class="actionscript3" style="font-family:monospace;">
<ol>
<li style="font-weight: normal; vertical-align:top;color:#3A6A8B;">
<div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;">myCam = <a href="http://www.google.com/search?q=camera%20inurl:http://livedocs.adobe.com/flex/201/langref/%20inurl:camera.html&amp;filter=0&amp;num=100&amp;btnI=lucky"><span style="color: #004993;">Camera</span></a>.<span style="color: #004993;">getCamera</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>;</div>
</li>
<li style="font-weight: bold; vertical-align:top;color:#26536A;">
<div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;">cam.<span style="color: #004993;">attachCamera</span><span style="color: #000000;">&#40;</span>myCam<span style="color: #000000;">&#41;</span>;</div>
</li>
</ol>
</div>
</div>
</div>
<p>
Agora basta fazer com que nosso filme escute o evento "ActivityEvent" da webcam.</p>
<div class="igBar"><span id="lactionscript3-17"><a href="#" onclick="javascript:showPlainTxt('actionscript3-17'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">ACTIONSCRIPT3:</span>
<div id="actionscript3-17">
<div class="actionscript3" style="font-family:monospace;">
<ol>
<li style="font-weight: normal; vertical-align:top;color:#3A6A8B;">
<div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;">myCam.<span style="color: #004993;">addEventListener</span><span style="color: #000000;">&#40;</span><a href="http://www.google.com/search?q=activityevent%20inurl:http://livedocs.adobe.com/flex/201/langref/%20inurl:activityevent.html&amp;filter=0&amp;num=100&amp;btnI=lucky"><span style="color: #004993;">ActivityEvent</span></a>.<span style="color: #004993;">ACTIVITY</span>,handlerMotion<span style="color: #000000;">&#41;</span>;</div>
</li>
</ol>
</div>
</div>
</div>
<p>
E no método handlerMotion, implementamos as ações na ProgressBar.</p>
<div class="igBar"><span id="lactionscript3-18"><a href="#" onclick="javascript:showPlainTxt('actionscript3-18'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">ACTIONSCRIPT3:</span>
<div id="actionscript3-18">
<div class="actionscript3" style="font-family:monospace;">
<ol>
<li style="font-weight: normal; vertical-align:top;color:#3A6A8B;">
<div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"><span style="color: #339966; font-weight: bold;">function</span> handlerMotion<span style="color: #000000;">&#40;</span>evt<span style="color: #000000; font-weight: bold;">:</span><a href="http://www.google.com/search?q=activityevent%20inurl:http://livedocs.adobe.com/flex/201/langref/%20inurl:activityevent.html&amp;filter=0&amp;num=100&amp;btnI=lucky"><span style="color: #004993;">ActivityEvent</span></a><span style="color: #000000;">&#41;</span><span style="color: #000000; font-weight: bold;">:</span><span style="color: #0033ff; font-weight: bold;">void</span></div>
</li>
<li style="font-weight: bold; vertical-align:top;color:#26536A;">
<div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"><span style="color: #000000;">&#123;</span></div>
</li>
<li style="font-weight: normal; vertical-align:top;color:#3A6A8B;">
<div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;">&nbsp; &nbsp; <span style="color: #004993;">trace</span><span style="color: #000000;">&#40;</span>evt.<span style="color: #004993;">target</span>.<span style="color: #004993;">activityLevel</span><span style="color: #000000;">&#41;</span>;</div>
</li>
<li style="font-weight: bold; vertical-align:top;color:#26536A;">
<div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;">&nbsp; &nbsp; pbar.setProgress<span style="color: #000000;">&#40;</span>evt.<span style="color: #004993;">target</span>.<span style="color: #004993;">activityLevel</span>,<span style="color: #000000; font-weight:bold;color:#800000;">100</span><span style="color: #000000;">&#41;</span>;</div>
</li>
<li style="font-weight: normal; vertical-align:top;color:#3A6A8B;">
<div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;">&nbsp; &nbsp; <span style="color: #0033ff; font-weight: bold;">if</span><span style="color: #000000;">&#40;</span>evt.<span style="color: #004993;">target</span>.<span style="color: #004993;">activityLevel</span> <span style="color: #000000; font-weight: bold;">&lt;</span><span style="color: #000000; font-weight:bold;color:#800000;">10</span><span style="color: #000000;">&#41;</span></div>
</li>
<li style="font-weight: bold; vertical-align:top;color:#26536A;">
<div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;">&nbsp; &nbsp; <span style="color: #000000;">&#123;</span></div>
</li>
<li style="font-weight: normal; vertical-align:top;color:#3A6A8B;">
<div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #004993;">trace</span><span style="color: #000000;">&#40;</span><span style="color: #990000;">&quot;muito quieto! =õ(&quot;</span><span style="color: #000000;">&#41;</span>;</div>
</li>
<li style="font-weight: bold; vertical-align:top;color:#26536A;">
<div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;">&nbsp; &nbsp; <span style="color: #000000;">&#125;</span></div>
</li>
<li style="font-weight: normal; vertical-align:top;color:#3A6A8B;">
<div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;">&nbsp; &nbsp; <span style="color: #0033ff; font-weight: bold;">else</span></div>
</li>
<li style="font-weight: bold; vertical-align:top;color:#26536A;">
<div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;">&nbsp; &nbsp; <span style="color: #000000;">&#123;</span></div>
</li>
<li style="font-weight: normal; vertical-align:top;color:#3A6A8B;">
<div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #004993;">trace</span><span style="color: #000000;">&#40;</span><span style="color: #990000;">&quot;eba! festa!!! <span style="">\\</span>o/<span style="">\\</span>O/<span style="">\\</span>o/&quot;</span><span style="color: #000000;">&#41;</span>;</div>
</li>
<li style="font-weight: bold; vertical-align:top;color:#26536A;">
<div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;">&nbsp; &nbsp; <span style="color: #000000;">&#125;</span></div>
</li>
<li style="font-weight: normal; vertical-align:top;color:#3A6A8B;">
<div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"><span style="color: #000000;">&#125;</span></div>
</li>
</ol>
</div>
</div>
</div>
<p>
Veja o exemplo em funcionamento:<br />

<object width="450" height="400">
<param name="movie" value="http://www.leonardofranca.com.br/wp-content/uploads/2010/08/motion_camera.swf"></param>
<param name="quality" value="high"></param>
<param name="wmode" value="window"></param>
<param name="menu" value="false"></param>
<param name="bgcolor" value="#FFFFFF"></param>
<embed type="application/x-shockwave-flash" width="450" height="400" src="http://www.leonardofranca.com.br/wp-content/uploads/2010/08/motion_camera.swf" quality="high" bgcolor="#FFFFFF" wmode="window" menu="false" ></embed>
</object>
</p>
<p><strong>Adobe Flex 4 </strong><br />
Agora veremos um exemplo usando o Adobe Flex, vou capturar a camera usando o componente VideoDisplay.</p>
<ul>
<li>Crie um projeto do tipo web(Flex) ou desktop(AIR).</li>
<li>Arraste um componente do tipo VideoDisplay e outro do tipo ProgressBar para o palco.</li>
<li>Devemos ter algo parecido com isso:
<div class="igBar"><span id="lmxml-19"><a href="#" onclick="javascript:showPlainTxt('mxml-19'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">MXML:</span>
<div id="mxml-19">
<div class="mxml" style="font-family:monospace;">
<ol>
<li style="font-weight: normal; vertical-align:top;color:#3A6A8B;">
<div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"><span style="color: #000000;">&lt;?xml version=<span style="color: #ff0000;">&quot;1.0&quot;</span> encoding=<span style="color: #ff0000;">&quot;utf-8&quot;</span>?<span style="color: #7400FF;">&gt;</span></span></div>
</li>
<li style="font-weight: bold; vertical-align:top;color:#26536A;">
<div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"><span style="color: #000000;"><span style="color: #7400FF;">&lt;s:Application</span> xmlns:fx=<span style="color: #ff0000;">&quot;http://ns.adobe.com/mxml/2009&quot;</span> </span></div>
</li>
<li style="font-weight: normal; vertical-align:top;color:#3A6A8B;">
<div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"><span style="color: #000000;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;xmlns:s=<span style="color: #ff0000;">&quot;library://ns.adobe.com/flex/spark&quot;</span> </span></div>
</li>
<li style="font-weight: bold; vertical-align:top;color:#26536A;">
<div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"><span style="color: #000000;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;xmlns:mx=<span style="color: #ff0000;">&quot;library://ns.adobe.com/flex/mx&quot;</span> minWidth=<span style="color: #ff0000;">&quot;450&quot;</span> minHeight=<span style="color: #ff0000;">&quot;400&quot;</span> width=<span style="color: #ff0000;">&quot;450&quot;</span> height=<span style="color: #ff0000;">&quot;400&quot;</span><span style="color: #7400FF;">&gt;</span></span></div>
</li>
<li style="font-weight: normal; vertical-align:top;color:#3A6A8B;">
<div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;">&nbsp; &nbsp; <span style="color: #000000;"><span style="color: #7400FF;">&lt;s:VideoDisplay</span> id=<span style="color: #ff0000;">&quot;cam&quot;</span> x=<span style="color: #ff0000;">&quot;48&quot;</span> y=<span style="color: #ff0000;">&quot;38&quot;</span> width=<span style="color: #ff0000;">&quot;360&quot;</span> height=<span style="color: #ff0000;">&quot;240&quot;</span><span style="color: #7400FF;">/&gt;</span></span></div>
</li>
<li style="font-weight: bold; vertical-align:top;color:#26536A;">
<div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;">&nbsp; &nbsp; <span style="color: #000000;"><span style="color: #7400FF;">&lt;mx:ProgressBar</span> id=<span style="color: #ff0000;">&quot;pbar&quot;</span> x=<span style="color: #ff0000;">&quot;125&quot;</span> y=<span style="color: #ff0000;">&quot;297&quot;</span><span style="color: #7400FF;">/&gt;</span></span></div>
</li>
<li style="font-weight: normal; vertical-align:top;color:#3A6A8B;">
<div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"><span style="color: #000000;"><span style="color: #7400FF;">&lt;/s:Application</span><span style="color: #7400FF;">&gt;</span></span></div>
</li>
</ol>
</div>
</div>
</div>
<p>
</li>
</ul>
<p>Basta implementar a programação ActionScript agora, é bem parecido com o modo de como fizemos no Flash. Mudaremos pouca coisa no código ActionScript 3.0.</p>
<div class="igBar"><span id="lactionscript3-20"><a href="#" onclick="javascript:showPlainTxt('actionscript3-20'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">ACTIONSCRIPT3:</span>
<div id="actionscript3-20">
<div class="actionscript3" style="font-family:monospace;">
<ol>
<li style="font-weight: normal; vertical-align:top;color:#3A6A8B;">
<div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"><span style="color: #0033ff; font-weight: bold;">protected</span> <span style="color: #339966; font-weight: bold;">function</span> application1_creationCompleteHandler<span style="color: #000000;">&#40;</span>event<span style="color: #000000; font-weight: bold;">:</span>FlexEvent<span style="color: #000000;">&#41;</span><span style="color: #000000; font-weight: bold;">:</span><span style="color: #0033ff; font-weight: bold;">void</span></div>
</li>
<li style="font-weight: bold; vertical-align:top;color:#26536A;">
<div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"><span style="color: #000000;">&#123;</span></div>
</li>
<li style="font-weight: normal; vertical-align:top;color:#3A6A8B;">
<div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;">&nbsp; &nbsp; pbar.<span style="color: #004993;">mode</span> = <span style="color: #990000;">&quot;manual&quot;</span>;</div>
</li>
<li style="font-weight: bold; vertical-align:top;color:#26536A;">
<div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;">&nbsp; &nbsp; myCam = <a href="http://www.google.com/search?q=camera%20inurl:http://livedocs.adobe.com/flex/201/langref/%20inurl:camera.html&amp;filter=0&amp;num=100&amp;btnI=lucky"><span style="color: #004993;">Camera</span></a>.<span style="color: #004993;">getCamera</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>;</div>
</li>
<li style="font-weight: normal; vertical-align:top;color:#3A6A8B;">
<div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;">&nbsp; &nbsp; <span style="color: #6699cc; font-weight: bold;">var</span> vd<span style="color: #000000; font-weight: bold;">:</span><a href="http://www.google.com/search?q=video%20inurl:http://livedocs.adobe.com/flex/201/langref/%20inurl:video.html&amp;filter=0&amp;num=100&amp;btnI=lucky"><span style="color: #004993;">Video</span></a> = <span style="color: #0033ff; font-weight: bold;">new</span> <a href="http://www.google.com/search?q=video%20inurl:http://livedocs.adobe.com/flex/201/langref/%20inurl:video.html&amp;filter=0&amp;num=100&amp;btnI=lucky"><span style="color: #004993;">Video</span></a><span style="color: #000000;">&#40;</span><span style="color: #000000; font-weight:bold;color:#800000;">320</span>,<span style="color: #000000; font-weight:bold;color:#800000;">240</span><span style="color: #000000;">&#41;</span>;</div>
</li>
<li style="font-weight: bold; vertical-align:top;color:#26536A;">
<div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;">&nbsp; &nbsp; vd.<span style="color: #004993;">attachCamera</span><span style="color: #000000;">&#40;</span>myCam<span style="color: #000000;">&#41;</span>;</div>
</li>
<li style="font-weight: normal; vertical-align:top;color:#3A6A8B;">
<div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;">&nbsp; &nbsp; cam.<span style="color: #004993;">addChild</span><span style="color: #000000;">&#40;</span>vd<span style="color: #000000;">&#41;</span>;</div>
</li>
<li style="font-weight: bold; vertical-align:top;color:#26536A;">
<div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;">&nbsp; &nbsp; myCam.<span style="color: #004993;">addEventListener</span><span style="color: #000000;">&#40;</span><a href="http://www.google.com/search?q=activityevent%20inurl:http://livedocs.adobe.com/flex/201/langref/%20inurl:activityevent.html&amp;filter=0&amp;num=100&amp;btnI=lucky"><span style="color: #004993;">ActivityEvent</span></a>.<span style="color: #004993;">ACTIVITY</span>, handlerMotion<span style="color: #000000;">&#41;</span>;</div>
</li>
<li style="font-weight: normal; vertical-align:top;color:#3A6A8B;">
<div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"><span style="color: #000000;">&#125;</span></div>
</li>
<li style="font-weight: bold; vertical-align:top;color:#26536A;">
<div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;">&nbsp;</div>
</li>
<li style="font-weight: normal; vertical-align:top;color:#3A6A8B;">
<div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"><span style="color: #0033ff; font-weight: bold;">private</span> <span style="color: #339966; font-weight: bold;">function</span> handlerMotion<span style="color: #000000;">&#40;</span>evt<span style="color: #000000; font-weight: bold;">:</span><a href="http://www.google.com/search?q=activityevent%20inurl:http://livedocs.adobe.com/flex/201/langref/%20inurl:activityevent.html&amp;filter=0&amp;num=100&amp;btnI=lucky"><span style="color: #004993;">ActivityEvent</span></a><span style="color: #000000;">&#41;</span><span style="color: #000000; font-weight: bold;">:</span><span style="color: #0033ff; font-weight: bold;">void</span></div>
</li>
<li style="font-weight: bold; vertical-align:top;color:#26536A;">
<div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"><span style="color: #000000;">&#123;</span></div>
</li>
<li style="font-weight: normal; vertical-align:top;color:#3A6A8B;">
<div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;">&nbsp; &nbsp; <span style="color: #004993;">trace</span><span style="color: #000000;">&#40;</span>evt.<span style="color: #004993;">target</span>.<span style="color: #004993;">activityLevel</span><span style="color: #000000;">&#41;</span>;</div>
</li>
<li style="font-weight: bold; vertical-align:top;color:#26536A;">
<div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;">&nbsp; &nbsp; pbar.setProgress<span style="color: #000000;">&#40;</span>evt.<span style="color: #004993;">target</span>.<span style="color: #004993;">activityLevel</span>,<span style="color: #000000; font-weight:bold;color:#800000;">100</span><span style="color: #000000;">&#41;</span>;</div>
</li>
<li style="font-weight: normal; vertical-align:top;color:#3A6A8B;">
<div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;">&nbsp; &nbsp; <span style="color: #0033ff; font-weight: bold;">if</span><span style="color: #000000;">&#40;</span>evt.<span style="color: #004993;">target</span>.<span style="color: #004993;">activityLevel</span> <span style="color: #000000; font-weight: bold;">&lt;</span><span style="color: #000000; font-weight:bold;color:#800000;">10</span><span style="color: #000000;">&#41;</span></div>
</li>
<li style="font-weight: bold; vertical-align:top;color:#26536A;">
<div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;">&nbsp; &nbsp; <span style="color: #000000;">&#123;</span></div>
</li>
<li style="font-weight: normal; vertical-align:top;color:#3A6A8B;">
<div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;">&nbsp; &nbsp; &nbsp; &nbsp; pbar.label = <span style="color: #990000;">&quot;muito quieto! =õ(&quot;</span>;</div>
</li>
<li style="font-weight: bold; vertical-align:top;color:#26536A;">
<div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;">&nbsp; &nbsp; <span style="color: #000000;">&#125;</span></div>
</li>
<li style="font-weight: normal; vertical-align:top;color:#3A6A8B;">
<div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;">&nbsp; &nbsp; <span style="color: #0033ff; font-weight: bold;">else</span></div>
</li>
<li style="font-weight: bold; vertical-align:top;color:#26536A;">
<div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;">&nbsp; &nbsp; <span style="color: #000000;">&#123;</span></div>
</li>
<li style="font-weight: normal; vertical-align:top;color:#3A6A8B;">
<div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;">&nbsp; &nbsp; &nbsp; &nbsp; pbar.label = <span style="color: #990000;">&quot;eba! festa!!! <span style="">\\</span>o/<span style="">\\</span>O/<span style="">\\</span>o/&quot;</span>;</div>
</li>
<li style="font-weight: bold; vertical-align:top;color:#26536A;">
<div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;">&nbsp; &nbsp; <span style="color: #000000;">&#125;</span></div>
</li>
<li style="font-weight: normal; vertical-align:top;color:#3A6A8B;">
<div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"><span style="color: #000000;">&#125;</span></div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>Agora é so aplicar a lógica para que seja transmitido ou não o stream da webcam do usuário.</p>
<div>
<a href="http://www.leonardofranca.com.br/wp-content/uploads/2010/08/motion_camera.zip"><img src="http://www.leonardofranca.com.br/wp-content/uploads/2010/08/archive.png" alt="" title="archive" width="46" height="60" valign="absmiddle" /></a> <strong><a href="http://www.leonardofranca.com.br/wp-content/uploads/2010/08/motion_camera.zip">DOWNLOAD SOURCE FLASH</a></strong>
</div>
<p><a href="http://www.leonardofranca.com.br/wp-content/uploads/2010/08/MotioCamera.zip"><img src="http://www.leonardofranca.com.br/wp-content/uploads/2010/08/archive.png" alt="" title="archive" width="46" height="60" /></a> <strong><a href="http://www.leonardofranca.com.br/wp-content/uploads/2010/08/MotioCamera.zip">DOWNLOAD SOURCE FLEX</a></strong></p>
<p><strong>Para saber mais:</strong><br />
<a href="http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/media/Camera.html?allClasses=1">http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/media/Camera.html?allClasses=1</a></p>
<p><strong>Livros recomendados:</strong><br />
<a href="http://www.submarino.com.br/produto/1/21615325/adobe+flash+cs4+professional+como+fazer+100+tecnicas+essenciais/?franq=171422">Adobe Flash CS4 Professional Como Fazer 100 Técnicas Essenciais</a><br />
<a href="http://www.submarino.com.br/produto/1/21846618/flex+3+em+acao/?franq=171422">Flex 3 em Ação</a><br />
<a href="http://www.submarino.com.br/produto/1/21565256/adobe+flex+3+treinamento+direto+da+fonte/?franq=171422">Adobe Flex 3 Treinamento Direto da Fonte</a><br />
<iframe src="http://rcm.amazon.com/e/cm?t=leonafranc-20&#038;o=1&#038;p=8&#038;l=as1&#038;asins=0321701801&#038;fc1=000000&#038;IS2=1&#038;lt1=_blank&#038;m=amazon&#038;lc1=0000FF&#038;bc1=000000&#038;bg1=FFFFFF&#038;f=ifr" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"></iframe></p>
]]></content:encoded>
			<wfw:commentRss>http://www.leonardofranca.com.br/index.php/2010/08/27/detectando-movimentos-da-webcam-com-adobe-flash/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Cinemática Inversa no Adobe Flash</title>
		<link>http://www.leonardofranca.com.br/index.php/2010/08/25/cinematica-inversa-no-adobe-flash/</link>
		<comments>http://www.leonardofranca.com.br/index.php/2010/08/25/cinematica-inversa-no-adobe-flash/#comments</comments>
		<pubDate>Wed, 25 Aug 2010 11:36:40 +0000</pubDate>
		<dc:creator>Leonardo França</dc:creator>
				<category><![CDATA[ActionScript 3.0]]></category>
		<category><![CDATA[Adobe]]></category>
		<category><![CDATA[Flash]]></category>

		<guid isPermaLink="false">http://www.leonardofranca.com.br/?p=964</guid>
		<description><![CDATA[
			
				
			
		
Em Física, Cinemática é o ramo responsável por estudar o movimento dos corpos. Cinemática Inversa (IK) é uma tecnica muito utilizada em engenharia, robotica e animação. Consiste no movimento de um objeto ou de um conjunto de objetos em relação a outros objetos, usando uma estrutura articulada de bones. Os bones permitem a movimentação de [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.leonardofranca.com.br%2Findex.php%2F2010%2F08%2F25%2Fcinematica-inversa-no-adobe-flash%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.leonardofranca.com.br%2Findex.php%2F2010%2F08%2F25%2Fcinematica-inversa-no-adobe-flash%2F&amp;style=normal" height="61" width="50" /><br />
			</a>
		</div>
<p><a href="http://www.leonardofranca.com.br/wp-content/uploads/2010/08/an_ik_symbols.png"><img src="http://www.leonardofranca.com.br/wp-content/uploads/2010/08/an_ik_symbols-e1282698417688.png" alt="" title="an_ik_symbols" width="80" height="156" class="alignleft size-full wp-image-967" /></a>Em Física, Cinemática é o ramo responsável por estudar o movimento dos corpos. Cinemática Inversa (IK) é uma tecnica muito utilizada em engenharia, robotica e animação. Consiste no movimento de um objeto ou de um conjunto de objetos em relação a outros objetos, usando uma estrutura articulada de bones. Os bones permitem a movimentação de forma complexa e natural permitindo criar animação de personagens, como braços, pernas e expressões faciais com muito mais facilidade, a imagem mais simples para ilustra isso é do movimento de uma alavanca<span id="more-964"></span>. Quem já trabalha com softwares de modelagem 3D como o <a href="http://www.lcg.ufrj.br/Members/yalmar/Members/yalmar/blender/tutorial2.htm">3D Studio MAX</a> já conhece essa tecnica. A partir do Adobe Flash CS4, temos a possibilidade de se trabalhar com cinemática inversa na própria IDE do Flash e uma biblioteca em ActionScript 3.0.</p>
<blockquote><p>
Cinemática inversa (IK) é um método de animação que consiste no movimento de um objeto ou de um conjunto de objetos em relação a outros objetos, usando uma estrutura articulada de bones. Os bones permitem a movimentação de forma complexa e natural permitindo criar animação de personagens, como braços, pernas e expressões faciais com muito mais facilidade, a imagem mais simples para ilustra isso é do movimento de uma alavanca.
</p></blockquote>
<p>Agora vamos ver um exemplo utilizando o Adobe Flash Professional CS5, será bem simples para entender o funcionamento dessa ferramenta.</p>
<ul>
<li>Crie um novo arquivo do tipo ActionScript 3.0</li>
<li>Crie três simbolos graficos em forma retangular para que o efeito seja melhor visualizado. Deixe-os lado a lado formando uma fileira.</li>
<li>Selecione a ferramenta Bone<a href="http://www.leonardofranca.com.br/wp-content/uploads/2010/08/bone_tool.png"><img src="http://www.leonardofranca.com.br/wp-content/uploads/2010/08/bone_tool.png" alt="" title="bone_tool" width="16" height="18" class="alignnone size-full wp-image-976" /></a></li>
<li>Clique na estremidade do primeiro simbolo e arraste ate o final dele. Será formado um bone com uma estremidade maior sendo a base.</li>
<li> Faça a mesma coisa com o segundo simbolo de modo que comece arrastando a partir da estremidade menor do bone do primeiro simbolo.</li>
<li>Seu stage deve ser parecido com isto:<div id="attachment_981" class="wp-caption aligncenter" style="width: 160px"><a href="http://www.leonardofranca.com.br/wp-content/uploads/2010/08/ik_adobe_flash.jpg"><img src="http://www.leonardofranca.com.br/wp-content/uploads/2010/08/ik_adobe_flash-150x150.jpg" alt="IK Adobe Flash" title="ik_adobe_flash" width="150" height="150" class="size-thumbnail wp-image-981" /></a><p class="wp-caption-text">IK Adobe Flash</p></div></li>
<li>Note que foi criado uma nova camada com o nome de Armature. Selecione por exemplo o frame 20, clique com o botão direito sobre o frame e selecione "Insert Pose". Feito isso, movimente de alguma forma os simbolos no stage. Faça a mesma coisa para o frame 40 e 60.</li>
<li>Agora teste o filme "Ctrl+Enter".</li>
</ul>
<p>
<object width="450" height="400">
<param name="movie" value="http://www.leonardofranca.com.br/wp-content/uploads/2010/08/ik_sample.swf"></param>
<param name="quality" value="high"></param>
<param name="wmode" value="window"></param>
<param name="menu" value="false"></param>
<param name="bgcolor" value="#FFFFFF"></param>
<embed type="application/x-shockwave-flash" width="450" height="400" src="http://www.leonardofranca.com.br/wp-content/uploads/2010/08/ik_sample.swf" quality="high" bgcolor="#FFFFFF" wmode="window" menu="false" ></embed>
</object>
</p>
<p><a href='http://www.leonardofranca.com.br/wp-content/uploads/2010/08/ik_sample.zip'><strong>DOWNLOAD SOURCE</strong></a></p>
<p>P<strong>ara saber mais:</strong><br />
<a href="http://help.adobe.com/pt_BR/flash/cs/using/WS58BD3A02-DA25-488f-B534-AE5463A24833.html">http://help.adobe.com/pt_BR/flash/cs/using/WS58BD3A02-DA25-488f-B534-AE5463A24833.html</a><br />
<strong><br />
Livros recomendados:</strong><br />
<a href="http://www.submarino.com.br/produto/1/21615325/adobe+flash+cs4+professional+como+fazer+100+tecnicas+essenciais/?franq=171422">Adobe Flash CS4 Professional Como Fazer 100 Técnicas Essenciais</a><br />
<iframe src="http://rcm.amazon.com/e/cm?t=leonafranc-20&#038;o=1&#038;p=8&#038;l=as1&#038;asins=0321701801&#038;fc1=000000&#038;IS2=1&#038;lt1=_blank&#038;m=amazon&#038;lc1=0000FF&#038;bc1=000000&#038;bg1=FFFFFF&#038;f=ifr" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"></iframe></p>
]]></content:encoded>
			<wfw:commentRss>http://www.leonardofranca.com.br/index.php/2010/08/25/cinematica-inversa-no-adobe-flash/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
