<?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>José Carlos Fiel &#187; Adobe Flex</title>
	<atom:link href="http://blog.josecarlosfiel.com.br/category/flex/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.josecarlosfiel.com.br</link>
	<description></description>
	<lastBuildDate>Thu, 05 Aug 2010 21:31:06 +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>Entendendo o Flash Remoting</title>
		<link>http://blog.josecarlosfiel.com.br/entendendo-o-flash-remoting/</link>
		<comments>http://blog.josecarlosfiel.com.br/entendendo-o-flash-remoting/#comments</comments>
		<pubDate>Thu, 05 Aug 2010 21:27:56 +0000</pubDate>
		<dc:creator>José Carlos Silveira Fiel</dc:creator>
				<category><![CDATA[Adobe Flex]]></category>
		<category><![CDATA[Zend Amf]]></category>
		<category><![CDATA[Zend Framework]]></category>
		<category><![CDATA[amf]]></category>
		<category><![CDATA[flash remoting]]></category>

		<guid isPermaLink="false">http://blog.josecarlosfiel.com.br/?p=413</guid>
		<description><![CDATA[ 
			
				
			
		
Hoje não trago nenhuma linha de código a vocês, mas sim um assunto interessante para entender como funciona o Flash Remoting na teoria.

O que é Flash Remoting?
Quando você está usando XML para enviar dados para sua aplicação cliente, muitos dos dados que você está transferindo não é absolutamente necessário. Pense em todos os caracteres]]></description>
			<content:encoded><![CDATA[<div style="float:right;margin:0px 0px 0px 0px;"><a href="http://www.google.com/reader/link?url=http://blog.josecarlosfiel.com.br/entendendo-o-flash-remoting/&title=Entendendo o Flash Remoting&srcTitle=José Carlos Fiel&srcURL=http://blog.josecarlosfiel.com.br"target="_blank" rel=""><img border="0" src="http://blog.josecarlosfiel.com.br/wp-content/plugins/wp-google-buzz/icon/9.png" style="opacity:1;filter:alpha(opacity=100)" onmouseover="this.style.opacity=0.8;this.filters.alpha.opacity=80" onmouseout="this.style.opacity=1;this.filters.alpha.opacity=100"/> </a></div><div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fblog.josecarlosfiel.com.br%2Fentendendo-o-flash-remoting%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fblog.josecarlosfiel.com.br%2Fentendendo-o-flash-remoting%2F&amp;style=normal" height="61" width="50" /><br />
			</a>
		</div>
<p>Hoje não trago nenhuma linha de código a vocês, mas sim um assunto interessante para entender como funciona o Flash Remoting na teoria.</p>
<p style="text-align: justify;">
<h3><strong>O que é Flash Remoting?</strong></h3>
<p>Quando você está usando XML para enviar dados para sua aplicação cliente, muitos dos dados que você está transferindo não é absolutamente necessário. Pense em todos os caracteres extras que estão em um documento XML. Pense em quantas vezes você tem que enviar os atributos e nós, bem como ambas as tags início e tags de fim. XML é um formato grande, mas há uma grande sobrecarga no processamento desde documento.</p>
<p style="text-align: justify;">
<p style="text-align: justify;"><span style="line-height: 23px; font-size: 21px;"><strong>Action Message Format</strong></span></p>
<p>Action Message Format (AMF) funciona através de HTTP, como o XML, mas em vez de enviar diversas informações extras, o AMF envia as informações essenciais retirando estes caracteres desnecessários, ou seja é serializado dentro de um formato binário que usa bem menos banda e espaço do que um mesmo dado enviado com XML.</p>
<p>Isso torna útil quando você envia muitos dados. Em vez de enviar várias tags redundantes em XML, você está enviando pequenos registros AMF serializados.</p>
<p>Outro benefício do AMF é, que este é um tipo de dados nativo do Flash Player. Com isso o Flash Player não tem que fazer um &#8220;parse&#8221; dos resultados para obter as informações. Eles estão disponíveis no Flash Player como objetos nativos do ActionScript logo que é recebido através do servidor.</p>
<p>Flash Remoting usa AMF para expor objetos e web services em um servidor de aplicação, como se fossem objetos ActionScript locais. O único problema é que para usar AMF você tem que trabalhar com objetos no PHP. O gateway AMF ajuda a traduzir esses objetos PHP em objetos ActionScript no Flash Player. Com isso, você pode criar seus próprios objetos tipados no PHP e manter uma cópia destes objetos tipados no ActionScript.</p>
<p style="text-align: justify;">
<p style="text-align: justify;"><span style="line-height: 23px; font-size: 21px;"><strong>Flash Remoting e o Zend Framework</strong></span></p>
<p>Você já deve saber que recentemente a Adobe fez uma parceria com a Zend para fornecer suporte para o Flash Remoting com AMF no Zend Framework. Existem outros projetos como este, incluindo o <a href="http://www.amfphp.org/" target="_blank"><span style="color: #4e4e4e;">AMFPHP</span></a> para outros frameworks PHP, mas Zend AMF tem constante suporte para Flash Remoting. O <a href="http://framework.zend.com/" target="_blank"><span style="color: #4e4e4e;">Zend Framework</span></a> é um robusto framework para PHP que pode ser usado para projetos muitos complexos. Para alguns desenvolvedores PHP qual apenas quer conectar PHP com Flex pode ser um caminhão de pedra para matar uma mosca. Você não precisa usar todo o Zend Framework, ou alterar a estrutura do seu projeto para usar o Zend AMF. Zend AMF baseia-se em um pequeno, mas poderoso, pacote que pode ser facilmente integrado a qualquer projeto PHP.</p>
<p style="text-align: justify;">
<p>&#8211;</p>
<p>Por hoje é isso!  O artigo original vocês podem acessar <a href="http://www.adobe.com/devnet/flex/articles/flashbuilder4_php_part2_02.html" target="_blank"><span style="color: #4e4e4e;">aqui</span></a>.  Espero que tenham gostado e sinta-se a vontade de deixar sugestões ou críticas.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.josecarlosfiel.com.br/entendendo-o-flash-remoting/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>App demo que será desenvolvida neste sábado (17/07) no #minizend</title>
		<link>http://blog.josecarlosfiel.com.br/app-demo-que-sera-desenvolvida-neste-sabado-1707-no-minizend/</link>
		<comments>http://blog.josecarlosfiel.com.br/app-demo-que-sera-desenvolvida-neste-sabado-1707-no-minizend/#comments</comments>
		<pubDate>Wed, 14 Jul 2010 08:02:11 +0000</pubDate>
		<dc:creator>José Carlos Silveira Fiel</dc:creator>
				<category><![CDATA[Adobe AIR]]></category>
		<category><![CDATA[Adobe Flex]]></category>
		<category><![CDATA[RIA]]></category>
		<category><![CDATA[Zend Amf]]></category>
		<category><![CDATA[Zend Framework]]></category>
		<category><![CDATA[minizend]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[ux]]></category>
		<category><![CDATA[zend]]></category>
		<category><![CDATA[zf]]></category>

		<guid isPermaLink="false">http://blog.josecarlosfiel.com.br/?p=400</guid>
		<description><![CDATA[ 
			
				
			
		
Neste sábado (17/07) será a terceira vez que ministrarei o Mini curso On-line de Flex e Zend Framework (#minizend).
Então apresento no vídeo abaixo a aplicação demo que será desenvolvida. Além dela será criado um aplicativo AIR para cadastrar pedidos de vendas.
Pretendo também mostrar um pouco sobre Mate Framework no lado do Flex, deixando o]]></description>
			<content:encoded><![CDATA[<div style="float:right;margin:0px 0px 0px 0px;"><a href="http://www.google.com/reader/link?url=http://blog.josecarlosfiel.com.br/app-demo-que-sera-desenvolvida-neste-sabado-1707-no-minizend/&title=App demo que será desenvolvida neste sábado (17/07) no #minizend&srcTitle=José Carlos Fiel&srcURL=http://blog.josecarlosfiel.com.br"target="_blank" rel=""><img border="0" src="http://blog.josecarlosfiel.com.br/wp-content/plugins/wp-google-buzz/icon/9.png" style="opacity:1;filter:alpha(opacity=100)" onmouseover="this.style.opacity=0.8;this.filters.alpha.opacity=80" onmouseout="this.style.opacity=1;this.filters.alpha.opacity=100"/> </a></div><div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fblog.josecarlosfiel.com.br%2Fapp-demo-que-sera-desenvolvida-neste-sabado-1707-no-minizend%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fblog.josecarlosfiel.com.br%2Fapp-demo-que-sera-desenvolvida-neste-sabado-1707-no-minizend%2F&amp;style=normal" height="61" width="50" /><br />
			</a>
		</div>
<p><strong>Neste sábado (17/07)</strong> será a terceira vez que ministrarei o <strong>Mini curso On-line de Flex e Zend Framework (#minizend)</strong>.</p>
<p>Então apresento no vídeo abaixo a aplicação demo que será desenvolvida. Além dela será criado um aplicativo AIR para cadastrar pedidos de vendas.</p>
<p>Pretendo também mostrar um pouco sobre Mate Framework no lado do Flex, deixando o projeto mais organizado.</p>
<p><strong>Para quem não se matriculou ainda, não se preocupe, pois ainda há tempo! </strong></p>
<p><strong>Acesse <a href="http://www.riacycle.com/zend" target="_blank">www.riacycle.com/zend</a> e garanta sua vaga.</strong></p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="640" height="430" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="src" value="http://blip.tv/play/AYHt%2BAcA" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="640" height="430" src="http://blip.tv/play/AYHt%2BAcA" allowfullscreen="true"></embed></object></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.josecarlosfiel.com.br/app-demo-que-sera-desenvolvida-neste-sabado-1707-no-minizend/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Palestra no Flexmania 2010 #soudev</title>
		<link>http://blog.josecarlosfiel.com.br/palestra-no-flexmania-2010-soudev/</link>
		<comments>http://blog.josecarlosfiel.com.br/palestra-no-flexmania-2010-soudev/#comments</comments>
		<pubDate>Sat, 10 Jul 2010 19:14:46 +0000</pubDate>
		<dc:creator>José Carlos Silveira Fiel</dc:creator>
				<category><![CDATA[Adobe Flex]]></category>
		<category><![CDATA[Flex Mania]]></category>
		<category><![CDATA[Zend Amf]]></category>
		<category><![CDATA[Zend Framework]]></category>
		<category><![CDATA[flexmania]]></category>
		<category><![CDATA[minizend]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[zend]]></category>
		<category><![CDATA[zf]]></category>

		<guid isPermaLink="false">http://blog.josecarlosfiel.com.br/?p=391</guid>
		<description><![CDATA[ 
			
				
			
		
Primeiramente, obrigado a todos que participaram da minha palestra.
Deixo aqui neste post o link para os slides: http://www.slideshare.net/josecarlosfiel/debugando-flex-e-php
Espero que vocês tenham gostado e para maiores dúvidas a respeito da palestra ou sugestões de post (screencasts), sintam-se a vontade em enviar um comentário.
Atenderei aos pedidos assim que for possível.
Mais uma vez obrigado e convido a]]></description>
			<content:encoded><![CDATA[<div style="float:right;margin:0px 0px 0px 0px;"><a href="http://www.google.com/reader/link?url=http://blog.josecarlosfiel.com.br/palestra-no-flexmania-2010-soudev/&title=Palestra no Flexmania 2010 #soudev&srcTitle=José Carlos Fiel&srcURL=http://blog.josecarlosfiel.com.br"target="_blank" rel=""><img border="0" src="http://blog.josecarlosfiel.com.br/wp-content/plugins/wp-google-buzz/icon/9.png" style="opacity:1;filter:alpha(opacity=100)" onmouseover="this.style.opacity=0.8;this.filters.alpha.opacity=80" onmouseout="this.style.opacity=1;this.filters.alpha.opacity=100"/> </a></div><div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fblog.josecarlosfiel.com.br%2Fpalestra-no-flexmania-2010-soudev%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fblog.josecarlosfiel.com.br%2Fpalestra-no-flexmania-2010-soudev%2F&amp;style=normal" height="61" width="50" /><br />
			</a>
		</div>
<p>Primeiramente, obrigado a todos que participaram da minha palestra.</p>
<p>Deixo aqui neste post o link para os slides: <strong><a href="http://www.slideshare.net/josecarlosfiel/debugando-flex-e-php" target="_blank">http://www.slideshare.net/josecarlosfiel/debugando-flex-e-php</a></strong></p>
<p>Espero que vocês tenham gostado e para maiores dúvidas a respeito da palestra ou sugestões de post (screencasts), sintam-se a vontade em enviar um comentário.</p>
<p>Atenderei aos pedidos assim que for possível.</p>
<p>Mais uma vez obrigado e convido a todos ao <strong><a href="http://www.riacycle.com/zend" target="_blank">Mini Curso On-line de Flex e Zend Framework</a></strong> neste próximo sábado (17/07), lembrando que quem participou da palestra e enviou o código da promoção ganhou 30% de desconto!</p>
<p>Grande abraço!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.josecarlosfiel.com.br/palestra-no-flexmania-2010-soudev/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Minizend &#8211; Aplicação Demo</title>
		<link>http://blog.josecarlosfiel.com.br/minizend-aplicacao-demo/</link>
		<comments>http://blog.josecarlosfiel.com.br/minizend-aplicacao-demo/#comments</comments>
		<pubDate>Thu, 29 Apr 2010 15:12:40 +0000</pubDate>
		<dc:creator>José Carlos Silveira Fiel</dc:creator>
				<category><![CDATA[Adobe AIR]]></category>
		<category><![CDATA[Adobe Flex]]></category>
		<category><![CDATA[RIA]]></category>
		<category><![CDATA[Zend Amf]]></category>
		<category><![CDATA[Zend Framework]]></category>
		<category><![CDATA[minizend]]></category>

		<guid isPermaLink="false">http://blog.josecarlosfiel.com.br/?p=374</guid>
		<description><![CDATA[ 
			
				
			
		
No video abaixo apresento a aplicação de Distribuição de Fornecedores que irei desenvolver durante o mini curso online de Flex e Zend Framework (#minizend).
O curso ocorrerá neste sábado, dia 05/06. Para quem não se matriculou ainda, não se preocupe, pois ainda há tempo! Acesse www.riacycle.com/zend e garanta sua vaga.

]]></description>
			<content:encoded><![CDATA[<div style="float:right;margin:0px 0px 0px 0px;"><a href="http://www.google.com/reader/link?url=http://blog.josecarlosfiel.com.br/minizend-aplicacao-demo/&title=Minizend - Aplicação Demo&srcTitle=José Carlos Fiel&srcURL=http://blog.josecarlosfiel.com.br"target="_blank" rel=""><img border="0" src="http://blog.josecarlosfiel.com.br/wp-content/plugins/wp-google-buzz/icon/9.png" style="opacity:1;filter:alpha(opacity=100)" onmouseover="this.style.opacity=0.8;this.filters.alpha.opacity=80" onmouseout="this.style.opacity=1;this.filters.alpha.opacity=100"/> </a></div><div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fblog.josecarlosfiel.com.br%2Fminizend-aplicacao-demo%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fblog.josecarlosfiel.com.br%2Fminizend-aplicacao-demo%2F&amp;style=normal" height="61" width="50" /><br />
			</a>
		</div>
<p>No video abaixo apresento a aplicação de Distribuição de Fornecedores que irei desenvolver durante o mini curso online de Flex e Zend Framework (#minizend).</p>
<p>O curso ocorrerá neste sábado, dia <strong>05/06</strong>. Para quem não se matriculou ainda, não se preocupe, pois ainda há tempo! Acesse www.riacycle.com/zend e garanta sua vaga.</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="320" height="270" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="data" value="http://blip.tv/play/AYHaj24A" /><param name="src" value="http://blip.tv/play/AYHaj24A" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="320" height="270" src="http://blip.tv/play/AYHaj24A" allowfullscreen="true" data="http://blip.tv/play/AYHaj24A"></embed></object></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.josecarlosfiel.com.br/minizend-aplicacao-demo/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[Fiel Cookbook] Manipulando Datas entre Flex e PHP</title>
		<link>http://blog.josecarlosfiel.com.br/fiel-cookbook-manipulando-datas-entre-flex-e-php/</link>
		<comments>http://blog.josecarlosfiel.com.br/fiel-cookbook-manipulando-datas-entre-flex-e-php/#comments</comments>
		<pubDate>Thu, 22 Apr 2010 19:38:08 +0000</pubDate>
		<dc:creator>José Carlos Silveira Fiel</dc:creator>
				<category><![CDATA[Adobe Flex]]></category>
		<category><![CDATA[Fiel Cookbook]]></category>
		<category><![CDATA[Zend Amf]]></category>
		<category><![CDATA[Zend Framework]]></category>

		<guid isPermaLink="false">http://blog.josecarlosfiel.com.br/?p=362</guid>
		<description><![CDATA[ 
			
				
			
		
Problema
Temos um DateField no Flex e queremos enviar a data selecionada para o PHP como um objeto Date e não somente uma simples string no fomato DD/MM/YYYY. Enviando o objeto Date, teremos o benefício de ter todas as informações de Timezone, GMT e etc para serem manipuladas futuramente via backend.

Solução
Para resolvermos nosso problema, devemos]]></description>
			<content:encoded><![CDATA[<div style="float:right;margin:0px 0px 0px 0px;"><a href="http://www.google.com/reader/link?url=http://blog.josecarlosfiel.com.br/fiel-cookbook-manipulando-datas-entre-flex-e-php/&title=[Fiel Cookbook] Manipulando Datas entre Flex e PHP&srcTitle=José Carlos Fiel&srcURL=http://blog.josecarlosfiel.com.br"target="_blank" rel=""><img border="0" src="http://blog.josecarlosfiel.com.br/wp-content/plugins/wp-google-buzz/icon/9.png" style="opacity:1;filter:alpha(opacity=100)" onmouseover="this.style.opacity=0.8;this.filters.alpha.opacity=80" onmouseout="this.style.opacity=1;this.filters.alpha.opacity=100"/> </a></div><div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fblog.josecarlosfiel.com.br%2Ffiel-cookbook-manipulando-datas-entre-flex-e-php%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fblog.josecarlosfiel.com.br%2Ffiel-cookbook-manipulando-datas-entre-flex-e-php%2F&amp;style=normal" height="61" width="50" /><br />
			</a>
		</div>
<h2><strong>Problema</strong></h2>
<p style="text-align: justify;">Temos um DateField no Flex e queremos enviar a data selecionada para o PHP como um objeto Date e não somente uma simples string no fomato DD/MM/YYYY. Enviando o objeto Date, teremos o benefício de ter todas as informações de Timezone, GMT e etc para serem manipuladas futuramente via backend.</p>
<p style="text-align: justify;">
<h2>Solução</h2>
<p style="text-align: justify;">Para resolvermos nosso problema, devemos utilizar o Zend Amf para serialização/deserialização de objetos entre Flex e PHP. No Flex simplesmente usaremos a propriedade <strong>selectedDate </strong>do DateField para selecionarmos o objeto Date e após enviar ao PHP via RemoteObject. O Zend Amf terá o papel de converter este objeto para Zend Date e vice versa.</p>
<p style="text-align: justify;">
<h2>Explicação Detalhada</h2>
<p style="text-align: justify;"><em>Obs.:  O ViewSource está habilitado no exemplo abaixo para quem quiser  acompanhar melhor esta explicação.<br />
</em></p>
<p>1º &#8211; Capturamos o objeto Date pela propriedade <strong>selectedDate </strong>do DateField e enviamos para o PHP.</p>
<p><strong>FlexPHPDate.mxml</strong></p>
<div class="codecolorer-container mxml default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;height:300px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />25<br />26<br />27<br />28<br />29<br />30<br />31<br />32<br />33<br />34<br />35<br />36<br />37<br /></div></td><td><div class="mxml codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><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><br />
<span style="color: #000000;"><span style="color: #7400FF;">&lt;mx:Application</span> xmlns:mx=<span style="color: #ff0000;">&quot;http://www.adobe.com/2006/mxml&quot;</span> viewSourceURL=<span style="color: #ff0000;">&quot;srcview/index.html&quot;</span><span style="color: #7400FF;">&gt;</span></span><br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; <span style="color: #339933;">&lt;mx:Script&gt;</span><br />
<span style="color: #339933;"> &nbsp; &nbsp; &nbsp; &nbsp;&lt;![CDATA[</span><br />
<span style="color: #339933;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;import mx.controls.Alert;</span><br />
<span style="color: #339933;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;import mx.rpc.events.FaultEvent;</span><br />
<span style="color: #339933;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;import mx.rpc.events.ResultEvent;</span><br />
<span style="color: #339933;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><br />
<span style="color: #339933;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;public function getTimezone():void</span><br />
<span style="color: #339933;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;{</span><br />
<span style="color: #339933;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;remote.getTimezone(dt.selectedDate);</span><br />
<span style="color: #339933;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</span><br />
<br />
<span style="color: #339933;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;public function getTimestamp():void</span><br />
<span style="color: #339933;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;{</span><br />
<span style="color: #339933;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;remote.getTimestamp(dt.selectedDate);</span><br />
<span style="color: #339933;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</span><br />
<span style="color: #339933;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><br />
<span style="color: #339933;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;protected function remote_resultHandler(event:ResultEvent):void</span><br />
<span style="color: #339933;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;{</span><br />
<span style="color: #339933;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Alert.show(event.result.toString());</span><br />
<span style="color: #339933;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</span><br />
<br />
<span style="color: #339933;"> &nbsp; &nbsp; &nbsp; &nbsp;]]&gt;</span><br />
<span style="color: #339933;"> &nbsp; &nbsp;&lt;/mx:Script&gt;</span><br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; <span style="color: #000000;"><span style="color: #7400FF;">&lt;mx:DateField</span> id=<span style="color: #ff0000;">&quot;dt&quot;</span> formatString=<span style="color: #ff0000;">&quot;DD/MM/YYYY&quot;</span> <span style="color: #7400FF;">/&gt;</span></span><br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; <span style="color: #000000;"><span style="color: #7400FF;">&lt;mx:Button</span> label=<span style="color: #ff0000;">&quot;Get Timezone&quot;</span> click=<span style="color: #ff0000;">&quot;getTimezone()&quot;</span> enabled=<span style="color: #ff0000;">&quot;{ dt.selectedDate != null }&quot;</span> <span style="color: #7400FF;">/&gt;</span></span><br />
&nbsp; &nbsp; <span style="color: #000000;"><span style="color: #7400FF;">&lt;mx:Button</span> label=<span style="color: #ff0000;">&quot;Get UNIX timestamp&quot;</span> click=<span style="color: #ff0000;">&quot;getTimestamp()&quot;</span> enabled=<span style="color: #ff0000;">&quot;{ dt.selectedDate != null }&quot;</span> <span style="color: #7400FF;">/&gt;</span></span><br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; <span style="color: #000000;"><span style="color: #7400FF;">&lt;mx:RemoteObject</span> id=<span style="color: #ff0000;">&quot;remote&quot;</span> destination=<span style="color: #ff0000;">&quot;zend&quot;</span> endpoint=<span style="color: #ff0000;">&quot;../gateway.php&quot;</span> </span><br />
<span style="color: #000000;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; source=<span style="color: #ff0000;">&quot;DateService&quot;</span></span><br />
<span style="color: #000000;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; result=<span style="color: #ff0000;">&quot;remote_resultHandler(event)&quot;</span><span style="color: #7400FF;">/&gt;</span></span><br />
&nbsp; &nbsp; <br />
<span style="color: #000000;"><span style="color: #7400FF;">&lt;/mx:Application</span><span style="color: #7400FF;">&gt;</span></span></div></td></tr></tbody></table></div>
<p>2º &#8211; Recebemos o objeto Date no PHP já convertido para Zend_Date. Isso é feito automaticamente pelo Zend_Amf.</p>
<p><strong>DateService.php (está localizando dentro da pasta /services/)</strong></p>
<div class="codecolorer-container php default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br /></div></td><td><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #000000; font-weight: bold;">&lt;?php</span><br />
<span style="color: #000000; font-weight: bold;">class</span> DateService<br />
<span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">function</span> getTimezone<span style="color: #009900;">&#40;</span>Zend_Date <span style="color: #000088;">$date</span><span style="color: #009900;">&#41;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #b1b100;">return</span> <span style="color: #000088;">$date</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">getTimezone</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">function</span> getTimestamp<span style="color: #009900;">&#40;</span>Zend_Date <span style="color: #000088;">$date</span><span style="color: #009900;">&#41;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #b1b100;">return</span> <span style="color: #000088;">$date</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">getTimestamp</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
<span style="color: #009900;">&#125;</span></div></td></tr></tbody></table></div>
<p><iframe style="width: 100%; height: 300px;" border="0" src="http://www.josecarlosfiel.com.br/projetos/flex/FlexPHPDate/bin-release/FlexPHPDate.html"></iframe></p>
<p style="text-align: center;"><em>Exemplo  da Solução: Ao selecionarmos a data e selecionando Get Timezone, mandaremos para o PHP o objeto Date e após o PHP enviará para nós um timestamp desta data atravéz do Zend_Date. Acontece o mesmo para Get UNIX Timestamp.</em></p>
<p style="text-align: left;"><em><strong>Baixe aqui o projeto Flex incluindo o PHP: </strong></em><a href="http://www.josecarlosfiel.com.br/projetos/flex/FlexPHPDate.zip">FlexPHPDate.zip</a><em><br />
</em></p>
<p style="text-align: center;">
<h2>Observações Finais</h2>
<p style="text-align: justify;">Esta prática é interessante para manipularmos o mesmo objeto Date de uma linguagem para outra, com várias informações de Timezone, GMT e etc, como citados acima.</p>
<p>Abraços a todos e até o próximo Fiel Cookbook.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.josecarlosfiel.com.br/fiel-cookbook-manipulando-datas-entre-flex-e-php/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Sou novo membro da comunidade O&#8217;Reilly</title>
		<link>http://blog.josecarlosfiel.com.br/sou-novo-membro-da-comunidade-oreilly/</link>
		<comments>http://blog.josecarlosfiel.com.br/sou-novo-membro-da-comunidade-oreilly/#comments</comments>
		<pubDate>Thu, 14 Jan 2010 00:14:10 +0000</pubDate>
		<dc:creator>José Carlos Silveira Fiel</dc:creator>
				<category><![CDATA[Adobe Flex]]></category>
		<category><![CDATA[RIA]]></category>
		<category><![CDATA[Adode Flex]]></category>
		<category><![CDATA[InsideRIA]]></category>
		<category><![CDATA[OReilly]]></category>

		<guid isPermaLink="false">http://blog.josecarlosfiel.com.br/?p=353</guid>
		<description><![CDATA[ 
			
				
			
		
Olá a todos! Vim aqui informar aos meus caros colegas e amigos que acompanham meu blog e twitter para falar mais sobre esta novidade, que eu mesmo nem esperava.
Como vocês podem ver no nome do post, eu sou o novo membro da comunidade da O&#8217;Reilly, mas calma eu não vou escrever nenhum livro até]]></description>
			<content:encoded><![CDATA[<div style="float:right;margin:0px 0px 0px 0px;"><a href="http://www.google.com/reader/link?url=http://blog.josecarlosfiel.com.br/sou-novo-membro-da-comunidade-oreilly/&title=Sou novo membro da comunidade O'Reilly&srcTitle=José Carlos Fiel&srcURL=http://blog.josecarlosfiel.com.br"target="_blank" rel=""><img border="0" src="http://blog.josecarlosfiel.com.br/wp-content/plugins/wp-google-buzz/icon/9.png" style="opacity:1;filter:alpha(opacity=100)" onmouseover="this.style.opacity=0.8;this.filters.alpha.opacity=80" onmouseout="this.style.opacity=1;this.filters.alpha.opacity=100"/> </a></div><div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fblog.josecarlosfiel.com.br%2Fsou-novo-membro-da-comunidade-oreilly%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fblog.josecarlosfiel.com.br%2Fsou-novo-membro-da-comunidade-oreilly%2F&amp;style=normal" height="61" width="50" /><br />
			</a>
		</div>
<p style="text-align: justify;">Olá a todos! Vim aqui informar aos meus caros colegas e amigos que acompanham meu blog e <a href="http://twitter.com/josecarlosfiel" target="_blank">twitter</a> para falar mais sobre esta novidade, que eu mesmo nem esperava.</p>
<p style="text-align: justify;">Como vocês podem ver no nome do post, <a title="Veja meu perfil na O'Reilly" href="http://www.oreillynet.com/pub/au/4444" target="_blank">eu sou o novo membro da comunidade da O&#8217;Reilly</a>, mas calma eu não vou escrever nenhum livro até o momento e sim fui convidado para escrever artigos sobre Flex 4 e PHP no <a href="http://www.insideria.com/" target="_blank">InsideRIA.com</a>. Isso para mim foi sensacional, pois é meu primeiro contato profissional fora do Brasil.</p>
<p style="text-align: justify;">Agora poderia explicar em uma simples palavra como eu consegui isso. Rapidamente diria: <a href="http://twitter.com/">Twitter</a>!</p>
<p style="text-align: justify;">Mas explicando detalhadamente, poderia dizer que tudo isso não teria acontecido se eu não tivesse tomado iniciativa. Isso mesmo INICIATIVA!</p>
<p style="text-align: justify;">Tudo começou com um simples tweet do <a href="http://twitter.com/richtretola" target="_blank">@richtretola</a>, oferecendo na rede uma oportunidade para escrever artigos sobre Flex e PHP no <a href="http://twitter.com/insideria" target="_blank">@insideria</a>. Obviamente logo que li eu não dei muita atenção, pois minha mente pensou: é um contato externo, não sei falar inglês e ele não é tão bom; apesar de ler muitos artigos e livros em inglês sem muita dificuldade, sem falar na variedade de desenvolvedores Flex e PHP excelentes que tem por aí.</p>
<p style="text-align: justify;">Passou 1 dia e pensei bem, voltei ao tweet que dizia sobre a oportunidade e resolvi mandar o e-mail para o Rich, falando pouco sobre mim e minhas dificuldades no inglês. Passou-se algumas horas e estava lá! Não é que ele respondeu o e-mail tranquilamente e já começamos a falar sobre quais artigos que se encaixariam no InsideRIA e tudo mais.</p>
<p style="text-align: justify;">Depois dessa eu tirei uma lição: <strong>Não tenha medo do que você não conhece! Arrisque! Tente! E não desista!</strong></p>
<p style="text-align: justify;">Podia não dar certo o que eu fiz, mas pelo menos não iria me desanimar, teria ficado feliz por ter tentando.</p>
<p style="text-align: justify;">Bom pessoal espero ter passado um pouco da minha lição para vocês e em breve meus artigos estarão no <a href="http://www.insideria.com/" target="_blank">InsideRIA.com</a> e claro, que postarei o post traduzido aqui.</p>
<p style="text-align: justify;">Ah! Podem visitar meu perfil da comunidade O&#8217;Reilly aqui: <a href="http://www.oreillynet.com/pub/au/4444" target="_blank">http://www.oreillynet.com/pub/au/4444</a></p>
<p style="text-align: justify;">Grande abraço a todos e até a próxima!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.josecarlosfiel.com.br/sou-novo-membro-da-comunidade-oreilly/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>[Fiel Cookbook] Resolvendo problema com Scroll em Apps Flex usando MacOSX</title>
		<link>http://blog.josecarlosfiel.com.br/fiel-cookbook-resolvendo-problema-com-scroll-em-apps-flex-usando-macosx/</link>
		<comments>http://blog.josecarlosfiel.com.br/fiel-cookbook-resolvendo-problema-com-scroll-em-apps-flex-usando-macosx/#comments</comments>
		<pubDate>Tue, 24 Nov 2009 03:22:04 +0000</pubDate>
		<dc:creator>José Carlos Silveira Fiel</dc:creator>
				<category><![CDATA[Adobe Flex]]></category>
		<category><![CDATA[Fiel Cookbook]]></category>
		<category><![CDATA[macosx]]></category>
		<category><![CDATA[mousewheel]]></category>
		<category><![CDATA[Scroll]]></category>

		<guid isPermaLink="false">http://blog.josecarlosfiel.com.br/?p=345</guid>
		<description><![CDATA[ 
			
				
			
		
Problema
Você está usando o sistema operacional MacOSX e deseja que o scroll do mouse (mousewheel) funcione em suas aplicacões Flex.

Exemplo do Problema: Tente fazer a rolagem no DataGrid. Não será possível.

Solução
Use o projeto MouseWheelEnabler para resolver o problema existente. Você pode obte-lo pelo site http://code.google.com/p/flex-wmode-mousewheel-handler-example/ ou visualizar a classe no view source do exemplo]]></description>
			<content:encoded><![CDATA[<div style="float:right;margin:0px 0px 0px 0px;"><a href="http://www.google.com/reader/link?url=http://blog.josecarlosfiel.com.br/fiel-cookbook-resolvendo-problema-com-scroll-em-apps-flex-usando-macosx/&title=[Fiel Cookbook] Resolvendo problema com Scroll em Apps Flex usando MacOSX&srcTitle=José Carlos Fiel&srcURL=http://blog.josecarlosfiel.com.br"target="_blank" rel=""><img border="0" src="http://blog.josecarlosfiel.com.br/wp-content/plugins/wp-google-buzz/icon/9.png" style="opacity:1;filter:alpha(opacity=100)" onmouseover="this.style.opacity=0.8;this.filters.alpha.opacity=80" onmouseout="this.style.opacity=1;this.filters.alpha.opacity=100"/> </a></div><div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fblog.josecarlosfiel.com.br%2Ffiel-cookbook-resolvendo-problema-com-scroll-em-apps-flex-usando-macosx%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fblog.josecarlosfiel.com.br%2Ffiel-cookbook-resolvendo-problema-com-scroll-em-apps-flex-usando-macosx%2F&amp;style=normal" height="61" width="50" /><br />
			</a>
		</div>
<h2><strong>Problema</strong></h2>
<p style="text-align: justify;">Você está usando o sistema operacional MacOSX e deseja que o scroll do mouse (mousewheel) funcione em suas aplicacões Flex.</p>
<p><iframe style="width: 100%; height: 300px;" border="0" src="http://www.josecarlosfiel.com.br/projetos/flex/mousewheelenabler/NoMouseWheelEnablerExample.html"></iframe></p>
<p style="text-align: center;"><em>Exemplo do Problema: Tente fazer a rolagem no DataGrid. Não será possível.</em></p>
<p style="text-align: justify;">
<h2>Solução</h2>
<p style="text-align: justify;">Use o projeto MouseWheelEnabler para resolver o problema existente. Você pode obte-lo pelo site <a href="http://code.google.com/p/flex-wmode-mousewheel-handler-example/" target="_blank">http://code.google.com/p/flex-wmode-mousewheel-handler-example/</a> ou visualizar a classe no view source do exemplo logo abaixo.</p>
<h2>Explicação Detalhada</h2>
<p style="text-align: justify;"><em>Obs.: O ViewSource está habilitado no exemplo abaixo para quem quiser acompanhar melhor esta explicação.</em></p>
<p>Seguindo o exemplo do site oficial, apenas adicionamos no evento addToStage de sua Application a função initMouseWheel que inicializará a classe MouseWheelEnabler. Feito isso sua aplicação funcionará perfeitamente como no exemplo abaixo:</p>
<p><iframe style="width: 100%; height: 300px;" border="0" src="http://www.josecarlosfiel.com.br/projetos/flex/mousewheelenabler/MouseWheelEnablerExample.html"></iframe></p>
<p style="text-align: center;"><em>Exemplo da Solução: Adicionando a classe MouseWheelEnabler resolvemos nosso problema de scroll em aplicações Flex no sistema operacional MacOSX.</em></p>
<p style="text-align: center;">
<h2>Observações Finais</h2>
<p style="text-align: justify;">Esta solução resolve nossos problemas imediatamente, claro que não podemos dizer que ela seja definitiva, sendo assim que em breve poderemos ter uma correção por parte da Adobe.<br />
Outro detalhe que devemos considerar, é que o Mouse Mighty possui scroll horizontal, sendo que nesta classe ela não resolve  o problema para este caso.</p>
<p>Abraços a todos e até o próximo Fiel Cookbook.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.josecarlosfiel.com.br/fiel-cookbook-resolvendo-problema-com-scroll-em-apps-flex-usando-macosx/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Missão cumprida! Agora sou Adobe Certified Expert Flex with AIR</title>
		<link>http://blog.josecarlosfiel.com.br/missao-cumprida-agora-sou-adobe-certified-expert-flex-with-air/</link>
		<comments>http://blog.josecarlosfiel.com.br/missao-cumprida-agora-sou-adobe-certified-expert-flex-with-air/#comments</comments>
		<pubDate>Mon, 16 Nov 2009 04:03:02 +0000</pubDate>
		<dc:creator>José Carlos Silveira Fiel</dc:creator>
				<category><![CDATA[Adobe AIR]]></category>
		<category><![CDATA[Adobe Flex]]></category>
		<category><![CDATA[Adobe Certified Expert]]></category>

		<guid isPermaLink="false">http://blog.josecarlosfiel.com.br/?p=326</guid>
		<description><![CDATA[ 
			
				
			
		
Uma das minhas metas pessoais mais importantes do ano de 2009 era se tornar um Adobe Certified Expert Flex with AIR e finalmente consegui atingir o meu objetivo tão esperado.

Nesta última sexta-feira 13, isso mesmo sexta-feira 13, dia que muitos consideram &#8220;o dia do azar&#8221; ou outras supertições, fui lá e mostrei que é]]></description>
			<content:encoded><![CDATA[<div style="float:right;margin:0px 0px 0px 0px;"><a href="http://www.google.com/reader/link?url=http://blog.josecarlosfiel.com.br/missao-cumprida-agora-sou-adobe-certified-expert-flex-with-air/&title=Missão cumprida! Agora sou Adobe Certified Expert Flex with AIR&srcTitle=José Carlos Fiel&srcURL=http://blog.josecarlosfiel.com.br"target="_blank" rel=""><img border="0" src="http://blog.josecarlosfiel.com.br/wp-content/plugins/wp-google-buzz/icon/9.png" style="opacity:1;filter:alpha(opacity=100)" onmouseover="this.style.opacity=0.8;this.filters.alpha.opacity=80" onmouseout="this.style.opacity=1;this.filters.alpha.opacity=100"/> </a></div><div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fblog.josecarlosfiel.com.br%2Fmissao-cumprida-agora-sou-adobe-certified-expert-flex-with-air%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fblog.josecarlosfiel.com.br%2Fmissao-cumprida-agora-sou-adobe-certified-expert-flex-with-air%2F&amp;style=normal" height="61" width="50" /><br />
			</a>
		</div>
<p style="text-align: justify;">Uma das minhas metas pessoais mais importantes do ano de 2009 era se tornar um <strong>Adobe Certified Expert Flex with AIR</strong> e finalmente consegui atingir o meu objetivo tão esperado.</p>
<p style="text-align: justify;"><img class="aligncenter size-full wp-image-319" title="Adobe Certified Expert Flex with AIR" src="http://blog.josecarlosfiel.com.br/wp-content/uploads/2009/02/ace_flex_air.gif" alt="Adobe Certified Expert Flex with AIR" width="249" height="58" /></p>
<p style="text-align: justify;">Nesta última sexta-feira 13, isso mesmo <strong>sexta-feira 13</strong>, dia que muitos consideram &#8220;o dia do azar&#8221; ou outras supertições, fui lá e mostrei que é possivel sim obter um resultado positivo em dias superticiosos como este. Antes mesmo não estava tão confiante pois não tinha estudado o suficiente em uma prova que exige conhecimento de ambas plataformas Flex e AIR. Finalmente com apoio de algumas pessoas consegui ir confiante e fazer uma prova que no instante pensei que fosse complexa e complicada, mas vi que a minha experiência de 1 ano trabalhando no dia a dia com Adobe Flex me ajudou muito a resolver diversas questões.</p>
<p style="text-align: justify;">Emocionante é terminar a prova e ver o<strong> &#8220;C<span id=":1wu" dir="ltr">ongratulations&#8221;</span></strong><span id=":1wu" dir="ltr">. Passei na prova com 74%, aonde o exigido mínimo para passar é 67%. A questões que mais me pegaram foram as de AIR, pois ainda não trabalho 100% nesta plataforma.</span></p>
<p style="text-align: justify;"><span dir="ltr">Os materiais de estudo que utilizei para o exame foram os seguintes:<br />
</span></p>
<p style="text-align: justify;"><span dir="ltr">- Livro: Flex 3 Cookbook<br />
- <a href="http://www.pxldesigns.com/attest" target="_blank">Attest</a> (Software que simula a certificação)<br />
- <a href="http://www.adobe.com/devnet/flex/videotraining/" target="_blank">Adobe Flex Video Training</a><br />
- <a href="http://www.adobe.com/devnet/flex/learn/" target="_blank">Adobe Flex Learn Path</a></span></p>
<p style="text-align: justify;"><span dir="ltr">Sabendo que não tive muito tempo para me dedicar nos estudos e contei muito com a experiência que eu tenho com a ferramenta.</span></p>
<p style="text-align: justify;"><span dir="ltr">Mais uma vez agradeço as pessoas que me apoiaram, e agora aqueles que almejam o mesmo objetivo deixo meu recado: Estudem bastante e explorem bem as ferramentas Flex e AIR, só assim vocês conseguiram passar numa prova que é bem direta no assunto e nada de pegadinhas para poder desafiar o seu conhecimento.</span></p>
<p style="text-align: justify;"><span dir="ltr">Abraços pessoal e até a próxima.<br />
</span></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.josecarlosfiel.com.br/missao-cumprida-agora-sou-adobe-certified-expert-flex-with-air/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>ZamfBrowser &#8211; O browser do Zend Amf</title>
		<link>http://blog.josecarlosfiel.com.br/zamfbrowser-o-browser-do-zend-amf/</link>
		<comments>http://blog.josecarlosfiel.com.br/zamfbrowser-o-browser-do-zend-amf/#comments</comments>
		<pubDate>Sat, 14 Nov 2009 01:43:02 +0000</pubDate>
		<dc:creator>José Carlos Silveira Fiel</dc:creator>
				<category><![CDATA[Adobe Flex]]></category>
		<category><![CDATA[Zend Amf]]></category>
		<category><![CDATA[ZamfBrowser]]></category>

		<guid isPermaLink="false">http://blog.josecarlosfiel.com.br/?p=305</guid>
		<description><![CDATA[ 
			
				
			
		
Olá pessoal. Para aqueles que acompanham meu blog, deve ter visto que eu sumi por um bom tempo, mas estou de volta e com novidades.
Primeiro o motivo de estar desaparecido pelo blog, é que estava estudando para a certificação Adobe Flex/AIR e consegui passar na prova hoje. Isso hoje, em plena sexta-feira 13.
A outra]]></description>
			<content:encoded><![CDATA[<div style="float:right;margin:0px 0px 0px 0px;"><a href="http://www.google.com/reader/link?url=http://blog.josecarlosfiel.com.br/zamfbrowser-o-browser-do-zend-amf/&title=ZamfBrowser - O browser do Zend Amf&srcTitle=José Carlos Fiel&srcURL=http://blog.josecarlosfiel.com.br"target="_blank" rel=""><img border="0" src="http://blog.josecarlosfiel.com.br/wp-content/plugins/wp-google-buzz/icon/9.png" style="opacity:1;filter:alpha(opacity=100)" onmouseover="this.style.opacity=0.8;this.filters.alpha.opacity=80" onmouseout="this.style.opacity=1;this.filters.alpha.opacity=100"/> </a></div><div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fblog.josecarlosfiel.com.br%2Fzamfbrowser-o-browser-do-zend-amf%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fblog.josecarlosfiel.com.br%2Fzamfbrowser-o-browser-do-zend-amf%2F&amp;style=normal" height="61" width="50" /><br />
			</a>
		</div>
<p style="text-align: justify;">Olá pessoal. Para aqueles que acompanham meu blog, deve ter visto que eu sumi por um bom tempo, mas estou de volta e com novidades.</p>
<p style="text-align: justify;">Primeiro o motivo de estar desaparecido pelo blog, é que estava estudando para a certificação Adobe Flex/AIR e consegui passar na prova hoje. Isso hoje, em plena sexta-feira 13.</p>
<p style="text-align: justify;">A outra novidade trago no assunto do post mesmo, que é a melhor novidade para os PHPzeiros de plantão. O ZamfBrowser (Figura 1).</p>
<p style="text-align: center;"><a href="http://blog.josecarlosfiel.com.br/wp-content/uploads/2009/11/zamfbrowser1.png" target="_blank"><img class="aligncenter size-full wp-image-313" title="ZamfBrowser" src="http://blog.josecarlosfiel.com.br/wp-content/uploads/2009/11/zamfbrowser1.png" alt="ZamfBrowser" width="603" height="452" /></a>Figura 1: ZamfBrowser &#8211; O primeiro browser para Zend Amf desenvolvido em AIR.<a href="http://blog.josecarlosfiel.com.br/wp-content/uploads/2009/11/zamfbrowser1.png"><br />
</a></p>
<p style="text-align: justify;">Ele é o primeiro browser para o Zend Amf, como todos perguntavam, por que o Zend Amf não possuia ainda um browser e muitos desistiam dele por que não tinha este recurso e voltava para o AMFPHP, já sem manutenção a um bom tempo.</p>
<p style="text-align: justify;">Vocês podem ver mais sobre o ZamfBrowser no site oficial: <a href="http://www.zamfbrowser.org/" target="_blank">http://www.zamfbrowser.org/</a></p>
<p style="text-align: justify;">Ainda não vou comentar sobre ele, até mesmo porque ainda não testei. Assim que testá-lo estarei trazendo notícias dele aqui e no <a href="http://twitter.com/josecarlosfiel" target="_blank">twitter</a>. Fique ligado!</p>
<p style="text-align: justify;">Espero que seja útil para todos da turma do Zend Amf e aqueles que desejam finalmente migrar para ele.</p>
<p style="text-align: justify;">Abraços e até a próxima.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.josecarlosfiel.com.br/zamfbrowser-o-browser-do-zend-amf/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[Fiel Cookbook] Previnindo que DataGrids aceitam itens de outros DataGrids</title>
		<link>http://blog.josecarlosfiel.com.br/fiel-cookbook-previnindo-que-datagrids-aceitam-itens-de-outros-datagrids/</link>
		<comments>http://blog.josecarlosfiel.com.br/fiel-cookbook-previnindo-que-datagrids-aceitam-itens-de-outros-datagrids/#comments</comments>
		<pubDate>Fri, 02 Oct 2009 01:18:47 +0000</pubDate>
		<dc:creator>José Carlos Silveira Fiel</dc:creator>
				<category><![CDATA[Adobe Flex]]></category>
		<category><![CDATA[Fiel Cookbook]]></category>
		<category><![CDATA[Imersão Adobe Flex]]></category>

		<guid isPermaLink="false">http://blog.josecarlosfiel.com.br/?p=267</guid>
		<description><![CDATA[ 
			
				
			
		
Problema
Você quer classificar itens (arrastando-os para cima e para baixo) de um DataGrid e evitar que outros componentes baseados na classe ListBase (DataGrid, List, Tree, etc.) aceitem estes itens.

Exemplo do Problema: Arraste um item do DataGrid do painel Itens para o DataGrid do painel Categorias. Terá um efeito de mover itens de um DataGrid]]></description>
			<content:encoded><![CDATA[<div style="float:right;margin:0px 0px 0px 0px;"><a href="http://www.google.com/reader/link?url=http://blog.josecarlosfiel.com.br/fiel-cookbook-previnindo-que-datagrids-aceitam-itens-de-outros-datagrids/&title=[Fiel Cookbook] Previnindo que DataGrids aceitam itens de outros DataGrids&srcTitle=José Carlos Fiel&srcURL=http://blog.josecarlosfiel.com.br"target="_blank" rel=""><img border="0" src="http://blog.josecarlosfiel.com.br/wp-content/plugins/wp-google-buzz/icon/9.png" style="opacity:1;filter:alpha(opacity=100)" onmouseover="this.style.opacity=0.8;this.filters.alpha.opacity=80" onmouseout="this.style.opacity=1;this.filters.alpha.opacity=100"/> </a></div><div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fblog.josecarlosfiel.com.br%2Ffiel-cookbook-previnindo-que-datagrids-aceitam-itens-de-outros-datagrids%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fblog.josecarlosfiel.com.br%2Ffiel-cookbook-previnindo-que-datagrids-aceitam-itens-de-outros-datagrids%2F&amp;style=normal" height="61" width="50" /><br />
			</a>
		</div>
<h2><strong>Problema</strong></h2>
<p style="text-align: justify;">Você quer classificar itens (arrastando-os para cima e para baixo) de um DataGrid e evitar que outros componentes baseados na classe ListBase (DataGrid, List, Tree, etc.) aceitem estes itens.</p>
<p><iframe style="width: 100%; height: 300px;" border="0" src="http://www.josecarlosfiel.com.br/projetos/flex/sortable_items_datagrids_sample_bad/BadSortableItemsDataGrids.html"></iframe></p>
<p style="text-align: center;"><em>Exemplo do Problema: Arraste um item do DataGrid do painel Itens para o DataGrid do painel Categorias. Terá um efeito de mover itens de um DataGrid para outro, algo que não queremos que aconteça.</em></p>
<p style="text-align: justify;">
<h2>Solução</h2>
<p style="text-align: justify;">Criar um componente DataGrid personalizado, setando as propriedades dragEnable, dropEnable e dragMoveEnable como TRUE e sobrescrever os métodos addDragData, dragEnterHandler, dragOverHandler, dragExitHandler, dragDropHandler da classe ListBase, para definir nosso próprio formato de dados que é definido pela classe DragSource.</p>
<p style="text-align: justify;">
<h2>Explicação Detalhada</h2>
<p style="text-align: justify;"><em>Obs.: O ViewSource está habilitado no exemplo abaixo para quem quiser acompanhar melhor esta explicação.</em></p>
<p style="text-align: justify;">Por padrão todos os componentes baseados na classe ListBase tem implementado um Drag and Drop. É definido também pela classe DragSource o formato de dados chamado &#8220;items&#8221;. Isso é uma espécie de controle de dados que estão sendo arrastados, ou seja, se o componente alvo esperado não possuir este formato, não será possível fazer um Drop destes dados. A ListBase trata o formato dos dados arrastados via drag and drop como &#8220;items&#8221;, então todos os componentes baseados nesta classe terão este formato.</p>
<p style="text-align: justify;">Para alteramos isso, vamos sobrescrever os métodos addDragData, dragEnterHandler, dragOverHandler, dragExitHandler, dragDropHandler que contém uma validação dizendo se tem o formato como &#8220;items&#8221; para aceitar o Drop no componente alvo.</p>
<p style="text-align: justify;">Criando um novo componente DataGrid personalizado, entre na classe ListBase e simplesmente copie os métodos acima para mantermos as mesmas funcionalidades. Não esqueça de importar as classes necessárias e o namespace mx_internal requerido para algumas variáveis que contém dentro dos métodos que estamos sobrescrevendo.</p>
<p style="text-align: justify;">Feito isso vamos criar uma propriedade privada para este componente personalizado chamado <em>format </em>do tipo String e com valor de &#8220;items&#8221;. Em seguida criaremos um getter e setter para a propriedade recém criada. Agora substitui todas as strings &#8220;items&#8221; dentro dos métodos que copiamos da classe ListBase pelo método getter <em>format</em>, esse que será dinâmico quando utilizarmos nosso componente e poder definir o formato de dados a serem arrastados por cada componente instanciado.</p>
<p style="text-align: justify;">Por último vamos definir no componente personalizado as propriedades dragEnable, dropEnable, dragMoveEnable como TRUE, para ativamos o drag and drop do nosso componente DataGrid e podermos mover os itens que queremos classificar.</p>
<p style="text-align: justify;">Então em nossa aplicação incluimos nossos DataGrids personalizados e podemos setar a propriedade format com qualquer valor para referenciar aquele fomato para aquela instancia de DataGrid, ou seja, qualquer outro componente baseado no ListBase não poderá colocar seus itens dentro do seu DataGrid. Vejamos aplicação final com o viewSource habilitado:</p>
<p><iframe style="width: 100%; height: 300px;" border="0" src="http://www.josecarlosfiel.com.br/projetos/flex/sortable_items_datagrids/SortableItemsDataGrids.html"></iframe></p>
<p style="text-align: center;"><em>Exemplo da Solução: Nosso DataGrid contendo os Itens agora possui um format chamado &#8220;dgItens&#8221; e o DataGrid contendo as categorias agora possui um format chamado &#8220;dgCategoria&#8221;, sendo que não pode ser aceito em outros componentes baseados no ListBase com format &#8220;items&#8221;, apenas em componentes que possuirão seus formatos definidos. Assim temos a solução final que é classificar os itens, arrastandos para cima e para baixo dentro do seu DataGrid sem que o item arrastado seja aceito por outros componentes.</em></p>
<p style="text-align: center;">
<h2>Observações Finais</h2>
<p style="text-align: justify;">Este post foi baseado num problema que tivemos que solucionar nesta manhã. Posso dizer que boa parte dessa solução devo ao curso <a href="http://egenial.com.br/imersao-flex/index.html" target="_blank">Imersão Flex</a>. Como pode ver procurei entender os métodos relacionados ao Drag and Drop do ListBase e usei eles próprios para customizar o meu componente e solucionar o meu problema rapidamente. Se existe outras formas mais simples não sei, podem deixar comentários aqui, mas esta solução foi a única que venho em mente no momento. Então não se limitem e sim faça sua imersão em seus componentes Flex e procure entender como eles funcionam, certamente você encontrará a sua solução.</p>
<p>Abraços a todos e até o próximo Fiel Cookbook.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.josecarlosfiel.com.br/fiel-cookbook-previnindo-que-datagrids-aceitam-itens-de-outros-datagrids/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
