<?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>TSW - That Should Work Blog &#187; código fonte</title>
	<atom:link href="http://blog.msdevstudio.net/tag/codigo-fonte/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.msdevstudio.net</link>
	<description>Flash, Flex, Web e Aplicações Ricas para Internet!</description>
	<lastBuildDate>Tue, 07 Feb 2012 18:30:10 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>Tutorial Action Script 3 &#8211; 012</title>
		<link>http://blog.msdevstudio.net/2009/12/01/tutorial-action-script-3-012/</link>
		<comments>http://blog.msdevstudio.net/2009/12/01/tutorial-action-script-3-012/#comments</comments>
		<pubDate>Tue, 01 Dec 2009 10:31:14 +0000</pubDate>
		<dc:creator>Mário Santos</dc:creator>
				<category><![CDATA[Action Script & MXML]]></category>
		<category><![CDATA[RIA's Geral]]></category>
		<category><![CDATA[Serie Tutoriais AS3]]></category>
		<category><![CDATA[tutorial AS3]]></category>
		<category><![CDATA[as3]]></category>
		<category><![CDATA[código fonte]]></category>
		<category><![CDATA[exemplo]]></category>
		<category><![CDATA[exemplos]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[iniciação]]></category>
		<category><![CDATA[OOP]]></category>
		<category><![CDATA[Tutorial]]></category>

		<guid isPermaLink="false">http://msdevstudio.com/blog/?p=1174</guid>
		<description><![CDATA[Bom, chegou a hora de que bastantes dos meus leitores esperaram&#8230; a continuação da minha serie de tutoriais sobre o AS3. Para aqueles que não acompanharam as primeiras 11 partes e para os que pretendem relembrar um pouco do que foi falado, segue uma categoria especifica aqui do blog com apenas esses tutoriais, exclusivamente dedicada [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Bom, chegou a hora de que bastantes dos meus leitores esperaram&#8230; a continuação da minha serie de tutoriais sobre o AS3. Para aqueles que não acompanharam as primeiras 11 partes e para os que pretendem relembrar um pouco do que foi falado, segue uma categoria especifica aqui do blog com apenas esses tutoriais, exclusivamente dedicada à iniciação do Action Script 3. <a href="http://msdevstudio.com/blog/category/serie-tutoriais-as3/" target="_blank">Aqui está o link</a> onde podem encontrar todos os tutoriais.</p>
<p style="text-align: justify;">Para os mais atentos foi lançada a compilação de todos estes tutoriais à um tempo atrás, basta procurarem no blog, que teve algum sucesso o que me levou a escrever uma segunda parte apenas em pdf que distribui inicialmente consoante uma doação, e que mais tarde também foi distribuída num pequeno &#8220;giveaway&#8221; e que agora finalmente será distribuída publicamente para o publico. Esta segunda parte do tutorial será dividida em vários post&#8217;s durante algumas semanas, e no final será colocado o pdf para download&#8230; se necessita urgentemente desta segunda parte (conta com 60 novas paginas) então entre em contacto comigo no twitter ou por email justificando essa necessidade que talvez sejam dos primeiros a receber esta segunda parte gratuitamente, embora haja alguns desses contactos que possam não ter resposta não desesperem&#8230; vai ser rápido para estar completamente publicado.</p>
<p style="text-align: justify;">Este tutorial foca o Action Script 3 Orientado para o Flex, mas na sua base a estrutura é exactamente a mesma para o flash, por isso será com certeza útil também para os amantes do flash.</p>
<p style="text-align: justify;"><em><strong>Nota:</strong></em> Não sendo um profissional, as técnicas adoptadas podem não ser as mais correctas, podendo mesmo existir alguns erros, mas bom&#8230; se detectarem algo &#8220;anormal&#8221; me informem.</p>
<p style="text-align: justify;">Bom, vamos então à parte 12.</p>
<p style="text-align: justify;">Não utilizem o sistema de comentários em baixo para tirar duvidas, elas não serão respondidas aqui! Usem antes o fórum do blog disponivel em: <a href="http://forum.msdevstudio.com" target="_blank">http://forum.msdevstudio.com</a></p>
<p style="text-align: justify;">Continuando&#8230; Falaremos agora de (notem que os pontos podem nao estar seguidos, a versão final sofreu pequenas alterações):</p>
<p style="text-align: justify;">
<p style="text-align: justify;">
<p style="text-align: justify;">
<blockquote>
<p style="text-align: justify;"><strong>5.3. Relacionamento entre classes.</strong></p>
</blockquote>
<p style="text-align: justify;">Neste momento a nossa class passa a pertencer ao grupo de classes pessoais que podemos adicionar ao nosso projecto.<br />
Um dos pontos muito úteis é o reaproveitamento do código para as mais variadas coisas, e de entre as quais podemos usar um relacionamento entre varias classes pessoais.</p>
<p style="text-align: justify;">Um exemplo pode ser a definição de certas constantes numa class. Vamos supor que necessitamos de ter definidos tamanhos e um titulo para vários painéis feitos pela class em cima, poderemos efectuar 2 tipos de classes para este efeito, embora para este tipo de definições possamos usar uma class sem &#8220;inicializador&#8221; (apenas servirá para definir constantes / variáveis)<br />
[coolcode lang="actionscript"]<br />
package teste<br />
{<br />
public class def<br />
{<br />
public const PANEL_W:int = 400;<br />
public const PANEL_H:int = 300;<br />
public const PANEL_TITLE:String = &#8220;Painel personalizado&#8221;;<br />
}<br />
}<br />
[/coolcode]<br />
Esta class  não necessita de ser inicializada porque apenas apresenta parâmetros fixos da nossa aplicação e não têm um constructor.</p>
<p style="text-align: justify;"><span id="more-1174"></span>Na nossa class em cima vamos colocar em prática o uso desta nossa class, editando a class teste.as e fazendo o seguinte.<br />
No topo a seguir aos imports coloquem:<br />
[coolcode lang="actionscript"]<br />
import teste.def;<br />
[/coolcode]<br />
e na nossa função criado() substituimos a linha:<br />
[coolcode lang="actionscript"]<br />
_nomePessoal=&#8221;Teste Painel &#8220;+Math.floor(Math.random()*15);<br />
[/coolcode]<br />
por<br />
[coolcode lang="actionscript"]<br />
_nomePessoal=def.PANEL_TITLE+Math.floor(Math.random()*15);<br />
[/coolcode]<br />
Neste momento o titulo de cada painel criado será iniciado pela definição colocada na class def:<br />
[coolcode lang="actionscript"]<br />
public const PANEL_TITLE:String = &#8220;Painel personalizado&#8221;;<br />
[/coolcode]<br />
vamos também definir o tamanho fixo do nosso painel da class, trocando na função teste() o seguinte:<br />
[coolcode lang="actionscript"]<br />
//definimos o painel<br />
this .width=270;<br />
this .height=270;<br />
[/coolcode]<br />
por<br />
[coolcode lang="actionscript"]<br />
this .width=def.PANEL_W;<br />
this .height=def.PANEL_H;</p>
<p style="text-align: justify;">[/coolcode]</p>
<p style="text-align: justify;">Desta forma, todos os paineis criados pela nossa class teste terão sempre as definições :<br />
[coolcode lang="actionscript"]<br />
public  const PANEL_W:int = 400;<br />
public  const PANEL_H:int = 300;<br />
public  const PANEL_TITLE:String = &#8220;Painel personalizado&#8221;;<br />
[/coolcode]<br />
Este tipo de definições são muito úteis quando há necessidade de ter sempre constantes na nossa aplicação, por exemplo num caso de uma aplicação que se liga a um banco de dados, podemos guardar o host e informações de login.. neste caso, apenas com um problema. Estas constantes apenas podem ser lidas, visto que são constantes e apenas podem ser alteradas pelo criador da aplicação e compilando de novo a aplicação.</p>
<p style="text-align: justify;">Este trabalho poderia ser feito pela class seguinte:<br />
[coolcode lang="actionscript"]<br />
package  teste<br />
{<br />
public class definicoes<br />
{<br />
public const PANEL_W:int = 400;<br />
public const PANEL_H:int = 300;<br />
public const PANEL_TITLE:String = &#8220;Painel personalizado&#8221;;</p>
<p style="text-align: justify;">public function definicoes()<br />
{</p>
<p style="text-align: justify;">//constructor</p>
<p style="text-align: justify;">}</p>
<p style="text-align: justify;">}<br />
}<br />
[/coolcode]<br />
Mas neste caso teríamos algum código inválido, ou seja, o definicoes() ira ser inicializado em vão.. não temos necessidade de o ter no código (embora o possamos ter)</p>
<p style="text-align: justify;">O action Script 3 é tão versátil que nos permite inclusive extender uma class já feita para trabalhar com outros exemplos, vejam o exemplo seguinte que estende a nossa class de definições.<br />
[coolcode lang="actionscript"]<br />
package  teste<br />
{<br />
public class fullDef extends def<br />
{<br />
public const PANEL_DATE:String = &#8220;20/09/2008&#8243;;</p>
<p style="text-align: justify;">public function fullDef()<br />
{</p>
<p style="text-align: justify;">}</p>
<p style="text-align: justify;">}<br />
}<br />
[/coolcode]<br />
Este método cria uma nova class fullDef que estende a nossa class def, por palavras mais simples esta class usa as definições da class def em si própria, ou seja, herda (hereditária) as variáveis da class que está a ser estendida:<br />
[coolcode lang="actionscript"]<br />
public  const PANEL_W:int = 400;<br />
public  const PANEL_H:int = 300;<br />
public  const PANEL_TITLE:String = &#8220;Painel personalizado&#8221;;</p>
<p style="text-align: justify;">[/coolcode]</p>
<p style="text-align: justify;">e trata-as como se fossem suas, ou seja estas mesmas variáveis estarão disponíveis na class fullDef, basta testarem da seguinte forma:<br />
[coolcode lang="actionscript"]<br />
var  fid:fullDef = new fullDef;<br />
[/coolcode]</p>
<p style="text-align: justify;">e a partir deste momento as constantes da nossa class def de definições estarão também disponíveis nesta nossa class, juntamente com a constante PANEL_DATE que adicionei em cima, pela seguinte forma:<br />
[coolcode lang="actionscript"]<br />
fid.PANEL_DATE;<br />
fid.PANEL_H;<br />
fid.PANEL_TITLE;<br />
fid.PANEL_DATE;<br />
[/coolcode]<br />
De notar que uma constante não pode ser alterada depois do nosso código ter sido compilado num ficheiro .swf.</p>
<p style="text-align: justify;">Para esse efeito usamos apenas private var, e se o formos fazer usando a  nossa class de definições e a class fullDef deveremos usar o método [Bindable] já explicado anteriormente e que vai permitir que todas as classes que utilizem a nossa class def sejam actualizados com novos valores.</p>
<p style="text-align: justify;">Esta extensão funciona com variáveis, constantes, e funções quer das nossas classes pessoais ou das classes do Flex / Flash.</p>
<p style="text-align: justify;">Bom, por agora é tudo&#8230; até uma próxima&#8230;</p>
<p style="text-align: justify;">Sugestões? criticas? e porque não elogios? deixe um comentário&#8230;</p>
<p style="text-align: justify;">Duvidas? Use o<a href="http://forum.msdevstudio.com" target="_blank"> fórum.</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.msdevstudio.net/2009/12/01/tutorial-action-script-3-012/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Flash, Flex e AIR &#8211; Tutoriais</title>
		<link>http://blog.msdevstudio.net/2009/06/04/flash-flex-air-tutoriais/</link>
		<comments>http://blog.msdevstudio.net/2009/06/04/flash-flex-air-tutoriais/#comments</comments>
		<pubDate>Thu, 04 Jun 2009 13:45:26 +0000</pubDate>
		<dc:creator>Mário Santos</dc:creator>
				<category><![CDATA[Action Script & MXML]]></category>
		<category><![CDATA[Air]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[RIA's Geral]]></category>
		<category><![CDATA[Source Code]]></category>
		<category><![CDATA[Tutoriais]]></category>
		<category><![CDATA[action script 2]]></category>
		<category><![CDATA[action script 3]]></category>
		<category><![CDATA[código fonte]]></category>
		<category><![CDATA[flash lite]]></category>
		<category><![CDATA[The Tech Labs]]></category>

		<guid isPermaLink="false">http://msdevstudio.com/blog/?p=1039</guid>
		<description><![CDATA[   Bom, venho falar do The Tech Labs disponivel em http://www.thetechlabs.com que se dedica exclusivamente à publicação de tutoriais Flash, Flex e Air, embora seja em inglês, o seu conteudo é muito facil de entender, até porque disponibiliza em todos os seus exemplos o código fonte para download.  De entre os artigos encontra de tudo, desde uma [...]]]></description>
			<content:encoded><![CDATA[<p> <br />
<center><br />
<div class="wp-caption alignnone" style="width: 260px"><a href="http://www.thetechlabs.com"><img title="The Tech Labs - Flash Tutorials, Flex and AIR" src="http://www.thetechlabs.com/wp-content/uploads/2008/05/ttl_250x100.jpg" alt="The Tech Labs - Flash Tutorials, Flex and AIR" width="250" height="100" /></a><p class="wp-caption-text"> Tutoriais Flash, Flex and AIR</p></div></center></p>
<p> Bom, venho falar do The Tech Labs disponivel em <a href="http://www.thetechlabs.com">http://www.thetechlabs.com</a> que se dedica exclusivamente à publicação de tutoriais Flash, Flex e Air, embora seja em inglês, o seu conteudo é muito facil de entender, até porque disponibiliza em todos os seus exemplos o código fonte para download. </p>
<p>De entre os artigos encontra de tudo, desde uma série de exemplos de como trabalhar com a framework alternativa3d, ou away3d até aplicações completas quer para Flash, Flex, Air ou até mesmo flash lite.</p>
<p>Recentemente também conta com a minha participação (se o facto de estar em inglês não agrada, talvez assim já mereça uma visita&#8230; huahuah) onde já coloquei 3 tutoriais, 2 dedicados ao Flex e um ao Flash (sim, também trabalho com flash) que têm como titulos:</p>
<p><a title="Permanent Link to Integrate Flex Builder 3.0 &amp; Php easly with the fresh ZendAMF" rel="bookmark" href="http://www.thetechlabs.com/tutorials/flex/integrate-flex-builder-30-php-easly-with-the-fresh-zendamf/">Integrate Flex Builder 3.0 &amp; Php easly with the fresh ZendAMF</a></p>
<p><a title="Permanent Link to Build a contact manager in Flex with ZendAMF; Part One - Layout; From Photoshop to Flex" rel="bookmark" href="http://www.thetechlabs.com/tutorials/xml/build-a-contact-manager-in-flex-with-zendamf-part-one-layout-from-photoshop-to-flex/">Build a contact manager in Flex with ZendAMF; Part One &#8211; Layout; From Photoshop to Flex</a></p>
<p><a title="Permanent Link to Create real water effects with Flash CS4 &amp; ActionScript 3.0" rel="bookmark" href="http://www.thetechlabs.com/tutorials/flash/create-real-water-effects-with-flash-cs4-actionscript-30/">Create real water effects with Flash CS4 &amp; ActionScript 3.0</a></p>
<p>Dêm uma vista de olhos, e aproveitem para navegar pelo resto do site, de certeza que vão encontrar alguma coisa bem util!  Abraço!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.msdevstudio.net/2009/06/04/flash-flex-air-tutoriais/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Presença no Tour de Flex!</title>
		<link>http://blog.msdevstudio.net/2009/01/29/presenca-no-tour-de-flex/</link>
		<comments>http://blog.msdevstudio.net/2009/01/29/presenca-no-tour-de-flex/#comments</comments>
		<pubDate>Thu, 29 Jan 2009 09:46:34 +0000</pubDate>
		<dc:creator>Mário Santos</dc:creator>
				<category><![CDATA[Action Script & MXML]]></category>
		<category><![CDATA[Air]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[Notícias]]></category>
		<category><![CDATA[RIA's Geral]]></category>
		<category><![CDATA[Source Code]]></category>
		<category><![CDATA[Tutoriais]]></category>
		<category><![CDATA[Adobe]]></category>
		<category><![CDATA[as3]]></category>
		<category><![CDATA[código fonte]]></category>
		<category><![CDATA[exemplos]]></category>
		<category><![CDATA[source]]></category>
		<category><![CDATA[tour]]></category>
		<category><![CDATA[Tutorial]]></category>

		<guid isPermaLink="false">http://msdevstudio.com/blog/?p=814</guid>
		<description><![CDATA[Bem, depois de algum tempo a rever alguns promenores, finalmente o meu primeiro exemplo foi aprovado no Tour De flex, apesar de ser o primeiro, espero que seja o inicio da disposição de varios exemplos no aplicativo AIR. Para quem ainda nao sabe, o tour de flex é um aplicativo air que apresenta cerca de [...]]]></description>
			<content:encoded><![CDATA[<p>Bem, depois de algum tempo a rever alguns promenores, finalmente o meu primeiro exemplo foi aprovado no Tour De flex, apesar de ser o primeiro, espero que seja o inicio da disposição de varios exemplos no aplicativo AIR.</p>
<p>Para quem ainda nao sabe, o tour de flex é um aplicativo air que apresenta cerca de 218 exemplos em flex e air, que demonstra em muitas da enormes capacidades do  Adobe Flex. Depois do excelente lançamento já à alguns tempos do<a href="http://flex.org/showcase"> showcase do flex</a> é lançado agora o <a href="http://flex.org/tour">Tour de flex</a> que sem duvida aliados podem ser capazes de incentivar ao uso da plataforma flash para aplicações realmente ricas para a internet e desktop. Podem fazer o download <a href="http://flex.org/tour">aqui</a>. (Para quem ja instalou o aplicativo, basta abri-lo visto que ele contém um sistema de actualização automatica.)</p>
<p>A minha participação está disponivel no menu em &#8220;Other Components&#8221;  orgulhosamente entre nomes como Alex Uhlmann,  Doug McCune ou Mark Shpeherd. O Titulo do aplicativos está no menu  &#8221;Mário Santos &#8211; Graphic Data Presentation&#8221; como podem ver pelos screenshots que se seguem:</p>
<table border="0" align="center">
<tbody>
<tr>
<td><img class="aligncenter size-medium wp-image-816" title="TSW on Tour de Flex" src="http://msdevstudio.com/blog/wp-content/uploads/2009/01/capturer2-300x231.jpg" alt="TSW on Tour de Flex" width="300" height="231" /></td>
<td><img class="aligncenter size-medium wp-image-815" title="TSW on Tour de Flex" src="http://msdevstudio.com/blog/wp-content/uploads/2009/01/capturer1-300x230.jpg" alt="TSW on Tour de Flex" width="300" height="230" /></td>
</tr>
</tbody>
</table>
<p>Espero que seja o primeiro de muitos, embora actualmente nao tenha muito tempo para a preparação de alguns exemplos.</p>
<p>Abraço.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.msdevstudio.net/2009/01/29/presenca-no-tour-de-flex/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>AIR Cookbook beta online!</title>
		<link>http://blog.msdevstudio.net/2008/06/19/air-cookbook-beta-online/</link>
		<comments>http://blog.msdevstudio.net/2008/06/19/air-cookbook-beta-online/#comments</comments>
		<pubDate>Thu, 19 Jun 2008 07:16:45 +0000</pubDate>
		<dc:creator>Mário Santos</dc:creator>
				<category><![CDATA[Action Script & MXML]]></category>
		<category><![CDATA[Air]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[Notícias]]></category>
		<category><![CDATA[Action Script]]></category>
		<category><![CDATA[Adobe]]></category>
		<category><![CDATA[código fonte]]></category>
		<category><![CDATA[cookbook]]></category>
		<category><![CDATA[O'Reilly]]></category>
		<category><![CDATA[online]]></category>
		<category><![CDATA[source]]></category>

		<guid isPermaLink="false">http://msdevstudio.com/blog/2008/06/19/air-cookbook-beta-online/</guid>
		<description><![CDATA[Para quem j&#225; conhece o flex cookbook j&#225; sabe do que estou a falar, para quem n&#227;o sabe, fica o resumo, o cookbook &#233; um estilo de livro (pergunta-resposta) em que podemos todos contribuir&#8230; &#160; Mais uma boa noticia da Adobe e O&#8217;Reilly que juntos colocaram online esta beta. &#160; Vale a pena ver, tanto [...]]]></description>
			<content:encoded><![CDATA[<p>Para quem j&#225; conhece o flex cookbook j&#225; sabe do que estou a falar, para quem n&#227;o sabe, fica o resumo, o cookbook &#233; um estilo de livro (pergunta-resposta) em que podemos todos contribuir&#8230;</p>
<p>&#160;</p>
<p>Mais uma boa noticia da Adobe e O&#8217;Reilly que juntos colocaram online esta beta.</p>
<p>&#160;</p>
<p>Vale a pena ver, tanto o cookbook do AIR como o do Flex.</p>
<p><a href="http://www.adobe.com/cfusion/communityengine/index.cfm?event=homepage&amp;productId=4" target="_blank">AIR Cookbook</a></p>
<p><a title="" href="http://www.adobe.com/cfusion/communityengine/index.cfm?event=homepage&amp;productId=2" target="_blank">Flex Cookbook</a></p>
<p>&#160;</p>
<p>Abra&#231;o.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.msdevstudio.net/2008/06/19/air-cookbook-beta-online/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Live Help/Call Center Source in flex+blazeDS</title>
		<link>http://blog.msdevstudio.net/2008/06/17/live-helpcall-center-source-in-flexblazeds/</link>
		<comments>http://blog.msdevstudio.net/2008/06/17/live-helpcall-center-source-in-flexblazeds/#comments</comments>
		<pubDate>Tue, 17 Jun 2008 06:55:41 +0000</pubDate>
		<dc:creator>Mário Santos</dc:creator>
				<category><![CDATA[Action Script & MXML]]></category>
		<category><![CDATA[Air]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[HTML, XHTML, CSS, Java Script]]></category>
		<category><![CDATA[Notícias]]></category>
		<category><![CDATA[Adobe]]></category>
		<category><![CDATA[bazeDS]]></category>
		<category><![CDATA[call center]]></category>
		<category><![CDATA[código fonte]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[source]]></category>
		<category><![CDATA[tickets]]></category>

		<guid isPermaLink="false">http://msdevstudio.com/blog/2008/06/17/live-helpcall-center-source-in-flexblazeds/</guid>
		<description><![CDATA[Um execelente exemplo com c&#243;digo fonte vindo de um programador da adobe, Christophe Coenraets, onde podemos ver a funcionar um sistema de atedimento ao cliente online. Completamente feito em Flex com recurso ao BlazeDS e LCDS (tecnologias da adobe) pode-se ver um excelente profissionalismo no c&#243;digo e funcionamente da aplica&#231;&#227;o que pode ser testada online [...]]]></description>
			<content:encoded><![CDATA[<p>Um execelente exemplo com c&#243;digo fonte vindo de um programador da adobe, Christophe Coenraets, onde podemos ver a funcionar um sistema de atedimento ao cliente online. Completamente feito em Flex com recurso ao BlazeDS e LCDS (tecnologias da adobe) pode-se ver um excelente profissionalismo no c&#243;digo e funcionamente da aplica&#231;&#227;o que pode ser testada online na vers&#227;o cliente e operador, podem testar em:</p>
<p>&#160;</p>
<p>Cliente: <a title="" href="http://coenraets.org/apps/livehelp/customer.html">http://coenraets.org/apps/livehelp/customer.html</a> (coloquem o vosso endere&#231;o de email)</p>
<p>Operador: <a title="" href="http://coenraets.org/apps/livehelp/callcenter.html">http://coenraets.org/apps/livehelp/callcenter.html</a> (coloquem o vosso endere&#231;o de email)</p>
<p>NOTA: Os endere&#231;os de email devem ser iguais para identificar a mesma sandbox.</p>
<p>&#160;</p>
<p>Download parte Cliente <a href="http://download.macromedia.com/pub/developer/livehelp-client.zip" target="_blank">aqui</a></p>
<p>Download parte Operador <a href="http://download.macromedia.com/pub/developer/livehelp-server.zip" target="_blank">aqui</a></p>
<p>Download BlazeDS <a href="http://opensource.adobe.com/wiki/display/blazeds/BlazeDS" target="_blank">aqui</a></p>
<p>Download LCDS <a href="http://labs.adobe.com/technologies/livecycle_dataservices2_6/" target="_blank">aqui</a></p>
<p>&#160;</p>
<p>Mais informa&#231;&#245;es sobre a devida configura&#231;&#227;o <a title="" href="http://www.adobe.com/devnet/flex/articles/help_callcenter.html" target="_blank">aqui</a>.</p>
<p>Uma excelente aplica&#231;&#227;o para enriquecer o conhecimento das possibilidades do flex.</p>
<p>&#160;</p>
<p>Abra&#231;o.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.msdevstudio.net/2008/06/17/live-helpcall-center-source-in-flexblazeds/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Flex &amp; PDF &#8211; Uma alternativa &quot;pr&#225;tica&quot;.</title>
		<link>http://blog.msdevstudio.net/2008/05/19/flex-pdf-uma-alternativa-prtica/</link>
		<comments>http://blog.msdevstudio.net/2008/05/19/flex-pdf-uma-alternativa-prtica/#comments</comments>
		<pubDate>Mon, 19 May 2008 12:17:52 +0000</pubDate>
		<dc:creator>Mário Santos</dc:creator>
				<category><![CDATA[Action Script & MXML]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[HTML, XHTML, CSS, Java Script]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Adobe]]></category>
		<category><![CDATA[artigos]]></category>
		<category><![CDATA[código fonte]]></category>
		<category><![CDATA[exemplo]]></category>
		<category><![CDATA[pdf]]></category>
		<category><![CDATA[Tutorial]]></category>

		<guid isPermaLink="false">http://msdevstudio.com/blog/2008/05/19/flex-pdf-uma-alternativa-prtica/</guid>
		<description><![CDATA[Todos sabemos que o flex em si não consegue lidar com muito bem (ou simplesmente nao lida) com arquivos pdf&#8217;s, pricipalmente sem recurso a uma libraria pdf, muitas das vezes com reursos a backend&#8217;s muito elaborados tecnicamente. Depois de muito investigar, e pricipalmente ao saber de alguns exemplos de como carregar um iframe do html [...]]]></description>
			<content:encoded><![CDATA[<p>Todos sabemos que o flex em si não consegue lidar com muito bem (ou simplesmente nao lida) com arquivos pdf&#8217;s, pricipalmente sem recurso a uma libraria pdf, muitas das vezes com reursos a backend&#8217;s muito elaborados tecnicamente.</p>
<p>Depois de muito investigar, e pricipalmente ao saber de alguns exemplos de como carregar um iframe do html em cima de uma aplicação pdf, decidi por mãos à obra e investigar um pouco mais sombre esta maneira &#8220;sombria&#8221; de abrir pdf&#8217;s&#8230; claro que continua a ser necessário ter instalado o Acrobat reader, mas é uma opção para quem não pretende ter muito trabalho&#8230;</p>
<p>Ainda estou a trabalhar num exemplo, mas coloquei-o já online para que possam dar o vosso feedback&#8230;</p>
<p>Podem ver o exemplo <a href="http://www.msdevstudio.com/reader/msdevPDFReader.html">aqui</a> com um documento de exemplo.</p>
<p>Abraços.</p>
<p>edit: Código fonte disponivel em:</p>
<p>http://msdevstudio.com/blog/2008/06/27/flex-js-pdf-reader-in-flex-source/</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.msdevstudio.net/2008/05/19/flex-pdf-uma-alternativa-prtica/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Flex deepLinking &#8211; Parametros browser</title>
		<link>http://blog.msdevstudio.net/2008/05/13/flex-deep-linking-detalhes-browser/</link>
		<comments>http://blog.msdevstudio.net/2008/05/13/flex-deep-linking-detalhes-browser/#comments</comments>
		<pubDate>Tue, 13 May 2008 10:07:08 +0000</pubDate>
		<dc:creator>Mário Santos</dc:creator>
				<category><![CDATA[Action Script & MXML]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[Action Script]]></category>
		<category><![CDATA[as3]]></category>
		<category><![CDATA[browser]]></category>
		<category><![CDATA[código fonte]]></category>
		<category><![CDATA[componentes]]></category>
		<category><![CDATA[deep linking]]></category>
		<category><![CDATA[exemplos]]></category>
		<category><![CDATA[parametros]]></category>
		<category><![CDATA[Source Code]]></category>
		<category><![CDATA[url]]></category>

		<guid isPermaLink="false">http://msdevstudio.com/blog/2008/05/13/flex-deeklinking-detalhes-browser/</guid>
		<description><![CDATA[Ontem tive um pequeno problema a desenvolver parte de um aplicativo (o frontend para o meu sistema imobiliário) onde necessitava de saber onde estava a correr o aplicativo, bem como o caminho relativo do servidor, já que tinha que obter varios caminhos para fotografias onde esses caminhos poderiam variar. Ou seja, precisava de saber o [...]]]></description>
			<content:encoded><![CDATA[<p align="left">Ontem tive um pequeno problema a desenvolver parte de um aplicativo (o frontend para o meu sistema imobiliário) onde necessitava de saber onde estava a correr o aplicativo, bem como o caminho relativo do servidor, já que tinha que obter varios caminhos para fotografias onde esses caminhos poderiam variar. Ou seja, precisava de saber o caminho onde as minhas fotos se encontravam, já que se estivesse a correr apenas em, por exemplo <a href="http://www.msdevstudio.com/immo/frontend/">www.msdevstudio.com/immo/frontend/</a> saberia exactamente onde encontrar as minhas fotos, que estariam no caminho absoluto <a href="http://www.msdevstudio.com/immo/frontend/imgs">www.msdevstudio.com/immo/frontend/imgs</a> mas o problema seria se mudasse de servidor, as fotos poderia passar a estar em <a href="http://www.meuserverto.com/imgs">www.meuserverto.com/imgs</a> e aí teria que programar o flex para ir procurar as fotos a este caminho&#8230; mas dizem voces, porque não usar apenas source=&#8221;imgs/imgExempo1.png&#8221; ? pelo simples motivo que necessito de juntar algumas fotos a um HTML text, bem como dar a possibilidade do user mudar a directoria das imagens e os caminhos relativos. (não encontrei outra solução para já&#8230;)</p>
<p align="left">
<p align="left">Bom, dei de caras com as propriedades deepLink, que podem ser obtidas atravéz do browserManager/URLUtil, por isso fiz um pequeno exemplo que podem usar nas vossas aplicações, copiando o contudo do arquivo que disponibilizo em baixo para a raiz da vossa aplicação, depois basta fazerem o import na vossa aplicação:</p>
<div>
<div style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">import com.msdevstudio.urlUtils;</div>
</div>
<p align="left">
<p align="left">São então disponibilizadas as seguintes funções:</p>
<p>getPort():String</p>
<p>getProtocol():String</p>
<p>getServer():String</p>
<p>getDoc():String</p>
<p>getTodo():String</p>
<p>getPath():String</p>
<p>onde para receberem os respectivos elementos devem usar:</p>
<div>
<div style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"><span style="color: #606060;">   1:</span> var util:urlUtils = <span style="color: #0000ff;">new</span> urlUtils();</pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><span style="color: #606060;">   2:</span> <span style="color: #008000;">//tomando como exemplo o link: http://msdevstudio.com/immo/backend/backend.html</span></pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"><span style="color: #606060;">   3:</span></pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><span style="color: #606060;">   4:</span> <span style="color: #008000;">//buscar nome do servidor:</span></pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"><span style="color: #606060;">   5:</span> var nomeServidor:String = util.getServer();</pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><span style="color: #606060;">   6:</span> <span style="color: #008000;">//devolve: msdevstudio.com</span></pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"><span style="color: #606060;">   7:</span></pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><span style="color: #606060;">   8:</span> <span style="color: #008000;">//buscar protocolo</span></pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"><span style="color: #606060;">   9:</span> var protocolo:String = util.getProtocol();</pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><span style="color: #606060;">  10:</span> <span style="color: #008000;">//devolve http</span></pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"><span style="color: #606060;">  11:</span></pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><span style="color: #606060;">  12:</span> <span style="color: #008000;">//buscar porta</span></pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"><span style="color: #606060;">  13:</span> var porta:String = util.getPort();</pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><span style="color: #606060;">  14:</span></pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"><span style="color: #606060;">  15:</span> <span style="color: #008000;">//buscar url completo</span></pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><span style="color: #606060;">  16:</span> var urlCompleto:String = util.getTodo();</pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"><span style="color: #606060;">  17:</span> <span style="color: #008000;">//devolve http://msdevstudio.com/immo/backend/backend.html</span></pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><span style="color: #606060;">  18:</span></pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"><span style="color: #606060;">  19:</span> <span style="color: #008000;">//buscar caminho relativo </span></pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><span style="color: #606060;">  20:</span> var caminho:String = util.getPath();</pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"><span style="color: #606060;">  21:</span> <span style="color: #008000;">//devolve http://msdevstudio.com/immo/backend/</span></pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><span style="color: #606060;">  22:</span></pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"><span style="color: #606060;">  23:</span> <span style="color: #008000;">//buscar o nome do portador do swf</span></pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><span style="color: #606060;">  24:</span> var documento:String = util.getDoc();</pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"><span style="color: #606060;">  25:</span> <span style="color: #008000;">// devolve backend.html</span></pre>
</div>
</div>
<p>Isto não é nada mais que um simples package que simplifica as coisas em aplicações medias/grandes e que em muitas variadas situações se torna muito util.</p>
<p>Podem fazer o download <a href="http://msdevstudio.com/blog/download-manager.php?id=9" target="_blank">aqui</a>.</p>
<p>fiz um package pelo simples motivo de ajudar a quem ler a perceber como um package funciona, bem como se podem tornar simples a utilização destes packages principalmente pela sua reutilização por outros programadores e outras aplicações. Podem ver o código comentado também.</p>
<p>Aguarda-se feedback.</p>
<p><img class="alignleft" style="float: left;" src="http://msdevstudio.com/blog/wp-content/uploads/2008/05/image.png" alt="pdf" width="23" height="29" /> Este artigo está disponivel em <a href="http://msdevstudio.com/blog/download-manager.php?id=11" target="_blank">pdf </a>para download.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.msdevstudio.net/2008/05/13/flex-deep-linking-detalhes-browser/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Adobe Flex a partir do zero &#8211; Parte IV</title>
		<link>http://blog.msdevstudio.net/2008/04/08/adobe-flex-a-partir-do-zero-parte-iv/</link>
		<comments>http://blog.msdevstudio.net/2008/04/08/adobe-flex-a-partir-do-zero-parte-iv/#comments</comments>
		<pubDate>Tue, 08 Apr 2008 14:49:54 +0000</pubDate>
		<dc:creator>Mário Santos</dc:creator>
				<category><![CDATA[Action Script & MXML]]></category>
		<category><![CDATA[Design & Web Design]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[Notícias]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[RIA's Geral]]></category>
		<category><![CDATA[Source Code]]></category>
		<category><![CDATA[Tutoriais]]></category>
		<category><![CDATA[Adobe]]></category>
		<category><![CDATA[apostila]]></category>
		<category><![CDATA[apostilha]]></category>
		<category><![CDATA[codigo aberto]]></category>
		<category><![CDATA[código fonte]]></category>
		<category><![CDATA[iniciantes]]></category>
		<category><![CDATA[Tutorial]]></category>

		<guid isPermaLink="false">http://msdevstudio.com/blog/2008/04/08/adobe-flex-a-partir-do-zero-parte-iv/</guid>
		<description><![CDATA[Boas notícias para os seguidores do meu tutorial, aqui fica disponível a quarta parte com 14 paginas do tutorial que cada vez mais pessoal estava a pedir. Esta parte engloba vários assuntos entre os quais destaco: Direfenças, vantagens e desvantagens de módulos e componentes Criação de componentes Criação de módulos Troca de informações entre componentes, [...]]]></description>
			<content:encoded><![CDATA[<p>Boas notícias para os seguidores do meu tutorial, aqui  fica disponível a quarta parte com 14 paginas do tutorial que cada vez mais pessoal estava a pedir.</p>
<p><a href="http://msdevstudio.com/blog/wp-content/uploads/2008/04/image.png"></a></p>
<p style="text-align: center"><a href="http://msdevstudio.com/blog/wp-content/uploads/2008/04/image.png"><img style="border: 0px none " src="http://msdevstudio.com/blog/wp-content/uploads/2008/04/image-thumb.png" border="0" alt="image" width="241" height="127" /></a></p>
<p>Esta parte engloba vários assuntos entre os quais destaco:</p>
<ul>
<li>Direfenças, vantagens e desvantagens de módulos e componentes</li>
<li>Criação de componentes</li>
<li>Criação de módulos</li>
<li>Troca de informações entre componentes, módulos e a aplicação</li>
<li>Criação de exemplos e funções para lidar com eventos</li>
<li>Pequena explicação de objectos remotos</li>
<li>Instalação do amfPHP e configuração</li>
<li>Configuração do Flex para trabalhar com o amfPHP</li>
<li>Primeiro serviço do amfPHP e sua utilização pelo Flex</li>
</ul>
<p>Entrando já em pormenores mais avançados do Flex, esta parte é ideal não só para iniciantes, mas também para utilizadores intermédios que ainda têm algumas duvidas de como trabalhar com módulos, componentes e  objectos Remotos.</p>
<p>Aqui ficam os links desejados:</p>
<p>Parte IV: <a href="http://msdevstudio.com/blog/download-manager.php?id=1" target="_blank">Adobe_flex_a_partir_do_zero_4.pdf</a></p>
<p>Parte III : <a href="http://msdevstudio.com/blog/download-manager.php?id=2" target="_blank">Adobe_Flex_a_partir_do_zero_3.pdf</a></p>
<p>Parte II : <a href="http://msdevstudio.com/blog/download-manager.php?id=3" target="_blank">Adobe_Flex_a_partir_do_zero_2.pdf</a></p>
<p>Parte I : <a href="http://msdevstudio.com/blog/download-manager.php?id=4" target="_blank">Adobe_Flex_a_partir_do_zero_1.pdf</a></p>
<p>Compilação partes I, II, III, IV : <a href="http://msdevstudio.com/blog/2008/04/30/tutorial-adobe-flex-a-partir-do-zero-actualizado/" target="_self">Flex_Book_Part_1_2_3_4.pdf </a>(actualizado, ler <a href="http://msdevstudio.com/blog/2008/04/30/tutorial-adobe-flex-a-partir-do-zero-actualizado/" target="_self">topico</a>)</p>
<p>services-config.xml usado na parte IV: <a href="http://msdevstudio.com/blog/download-manager.php?id=6" target="_blank">services-config.rar</a></p>
<p>Aguarda-se feedback.<br />
 <img src='http://blog.msdevstudio.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><em><strong>EDIT : </strong>Descobri um pequeno erro no tutorial que será corrigido na proxima edição mas entretanto deixo esse indicação para que não tenham problemas </em></p>
<p>Na página 5, ponto 6.3,  no topo onde diz:</p>
<p><em>&#8220;(suponhamos que no campo user do nosso bConfig queremos colocar um user predefinido), basta na função abrePainelLogin” colocarmos o seguinte:<br />
painel.inputUser.text=&#8221;teste&#8221;;</em></p>
<p><em><br />
a seguir ao PopUpManager.createPopUp(); &#8220;</em></p>
<p>Deve ler-se:</p>
<p><em>&#8220;(suponhamos que no campo user do nosso bConfig queremos colocar um user predefinido), basta na função abrePainelLogin” colocarmos o seguinte:<br />
painel.inputUser.text=&#8221;teste&#8221;;</em></p>
<p><em><br />
a seguir ao PopUpManager.</em><em><strong>centerPopUp()</strong>; &#8220;</em></p>
<p>Estão todos convidados a indicar erros para que o tutorial seja cada vez mais livre de erros!</p>
<p>p.s. Talvez seja necessário a ajuda de uma outra pessoa para fazer a revisão do tutorial no final da sua série, para fazer a compilação completa em apenas um ficheiro, e então gostava de saber se algém estaria interessado!</p>
<p><span style="color: #ff0000;"><strong>Edit:</strong></span> Parte 5 disponivel em: <a title="Adobe Flex a partir do zero 5" href="http://msdevstudio.com/blog/2008/06/04/tutorial-adobe-flex-a-partir-do-zero-parte-v/" target="_self">Adobe flex a partir do zero parte 5 (post)</a></p>
<p>Um abraço.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.msdevstudio.net/2008/04/08/adobe-flex-a-partir-do-zero-parte-iv/feed/</wfw:commentRss>
		<slash:comments>24</slash:comments>
		</item>
		<item>
		<title>Adobe Flex &#8211; Sistema de estatisticas de visitantes</title>
		<link>http://blog.msdevstudio.net/2008/04/01/adobe-flex-sistema-de-estatisticas-de-visitantes/</link>
		<comments>http://blog.msdevstudio.net/2008/04/01/adobe-flex-sistema-de-estatisticas-de-visitantes/#comments</comments>
		<pubDate>Tue, 01 Apr 2008 09:10:40 +0000</pubDate>
		<dc:creator>Mário Santos</dc:creator>
				<category><![CDATA[Action Script & MXML]]></category>
		<category><![CDATA[Duvidas]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[HTML, XHTML, CSS, Java Script]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[RIA's Geral]]></category>
		<category><![CDATA[Source Code]]></category>
		<category><![CDATA[Tutoriais]]></category>
		<category><![CDATA[Adobe]]></category>
		<category><![CDATA[amfphp]]></category>
		<category><![CDATA[código fonte]]></category>
		<category><![CDATA[estatisticas]]></category>
		<category><![CDATA[info]]></category>
		<category><![CDATA[service]]></category>
		<category><![CDATA[Statistics]]></category>
		<category><![CDATA[visitantes]]></category>

		<guid isPermaLink="false">http://msdevstudio.com/blog/2008/04/01/adobe-flex-sistema-de-estatisticas-de-visitantes/</guid>
		<description><![CDATA[Sempre achei muito interessante podermos saber o máximo de informações sobre os visitantes do nosso site/aplicativo, além disso com esses dados podemos na realidade perceber de onde vem o visitante, que sistema operativo, resolução de ecrã, versão do flash, país etc&#8230;.já que com estas informações podemos optimizar o nosso site/aplicação. Uma possibilidade é usar o [...]]]></description>
			<content:encoded><![CDATA[<p>Sempre achei muito interessante podermos saber o máximo de informações sobre os visitantes do nosso site/aplicativo, além disso com esses dados podemos na realidade perceber de onde vem o visitante, que sistema operativo, resolução de ecrã, versão do flash, país etc&#8230;.já que com estas informações podemos optimizar o nosso site/aplicação.</p>
<p>Uma possibilidade é usar o google analytics, mas acabáramos por andar um pouco perdidos com a API,  interpretação da mesma e além disse em sites com um número elevado de visitas o google analytics será pago&#8230; o que decidi fazer, pode ser feito com qualquer outro sistema de estatísticas openSource. No meu sistema de imobiliária ( <a href="http://msdevstudio.com/blog/2008/02/27/backend-sistema-imobilirio-gesto-de-imveis/" title="http://msdevstudio.com/blog/2008/02/27/backend-sistema-imobilirio-gesto-de-imveis" target="_blank">http://msdevstudio.com/blog/2008/02/27/backend-sistema-imobilirio-gesto-de-imveis/</a>) inicialmente estou a utilizar esse sistema, embora terei que o alterar se a versão for para comercializar devido à licença GPL debaixo da qual foi disponibilizado o sistema que voou falar.</p>
<p>O sistema em si é o Stats Indexer 1.3 disponivel a correr em: <a href="http://members.lycos.nl/promajo/statsindexer.php">http://members.lycos.nl/promajo/statsindexer.php</a></p>
<p>Tudo o que tem que fazer é o seu download em: <a href="http://members.lycos.nl/promajo/dl/StatsIndexerJDL.rar">http://members.lycos.nl/promajo/dl/StatsIndexerJDL.rar</a> e instalar o sistema normalmente na mesma directoria onde estará a pagina a ser monitorizada (primeiro configurar e criar as tabelas), depois apenas inserir numa pagina comum (Geralmente na que corre o swf, index.html ?, para obterem o máximo partido do script, o vosso ficheiro (.swf) deve ser inserido numa pagina .php e o servidor deve ter suporte a php ) o primeiro código disponível no index-readme.txt.</p>
<p>Depois basta acederem ao vosso index.php 3 ou 4 vezes para &#8220;encher&#8221; dados na base de dados e ver as estatísticas correndo o ficheiro statsindexer.php</p>
<p>O sistema em si está a funcionar, mas como queria esses dados no Flex, teria obrigatoriamente que o passar por xml ou usando o amfphp. Foi esta segunda opção que usei. Deu algum trabalho mas lá acabei por criar um serviço para o amfphp o qual disponibilizo para download, este serviço está pronto a usar, bastando coloca-lo na pasta services do amfphp e usa-lo para obter os dados armazenados pelo stats Indexer. (Devem alterar no final do stats.php as informações de login da base de dados bem como o nome da mesma).</p>
<p>Basta darem uma vista de olhos nas funções deste meu serviço ou usarem o browser dos services do amfphp e testarem o servico stats para ver como os dados são devolvidos, depois basta criarem o serviço no flex para lidar com esses mesmo dados.</p>
<p>Lá para o final de semana se tiver um pouco de tempo faço um exemplo de como recuperar esses dados e os colocar num gráfico em flex.</p>
<p>Download Stats Indexer: <a href="http://members.lycos.nl/promajo/dl/StatsIndexerJDL.rar">http://members.lycos.nl/promajo/dl/StatsIndexerJDL.rar</a></p>
<p>Download Service: <a href="http://www.msdevstudio.com/mywork/stats.rar" title="stats.rar" target="_blank">stats.rar</a></p>
<p>Download amfPHP: <a href="http://sourceforge.net/project/showfiles.php?group_id=72483#files" title="http://sourceforge.net/project/showfiles.php?group_id=72483#files" target="_blank">http://sourceforge.net/project/showfiles.php?group_id=72483#files</a></p>
<p>Espero que ajude &#8220;muita&#8221; gente <img src='http://blog.msdevstudio.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Qualquer duvida, critica ou sugestão basta comentarem.</p>
<p>Abraços.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.msdevstudio.net/2008/04/01/adobe-flex-sistema-de-estatisticas-de-visitantes/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

