<?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/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Thiago Araújo</title>
	<atom:link href="http://thlaa.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://thlaa.wordpress.com</link>
	<description></description>
	<lastBuildDate>Sat, 01 Aug 2009 15:37:06 +0000</lastBuildDate>
	<language>pt</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='thlaa.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://1.gravatar.com/blavatar/967e4f9cba508ed98c2397b09979c7bf?s=96&#038;d=http%3A%2F%2Fs2.wp.com%2Fi%2Fbuttonw-com.png</url>
		<title>Thiago Araújo</title>
		<link>http://thlaa.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://thlaa.wordpress.com/osd.xml" title="Thiago Araújo" />
	<atom:link rel='hub' href='http://thlaa.wordpress.com/?pushpress=hub'/>
		<item>
		<title>SoundTransform</title>
		<link>http://thlaa.wordpress.com/2009/08/01/soundtransform/</link>
		<comments>http://thlaa.wordpress.com/2009/08/01/soundtransform/#comments</comments>
		<pubDate>Sat, 01 Aug 2009 12:19:36 +0000</pubDate>
		<dc:creator>Thiago</dc:creator>
				<category><![CDATA[AS3]]></category>

		<guid isPermaLink="false">http://thlaa.wordpress.com/?p=93</guid>
		<description><![CDATA[Já pensou em fazer algum jogo que tenha características que ajudem deficientes visuais? Bem, esse método de tratamento de som é interessante pra várias aplicações especialmente jogos. Se você procurar na internet sobre SoundTransform, vai achar alguns exemplos de como fazer. Apenas modifiquei para ficar mais fácil a integração com qualquer aplicação. Segue o código [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=thlaa.wordpress.com&amp;blog=8802859&amp;post=93&amp;subd=thlaa&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Já pensou em fazer algum jogo que tenha características que ajudem deficientes visuais?<br />
Bem, esse método de tratamento de som é interessante pra várias aplicações especialmente jogos.<br />
<span id="more-93"></span></p>
<p>Se você procurar na internet sobre SoundTransform, vai achar alguns exemplos de como fazer. Apenas modifiquei para ficar mais fácil a integração com qualquer aplicação.</p>
<p>Segue o código do método que implementei para a classe <a href="http://help.adobe.com/pt_BR/AS3LCR/Flash_10.0/flash/media/SoundTransform.html" target='_blank'>SoundTransformExample</a>:</p>
<p><code>private function distance(pm:Array):Number<br />
{<br />
var px:Number = stage.stageWidth / 2;<br />
var py:Number = stage.stageHeight / 2;<br />
return Math.abs(Math.sqrt(Math.pow(pm[0] - px,2) + Math.pow(pm[1] - py,2)));<br />
}</code></p>
<p>Adicione essa função no final da classe e passe a posição x e y do mouse no método mouseMoveHandler:</p>
<p><img src="http://thlaa.files.wordpress.com/2009/08/modificacaosoundtransform.jpg?w=455" alt="Modificação na classe SoundTransformExample" /></p>
<p>Isso vai fazer com que o volume seja ajustado de acordo com a distância do mouse em relação ao centro do palco. É possível colocar outros pontos de referência, mas esse exemplo foi só pra explicar como modificar o som.</p>
<p> <img src='http://s0.wp.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' />  Isso é tudo.</p>
<p>Faça o <a href="http://rapidshare.com/files/262543176/TesteSoundTransform.zip" target='_blank'>download</a> dos arquivos utilizados.</p>
<blockquote><p>Note que o flash vai tentar carregar o arquivo &#8220;MySound.mp3&#8243; da pasta principal, mas ele não existe. Para funcionar, coloque um arquivo mp3 com este mesmo nome.</p></blockquote>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/thlaa.wordpress.com/93/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/thlaa.wordpress.com/93/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/thlaa.wordpress.com/93/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/thlaa.wordpress.com/93/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/thlaa.wordpress.com/93/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/thlaa.wordpress.com/93/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/thlaa.wordpress.com/93/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/thlaa.wordpress.com/93/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/thlaa.wordpress.com/93/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/thlaa.wordpress.com/93/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/thlaa.wordpress.com/93/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/thlaa.wordpress.com/93/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/thlaa.wordpress.com/93/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/thlaa.wordpress.com/93/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=thlaa.wordpress.com&amp;blog=8802859&amp;post=93&amp;subd=thlaa&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://thlaa.wordpress.com/2009/08/01/soundtransform/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/9840dad683b324abadc11329b89122e8?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">Thiago</media:title>
		</media:content>

		<media:content url="http://thlaa.files.wordpress.com/2009/08/modificacaosoundtransform.jpg" medium="image">
			<media:title type="html">Modificação na classe SoundTransformExample</media:title>
		</media:content>
	</item>
		<item>
		<title>Colisão com hitTestPoint</title>
		<link>http://thlaa.wordpress.com/2009/08/01/colisao-com-hittestpoint/</link>
		<comments>http://thlaa.wordpress.com/2009/08/01/colisao-com-hittestpoint/#comments</comments>
		<pubDate>Sat, 01 Aug 2009 00:30:35 +0000</pubDate>
		<dc:creator>Thiago Araújo</dc:creator>
				<category><![CDATA[AS3]]></category>

		<guid isPermaLink="false">http://thlaa.wordpress.com/?p=46</guid>
		<description><![CDATA[Antigamento com o AS2, usava uma forma de fazer colisão com os objetos no palco. Ontém transformei o metodo em uma classe pois fica mais genérico essa forma. Abaixo segue a classe de colisão que foi tirada do código AS2: import flash.display.DisplayObject; import flash.geom.Point; public class ControlColision { public function ControlColision() { } public function [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=thlaa.wordpress.com&amp;blog=8802859&amp;post=46&amp;subd=thlaa&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Antigamento com o AS2, usava uma forma de fazer colisão com os objetos no palco. Ontém transformei o metodo em uma classe pois fica mais genérico essa forma.<br />
<span id="more-46"></span><br />
Abaixo segue a classe de colisão que foi tirada do código AS2:</p>
<p><code>import flash.display.DisplayObject;<br />
import flash.geom.Point;<br />
public class ControlColision<br />
{<br />
public function ControlColision()<br />
{<br />
}<br />
public function checkColision(_target:AbstractObject,_checkObject:DisplayObject):void<br />
{<br />
var sizeW:Number = _target.width;<br />
var sizeH:Number = _target.height;<br />
while(_checkObject.hitTestPoint(_target.x, _target.y, true))<br />
{<br />
_target.Yspeed = -Math.abs((_target.Yspeed / Constants.GRAVITY_DIVIDER));<br />
_target.y -= Constants.gravity;<br />
_target.setState(AbstractObject.STATE_STOP);<br />
}<br />
while(_checkObject.hitTestPoint(_target.x + (sizeW / 2), _target.y - (sizeH / 2), true))<br />
{<br />
_target.Xspeed = -Math.abs((_target.Xspeed / Constants.GRAVITY_DIVIDER));<br />
_target.x -= 0.2;<br />
}<br />
while(_checkObject.hitTestPoint(_target.x - (sizeW / 2), _target.y - (sizeH / 2), true))<br />
{<br />
_target.Xspeed = Math.abs((_target.Xspeed / Constants.GRAVITY_DIVIDER));<br />
_target.x += 0.2;<br />
}<br />
while(_checkObject.hitTestPoint(_target.x, _target.y - sizeH, true))<br />
{<br />
_target.Yspeed = Math.abs((_target.Yspeed / Constants.GRAVITY_DIVIDER));<br />
_target.y += Constants.gravity;<br />
}<br />
while(_checkObject.hitTestPoint(_target.x + (sizeW / 4), _target.y - 1, true))<br />
{<br />
_target.Xspeed = -Math.abs((_target.Xspeed / Constants.GRAVITY_DIVIDER));<br />
_target.x -= 0.2;<br />
}<br />
while(_checkObject.hitTestPoint(_target.x - (sizeW / 4), _target.y - 1, true))<br />
{<br />
_target.Xspeed = Math.abs((_target.Xspeed / Constants.GRAVITY_DIVIDER));<br />
_target.x += 0.2;<br />
}<br />
while(_checkObject.hitTestPoint(_target.x + 5, _target.y - (sizeH - 1), true))<br />
{<br />
_target.Xspeed = -Math.abs((_target.Xspeed / Constants.GRAVITY_DIVIDER));<br />
_target.x -= 0.2;<br />
}<br />
while(_checkObject.hitTestPoint(_target.x - 5, _target.y - (sizeH - 1), true))<br />
{<br />
_target.Xspeed = Math.abs((_target.Xspeed / Constants.GRAVITY_DIVIDER));<br />
_target.x += 0.2;<br />
}<br />
}<br />
}</code></p>
<p>Essa classe faz a verificação do objeto nos seguintes pontos:</p>
<p><img src="http://thlaa.files.wordpress.com/2009/07/verificapontos.jpg?w=455" alt="Verifica os pontos" /></p>
<p>Para usar essa classe e verificar a colisão com vários outros objetos no palco, além de usar os parâmetros<br />
do objeto como &#8220;Xspeed&#8221; e &#8220;Yspeed&#8221;, é preciso ter mais três outras classes que auxiliam e completam o sistema de verificação. As classes são: &#8220;Constants&#8221;, &#8220;AbstractObject&#8221; e &#8220;ColisionList&#8221;.</p>
<ul>
<li>A Constants tem todos os valores principais que são usados em todas as outras.</li>
<li>AbstractObject é responsável por armazenar os valores de velocidade vertical e horizontal e servir como uma interface, onde todos os movieclips ou objetos podem herdar suas funções.</li>
<li>ColisionList é onde serão armazenados todos os objetos que vão colidir entre si.</li>
</ul>
<p>Abaixo segue os códigos na respectiva ordem:</p>
<p><code>public class Constants<br />
{<br />
public static const STAGE_WIDTH:uint = 640;<br />
public static const STAGE_HEIGHT:uint = 420;<br />
public static const SPEED_LIMIT:Number = 10;<br />
public static const SPEED_MINIMUM:Number = 0.294;<br />
public static const ACCELERATION_LIMIT:Number = 3;<br />
public static const GRAVITY_DIVIDER:uint = 8;<br />
private static var configSpeed:Number = 0.7;<br />
private static var configGravity:Number = 0.2;<br />
private static var configJump:Number = configGravity * 20;<br />
private static var configBound:Number = 0.98;<br />
private static var configAcceleration:Number = 0.2;<br />
public static function get gravity():Number<br />
{<br />
return configGravity;<br />
}<br />
public static function set gravity(_value:Number):void<br />
{<br />
configGravity = _value;<br />
}<br />
public static function get bound():Number<br />
{<br />
return configBound;<br />
}<br />
public static function set bound(_value:Number):void<br />
{<br />
configBound = _value;<br />
}<br />
public static function get speed():Number<br />
{<br />
return configSpeed;<br />
}<br />
public static function set speed(_value:Number):void<br />
{<br />
configSpeed = _value;<br />
}<br />
public static function get acceleration():Number<br />
{<br />
return configAcceleration;<br />
}<br />
public static function set acceleration(_value:Number):void<br />
{<br />
configAcceleration = _value;<br />
}<br />
public static function get jump():Number<br />
{<br />
return configJump;<br />
}<br />
public static function set jump(_value:Number):void<br />
{<br />
configJump = _value;<br />
}<br />
}<br />
</code></p>
<p><code>import flash.display.MovieClip;<br />
	import flash.events.Event;<br />
	public class AbstractObject extends MovieClip<br />
	{<br />
		public static const STATE_STOP:uint = 1;<br />
		public static const STATE_WALK:uint = 2;<br />
		public static const STATE_RUN:uint = 3;<br />
		public static const STATE_LOWERED:uint = 4;<br />
		public static const STATE_ROLL:uint = 5;<br />
		public static const STATE_JUMP:uint = 6;<br />
		public static const STATE_FLY:uint = 7;<br />
		private var velocity:Array;<br />
		private var acceleration:Number;<br />
	private var accCount:uint;<br />
		private var accCountMax:uint;<br />
private var gravity:Number;<br />
		private var state:uint;<br />
		public function AbstractObject()<br />
		{<br />
			this.setObjectConfig();<br />
		}<br />
		private function setObjectConfig():void<br />
		{<br />
			try<br />
			{<br />
				this.state = STATE_STOP;<br />
				this.acceleration = 0;<br />
				this.accCount = 0;<br />
				this.accCountMax = Constants.ACCELERATION_LIMIT;<br />
				this.addEventListener(Event.ENTER_FRAME, this.refreshAcceleration);<br />
				this.setGravity(Constants.gravity);<br />
				this.velocity = [0,0];<br />
			}<br />
			catch(e:Error)<br />
			{<br />
				trace("(AbstractObject) Erro ao tentar setar configuração: " + e);<br />
			}<br />
		}<br />
		private function refreshAcceleration(evt:Event):void<br />
		{<br />
			this.accCount++;<br />
			if(this.accCount &gt;= Constants.ACCELERATION_LIMIT &amp;&amp; this.acceleration &gt; 0)<br />
			{<br />
				this.acceleration -= Constants.acceleration;<br />
			}<br />
		}<br />
		public function set Xspeed(_value:Number):void<br />
		{<br />
			this.velocity[0] = _value;<br />
		}<br />
		public function get Xspeed():Number<br />
		{<br />
			return this.velocity[0];<br />
		}<br />
		public function set Yspeed(_value:Number):void<br />
		{<br />
			this.velocity[1] = _value;<br />
		}<br />
		public function get Yspeed():Number<br />
		{<br />
			return this.velocity[1];<br />
		}<br />
		public function setAcceleration(_value:Number):void<br />
		{<br />
			this.acceleration = _value;<br />
			this.accCount = 0;<br />
		}<br />
		public function addAcceleration(_value:Number):void<br />
		{<br />
			this.acceleration += _value;<br />
			this.accCount = 0;<br />
			if(this.acceleration &gt; Constants.ACCELERATION_LIMIT)<br />
			{<br />
				this.acceleration = Constants.ACCELERATION_LIMIT;<br />
			}<br />
		}<br />
		public function getAcceleration():Number<br />
		{<br />
			return this.acceleration;<br />
		}<br />
		public function setGravity(_value:Number):void<br />
		{<br />
			this.gravity = _value;<br />
		}<br />
		public function getGravity():Number<br />
		{<br />
			return this.gravity;<br />
		}<br />
		public function setState(_value:uint):void<br />
		{<br />
			this.state = _value;<br />
		}<br />
		public function getState():uint<br />
		{<br />
			return this.state;<br />
		}<br />
	}</code></p>
<p><code>import colision.controller.ControlColision;<br />
	import flash.display.DisplayObject;<br />
	import flash.display.Sprite;<br />
	import flash.events.Event;<br />
	public class ColisionEngine extends Sprite<br />
	{<br />
		private var running:Boolean;<br />
		private var target:AbstractObject;<br />
		private var checkObjectList:Array;<br />
		private var control:ControlColision;<br />
		public function ColisionEngine()<br />
		{<br />
			this.running = false;<br />
			this.control = new ControlColision();<br />
		}<br />
		public function initialize(_target:AbstractObject):void<br />
		{<br />
			if(_target != null)<br />
			{<br />
				this.target = _target;<br />
				this.checkObjectList = new Array();<br />
				this.startCheckColision();<br />
			}<br />
		}<br />
		public function startCheckColision():void<br />
		{<br />
			if(this.target != null &amp;&amp; (!this.running))<br />
			{<br />
				this.running = true;<br />
				this.addEventListener(Event.ENTER_FRAME, this.checkColision);<br />
			}<br />
		}<br />
		public function stopCheckColision():void<br />
		{<br />
			if(this.running)<br />
			{<br />
				this.running = false;<br />
				this.removeEventListener(Event.ENTER_FRAME, this.checkColision);<br />
			}<br />
		}<br />
		private function checkColision(evt:Event):void<br />
		{<br />
			for(var a:uint = 0; a &lt; this.checkObjectList.length; a++)<br />
			{<br />
				this.control.checkColision(this.target, this.checkObjectList[a]);<br />
			}<br />
		}<br />
		public function addColisionObject(_obj:DisplayObject):void<br />
		{<br />
			if(this.checkObject(_obj) &lt;= 1)<br />
			{<br />
				this.checkObjectList.push(_obj);<br />
			}<br />
		}<br />
		public function checkObject(_obj:DisplayObject):int<br />
		{<br />
			var result:int = -1;<br />
			for(var a:uint = 0; a  0)<br />
			{<br />
				var tempList:Array = new Array();<br />
				for(var a:uint = 0; a &lt; this.checkObjectList.length; a++)<br />
				{<br />
					if(a != _index)<br />
					{<br />
						tempList.push(this.checkObjectList[a]);<br />
					}<br />
				}<br />
				this.checkObjectList = tempList;<br />
			}<br />
		}<br />
}</code></p>
<p>Existe mais uma classe que criei para testar esses métodos de colisão que coloquei o nome de &#8220;Main&#8221;. </p>
<p><code>import colision.ColisionEngine;<br />
	import flash.display.DisplayObject;<br />
	import flash.display.MovieClip;<br />
	import flash.display.Sprite;<br />
	import flash.events.KeyboardEvent;<br />
	import gravity.GravityEngine;<br />
	import moviment.controller.ControlMoviment;<br />
	import moviment.elements.AbstractObject;<br />
	public class Main extends Sprite<br />
	{<br />
		public function Main()<br />
		{<br />
			var ball:MovieClip = new YellowBall();<br />
			var retangulo:MovieClip = new BlueSquare();<br />
			ball.x = 300;<br />
			retangulo.x = 300;<br />
			retangulo.y = 300;<br />
			this.addChild(DisplayObject(retangulo));<br />
			var gravityBall:GravityEngine = new GravityEngine();<br />
			var movimentBall:ControlMoviment = new ControlMoviment();<br />
			var colisionBall:ColisionEngine = new ColisionEngine();<br />
			colisionBall.initialize(AbstractObject(ball));<br />
			colisionBall.addColisionObject(retangulo);<br />
			movimentBall.initialize(AbstractObject(ball));<br />
			stage.addEventListener(KeyboardEvent.KEY_DOWN, movimentBall.keyDown);<br />
			stage.addEventListener(KeyboardEvent.KEY_UP, movimentBall.keyUp);<br />
			gravityBall.addObject(AbstractObject(ball));<br />
			gravityBall.setGravity(1,0.5);<br />
			this.addChild(ball);<br />
		}<br />
}</code></p>
<p>Dentro do fla, existe dois movieclips que são a bola e o retângulo assim como está descrito no início do construtor da classe Main.</p>
<p>Exemplo:</p>
<p><img src="http://thlaa.files.wordpress.com/2009/08/objetoscolisao.jpg?w=455" alt="Objetos de colisão" /></p>
<p>Como visto na imagem acima, existem dois objetos criados e em cada um deles a classe básica é AbstractObject, pois todos os objetos entram na lista de colisão e cada um precisa ter os mesmos atributos.</p>
<blockquote><p>Se você está se perguntando sobre os estados da classe AbstractObject. Eles servem para mostrar algum comportamento em relação ao movimento.<br />
Faça um teste e coloque sete frames dentro do objeto &#8220;bola&#8221; e em cada frame coloque uma cor diferente. Você vai observar que a cada estado o objeto pode ter comportamentos diferentes e isso pode ser aproveitado para um jogo tipo plataforma <img src='http://s0.wp.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p></blockquote>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/thlaa.wordpress.com/46/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/thlaa.wordpress.com/46/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/thlaa.wordpress.com/46/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/thlaa.wordpress.com/46/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/thlaa.wordpress.com/46/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/thlaa.wordpress.com/46/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/thlaa.wordpress.com/46/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/thlaa.wordpress.com/46/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/thlaa.wordpress.com/46/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/thlaa.wordpress.com/46/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/thlaa.wordpress.com/46/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/thlaa.wordpress.com/46/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/thlaa.wordpress.com/46/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/thlaa.wordpress.com/46/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=thlaa.wordpress.com&amp;blog=8802859&amp;post=46&amp;subd=thlaa&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://thlaa.wordpress.com/2009/08/01/colisao-com-hittestpoint/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/42985371b20daea5a244419d90d044f3?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">Thiago</media:title>
		</media:content>

		<media:content url="http://thlaa.files.wordpress.com/2009/07/verificapontos.jpg" medium="image">
			<media:title type="html">Verifica os pontos</media:title>
		</media:content>

		<media:content url="http://thlaa.files.wordpress.com/2009/08/objetoscolisao.jpg" medium="image">
			<media:title type="html">Objetos de colisão</media:title>
		</media:content>
	</item>
		<item>
		<title>Movimentando objeto pelo teclado</title>
		<link>http://thlaa.wordpress.com/2009/07/31/movimento-via-teclado/</link>
		<comments>http://thlaa.wordpress.com/2009/07/31/movimento-via-teclado/#comments</comments>
		<pubDate>Fri, 31 Jul 2009 13:24:09 +0000</pubDate>
		<dc:creator>Thiago Araújo</dc:creator>
				<category><![CDATA[AS3]]></category>

		<guid isPermaLink="false">http://thlaa.wordpress.com/?p=35</guid>
		<description><![CDATA[Crie um novo arquivo do flash e dentro dele faça um movieclip qualquer. Exemplo: Coloque a linkage do movieclip de &#8220;Objeto&#8221; e o nome da classe principal do fla de &#8220;Movimento&#8221;. Após salvar o arquivo, crie mais duas classes &#8220;Objeto&#8221; e &#8220;Controle&#8221;: package { import flash.display.MovieClip; public class Objeto extends MovieClip { public var vx:Number; [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=thlaa.wordpress.com&amp;blog=8802859&amp;post=35&amp;subd=thlaa&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Crie um novo arquivo do flash e dentro dele faça um movieclip qualquer. Exemplo:<br />
<span id="more-35"></span></p>
<p><img src="http://thlaa.files.wordpress.com/2009/07/linkage.jpg?w=455" alt="Nome do linkage do movieclip" /></p>
<p>Coloque a linkage do movieclip de &#8220;Objeto&#8221; e o nome da classe principal do fla de &#8220;Movimento&#8221;.</p>
<p><img src="http://thlaa.files.wordpress.com/2009/07/mainclass.jpg?w=455" alt="Nome da classe principal do fla" /></p>
<p>Após salvar o arquivo, crie mais duas classes &#8220;Objeto&#8221; e &#8220;Controle&#8221;:</p>
<p><code>package<br />
{<br />
	import flash.display.MovieClip;<br />
	public class Objeto extends MovieClip<br />
	{<br />
		public var vx:Number;<br />
		public var vy:Number;<br />
		public var ax:Number;<br />
		public var ay:Number;<br />
		public function Objeto()<br />
		{<br />
			this.ax = 0;<br />
			this.ay = 0;<br />
			this.vx = 0;<br />
			this.vy = 0;<br />
		}<br />
	}<br />
}</code></p>
<p>A classe objeto serve de interface entre o controlador de teclado (a classe Controle) e o objeto do palco &#8220;bolaMc&#8221;.</p>
<p><code>package<br />
{<br />
	import flash.display.Sprite;<br />
	import flash.events.Event;<br />
	import flash.events.KeyboardEvent;<br />
	import flash.ui.Keyboard;<br />
	public class Controle extends Sprite<br />
	{<br />
		private var target:Objeto;<br />
		public function Controle(_target:Objeto)<br />
		{<br />
			this.target = _target;<br />
		}<br />
		public function initialize():void<br />
		{<br />
			this.addEventListener(Event.ENTER_FRAME, this.onEnterFrame);<br />
		}<br />
		private function onEnterFrame(evt:Event):void<br />
		{<br />
			this.target.vx += this.target.ax;<br />
			this.target.vy += this.target.ay;<br />
			this.target.x += this.target.vx;<br />
			this.target.y += this.target.vy;<br />
		}<br />
		public function onKeydown(e:KeyboardEvent):void{<br />
		      if(e.keyCode == Keyboard.LEFT){<br />
		          this.target.ax = - 0.1;<br />
		      }else if(e.keyCode == Keyboard.RIGHT)<br />
		      {<br />
		          this.target.ax = 0.1;<br />
		      }else if(e.keyCode == Keyboard.UP){<br />
		          this.target.ay = -0.1<br />
		      }else if(e.keyCode == Keyboard.DOWN){<br />
		          this.target.ay = 0.1;<br />
		      }<br />
		}<br />
		public function onKeyup(e:KeyboardEvent):void{<br />
		      this.target.ax = 0;<br />
		      this.target.ay = 0;<br />
		}<br />
	}<br />
}</code></p>
<p>Agora vamos implementar a classe &#8220;Movimento&#8221;:</p>
<p><code>package<br />
{<br />
	import flash.display.DisplayObject;<br />
	import flash.display.MovieClip;<br />
	import flash.display.Sprite;<br />
	import flash.events.Event;<br />
	import flash.events.KeyboardEvent;<br />
	public class Movimento extends Sprite<br />
	{<br />
		private var teclado:Controle;<br />
		private var objBola:Objeto;<br />
		public function Movimento()<br />
		{<br />
			init();<br />
		}<br />
		private function init():void<br />
		{<br />
			this.objBola = new Objeto();<br />
			this.teclado = new Controle(this.objBola);<br />
			stage.addEventListener(KeyboardEvent.KEY_DOWN,this.teclado.onKeydown);<br />
			stage.addEventListener(KeyboardEvent.KEY_UP,this.teclado.onKeyup);<br />
			this.addChild(this.objBola);<br />
			this.objBola.x = stage.stageWidth / 2;<br />
			this.objBola.y = stage.stageHeight / 2;<br />
			this.teclado.initialize();<br />
		}<br />
	}<br />
}</code></p>
<p>Pronto! Como foram feitas as classes e a organização foi só para o teste e exemplo. Uma boa organização pode abrir espaço para colocar gravidade e efeitos físicos.</p>
<p> <img src='http://s0.wp.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<p>Faça o <a href="http://rapidshare.com/files/262541317/TesteMovimento.zip" target='_blank'>download</a> dos arquivos utilizados.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/thlaa.wordpress.com/35/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/thlaa.wordpress.com/35/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/thlaa.wordpress.com/35/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/thlaa.wordpress.com/35/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/thlaa.wordpress.com/35/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/thlaa.wordpress.com/35/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/thlaa.wordpress.com/35/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/thlaa.wordpress.com/35/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/thlaa.wordpress.com/35/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/thlaa.wordpress.com/35/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/thlaa.wordpress.com/35/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/thlaa.wordpress.com/35/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/thlaa.wordpress.com/35/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/thlaa.wordpress.com/35/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=thlaa.wordpress.com&amp;blog=8802859&amp;post=35&amp;subd=thlaa&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://thlaa.wordpress.com/2009/07/31/movimento-via-teclado/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/42985371b20daea5a244419d90d044f3?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">Thiago</media:title>
		</media:content>

		<media:content url="http://thlaa.files.wordpress.com/2009/07/linkage.jpg" medium="image">
			<media:title type="html">Nome do linkage do movieclip</media:title>
		</media:content>

		<media:content url="http://thlaa.files.wordpress.com/2009/07/mainclass.jpg" medium="image">
			<media:title type="html">Nome da classe principal do fla</media:title>
		</media:content>
	</item>
		<item>
		<title>Lendo variáveis do HTML</title>
		<link>http://thlaa.wordpress.com/2009/07/31/lendo-variaveis-do-html/</link>
		<comments>http://thlaa.wordpress.com/2009/07/31/lendo-variaveis-do-html/#comments</comments>
		<pubDate>Fri, 31 Jul 2009 06:16:27 +0000</pubDate>
		<dc:creator>Thiago Araújo</dc:creator>
				<category><![CDATA[AS3]]></category>

		<guid isPermaLink="false">http://thlaa.wordpress.com/?p=23</guid>
		<description><![CDATA[Primeiro, vamos que criar uma classe com variáveis estáticas e a depois implementar a função que vai se encarregar de ler os valores do html e passar para essas variáveis. O nome da classe pode ser qualquer um, mas essa aqui se chama &#8220;LoadTest&#8221;. Segue o código implementado da classe: package { import flash.display.Sprite; import [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=thlaa.wordpress.com&amp;blog=8802859&amp;post=23&amp;subd=thlaa&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Primeiro, vamos que criar uma classe com variáveis estáticas e a depois implementar a função que vai se encarregar de ler os valores do html e passar para essas variáveis.<br />
<span id="more-23"></span></p>
<p>O nome da classe pode ser qualquer um, mas essa aqui se chama &#8220;LoadTest&#8221;.<br />
Segue o código implementado da classe:<br />
<code>package<br />
{<br />
import flash.display.Sprite;<br />
import flash.display.LoaderInfo;<br />
public class LoadTest<br />
{<br />
private static var teste:String;<br />
public function LoadTest()<br />
{<br />
init();<br />
}<br />
}<br />
private function init():void<br />
{<br />
getParams();<br />
trace(teste);<br />
}<br />
private function getParams():void{<br />
var keyStr:String;<br />
var valueStr:String;<br />
var paramObj:Object = LoaderInfo(this.root.loaderInfo).parameters;<br />
for(keyStr in paramObj){<br />
valueStr = String(paramObj[keyStr]);<br />
if(valueStr != null){<br />
this[keyStr] = valueStr;<br />
}<br />
}<br />
}<br />
}<br />
</code></p>
<p>No html na parte de parâmetros da tag object do flash, adicione o parâmetro</p>
<p>Exemplo:</p>
<p><code></p>
<pre style="margin-top:10px;margin-bottom:10px;">&lt;object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"
        codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0"
        width="550"
        height="400"
        align="middle"
        id="teste"&gt;
    &lt;param name="allowScriptAccess" value="sameDomain" /&gt;
    &lt;param name="movie" value="teste.swf" /&gt;
    &lt;param name="quality" value="high" /&gt;
    &lt;param name="bgcolor" value="#ffffff" /&gt;
  <strong>  &lt;param name="FlashVars" value="teste=funcionou!" /&gt;</strong>
    &lt;embed src="teste.swf"
           width="550"
           height="400"
           autostart="false"
           quality="high"
           bgcolor="#ffffff"
           <strong>FlashVars="teste=funcionou!"</strong>
           name="teste"
           align="middle"
           allowScriptAccess="sameDomain"
           type="application/x-shockwave-flash"
           pluginspage="http://www.macromedia.com/go/getflashplayer" /&gt;
&lt;/object&gt;</pre>
<p></code></p>
<p>Agora é só compilar que vai aparecer o conteúdo do parâmetro no output <img src='http://s0.wp.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /><br />
No caso de querer mais parâmetros é só separa-los com um &amp;.</p>
<p>Exemplo:</p>
<p><code> &lt;param name="FlashVars" value="teste=funcionou!&amp;teste2=hahaha..." /&gt;</code></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/thlaa.wordpress.com/23/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/thlaa.wordpress.com/23/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/thlaa.wordpress.com/23/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/thlaa.wordpress.com/23/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/thlaa.wordpress.com/23/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/thlaa.wordpress.com/23/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/thlaa.wordpress.com/23/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/thlaa.wordpress.com/23/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/thlaa.wordpress.com/23/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/thlaa.wordpress.com/23/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/thlaa.wordpress.com/23/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/thlaa.wordpress.com/23/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/thlaa.wordpress.com/23/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/thlaa.wordpress.com/23/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=thlaa.wordpress.com&amp;blog=8802859&amp;post=23&amp;subd=thlaa&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://thlaa.wordpress.com/2009/07/31/lendo-variaveis-do-html/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/42985371b20daea5a244419d90d044f3?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">Thiago</media:title>
		</media:content>
	</item>
		<item>
		<title>Conexão com banco de dados</title>
		<link>http://thlaa.wordpress.com/2009/07/31/conexao-com-banco-de-dados/</link>
		<comments>http://thlaa.wordpress.com/2009/07/31/conexao-com-banco-de-dados/#comments</comments>
		<pubDate>Fri, 31 Jul 2009 05:35:19 +0000</pubDate>
		<dc:creator>Thiago Araújo</dc:creator>
				<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://thlaa.wordpress.com/?p=9</guid>
		<description><![CDATA[Abaixo segue um exemplo de classe que uso para fazer conexão do php com o banco de dados. //Nome da classe class Conexao{ private $_id; private $_host; private $_user; private $_password; private $_db; private $_limite; //Construtor function __construct($host="",$user="",$pwd="",$db=""){ $this-&#62;$_host = $host; $this-&#62;$_user = $user; $this-&#62;$_pwd = $pwd; $this-&#62;$_db = $db; } //Conectar public function conectar(){ [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=thlaa.wordpress.com&amp;blog=8802859&amp;post=9&amp;subd=thlaa&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Abaixo segue um exemplo de classe que uso para fazer conexão do php com o banco de dados.<span id="more-9"></span><br />
<code>//Nome da classe<br />
class Conexao{<br />
private $_id;<br />
private $_host;<br />
private $_user;<br />
private $_password;<br />
private $_db;<br />
private $_limite;<br />
//Construtor<br />
function __construct($host="",$user="",$pwd="",$db=""){<br />
$this-&gt;$_host = $host;<br />
$this-&gt;$_user = $user;<br />
$this-&gt;$_pwd = $pwd;<br />
$this-&gt;$_db = $db;<br />
}<br />
//Conectar<br />
public function conectar(){<br />
try{<br />
$this-&gt;_id = mysql_connect($this-&gt;_host,$this-&gt;_user,$this-&gt;_password);<br />
mysql_select_db($this-&gt;_db,$this-&gt;_id);<br />
}catch(Exception $e){<br />
echo " - Erro: ({$e-&gt;getCode()}) {$e-&gt;getMessage()} - ";<br />
exit();<br />
}<br />
}<br />
//Funçao para SQL<br />
public function sql($query){<br />
$this-&gt;_limite = -1;<br />
try{<br />
$this-&gt;_limite = mysql_query($query);<br />
}catch(Exception $e){<br />
echo " - Erro: ({$e-&gt;getCode()}) {$e-&gt;getMessage()} - ";<br />
exit();<br />
}<br />
return $this-&gt;_limite;<br />
}<br />
</code></p>
<p>Tabela do banco de dados para teste:<br />
<code><br />
CREATE TABLE `usuario` (<br />
`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,<br />
`email` VARCHAR( 50 ) NOT NULL ,<br />
`login` VARCHAR( 20 ) NOT NULL ,<br />
`senha` VARCHAR( 40 ) NOT NULL<br />
) ;<br />
</code></p>
<p>Mas como usar a classe? Primeiro é preciso colocar um include da classe no arquivo php.</p>
<p><code>include("classeConexao.php");</code></p>
<p>Depois se passa os parâmetros host, user, pwd e bd, que no caso de estar testando a classe em um servidor local são: &#8220;localhost&#8221;, &#8220;root&#8221;, &#8220;&#8221; e &#8220;nomeDoBanco&#8221;.</p>
<p><code>$conexao = new Conexao($_host,$_user,$_pwd,$_db);<br />
$conexao-&gt;conectar();</code></p>
<p>Para executar uma pesquisa sql:<br />
<code>$limite = $conexao-&gt;sql("SELECT * FROM usuario");</code></p>
<p>E para visualizar os resultados de login e email da consulta acima é preciso criar um loop:<br />
<code>while ($exibir = mysql_fetch_assoc($limite)) {<br />
echo $exibir['login'] . " ". echo $exibir['email'];<br />
}</code></p>
<p> <img src='http://s0.wp.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/thlaa.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/thlaa.wordpress.com/9/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/thlaa.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/thlaa.wordpress.com/9/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/thlaa.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/thlaa.wordpress.com/9/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/thlaa.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/thlaa.wordpress.com/9/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/thlaa.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/thlaa.wordpress.com/9/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/thlaa.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/thlaa.wordpress.com/9/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/thlaa.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/thlaa.wordpress.com/9/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=thlaa.wordpress.com&amp;blog=8802859&amp;post=9&amp;subd=thlaa&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://thlaa.wordpress.com/2009/07/31/conexao-com-banco-de-dados/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/42985371b20daea5a244419d90d044f3?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">Thiago</media:title>
		</media:content>
	</item>
	</channel>
</rss>
