<?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; Drag</title>
	<atom:link href="http://blog.msdevstudio.net/tag/drag/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>O poder da API Draw do Flex; Código Fonte</title>
		<link>http://blog.msdevstudio.net/2008/12/07/o-poder-da-api-draw-do-flex-codigo-fonte/</link>
		<comments>http://blog.msdevstudio.net/2008/12/07/o-poder-da-api-draw-do-flex-codigo-fonte/#comments</comments>
		<pubDate>Sun, 07 Dec 2008 16:42:57 +0000</pubDate>
		<dc:creator>Mário Santos</dc:creator>
				<category><![CDATA[Action Script & MXML]]></category>
		<category><![CDATA[Air]]></category>
		<category><![CDATA[portfolio]]></category>
		<category><![CDATA[RIA's Geral]]></category>
		<category><![CDATA[Source Code]]></category>
		<category><![CDATA[Tutoriais]]></category>
		<category><![CDATA[tutorial AS3]]></category>
		<category><![CDATA[api]]></category>
		<category><![CDATA[Drag]]></category>
		<category><![CDATA[drop]]></category>
		<category><![CDATA[exemplo]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[follow]]></category>
		<category><![CDATA[graphic]]></category>
		<category><![CDATA[popup]]></category>
		<category><![CDATA[tour de flex]]></category>
		<category><![CDATA[Tutorial]]></category>

		<guid isPermaLink="false">http://msdevstudio.com/blog/?p=794</guid>
		<description><![CDATA[Depois de bastante gente me ter pedido gentilmente o código fonte do aplicativo desenvolvido em: http://msdevstudio.com/blog/2008/10/09/o-poder-da-api-draw-do-as3-exemplo-em-flex/     venho agora publicar o seu código fonte e informar que foram alterados alguns pontos, o que permite agora usar separadamente ambas as classes. A class GraphDependency permite agora ser usada para criar dependencia em qualquer objecto baseado [...]]]></description>
			<content:encoded><![CDATA[<p>Depois de bastante gente me ter pedido gentilmente o código fonte do aplicativo desenvolvido em:</p>
<p><a href="http://msdevstudio.com/blog/2008/10/09/o-poder-da-api-draw-do-as3-exemplo-em-flex/">http://msdevstudio.com/blog/2008/10/09/o-poder-da-api-draw-do-as3-exemplo-em-flex/</a></p>
<p> </p>
<p><img class="aligncenter" src="http://msdevstudio.com/blog/wp-content/uploads/2008/10/depend1.jpg" alt="" width="554" height="253" /></p>
<p> </p>
<p>venho agora publicar o seu código fonte e informar que foram alterados alguns pontos, o que permite agora usar separadamente ambas as classes.</p>
<p>A class GraphDependency permite agora ser usada para criar dependencia em qualquer objecto baseado em UIComponente como imagens ou botões, disponibilizando o método update() pode inclusive redesenhar a dependencia entre objectos estando eles a ser arrastados no ecrã ou sujeitos a uma animação.</p>
<p>A class Poper permite criar um popup informativo em qualquer objecto UIComponente, podendo também ser usada em imagens ou botões.</p>
<p>As restantes classes podem ser uteis em mais alguns pontos para desenhar circulos ou  rectangulos. O sistema de dependencia permite definir as cores da linha, recebendo como array os objectos a criar dependencia (linha grafica)</p>
<p>Podem ver o <a href="http://www.msdevstudio.com/mywork/graphicPresent/" target="_blank">exemplo online aqui</a> com o <a href="http://www.msdevstudio.com/mywork/graphicPresent/srcview/index.html" target="_blank">código fonte</a> disponivel bem como <a href="http://www.msdevstudio.com/mywork/graphicPresent/project/testGraphicFollow.zip" target="_blank">o projecto</a> pronto a importar no flex builder 3 (File-&gt;Import-&gt;Flex Project Archive)</p>
<p>Entretanto o projecto sofreu algumas alterações e o seu código foi devidamente comentado para que seja mais facil entender o exemplo. (Foi comentado em inglês saiba o porque em baixo)</p>
<p>Finalmente, um noticia, este exemplo foi previamente aceite para ser colocado no <a href="http://www.flex.org/tour" target="_blank">tour de flex</a> pelo Greg, ou seja, brevemente estará disponivel também nessa aplicação, e espero que seja o primeiro de muitos exemplos do msdevstudio presentes no aplicativo. Daí o exemplo em cima ter sido comentado em inglês, mas o exemplo é de facil compreensão e qualquer duvida: <a href="http://forum.msdevstudio.com" target="_blank">http://forum.msdevstudio.com.</a></p>
<p>Abraços a todos e espero que seja util.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.msdevstudio.net/2008/12/07/o-poder-da-api-draw-do-flex-codigo-fonte/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>O poder da API Draw do AS3; Exemplo em Flex</title>
		<link>http://blog.msdevstudio.net/2008/10/09/o-poder-da-api-draw-do-as3-exemplo-em-flex/</link>
		<comments>http://blog.msdevstudio.net/2008/10/09/o-poder-da-api-draw-do-as3-exemplo-em-flex/#comments</comments>
		<pubDate>Thu, 09 Oct 2008 12:54:01 +0000</pubDate>
		<dc:creator>Mário Santos</dc:creator>
				<category><![CDATA[Action Script & MXML]]></category>
		<category><![CDATA[Air]]></category>
		<category><![CDATA[portfolio]]></category>
		<category><![CDATA[RIA's Geral]]></category>
		<category><![CDATA[Adobe]]></category>
		<category><![CDATA[as3]]></category>
		<category><![CDATA[circle]]></category>
		<category><![CDATA[data]]></category>
		<category><![CDATA[Drag]]></category>
		<category><![CDATA[Draw]]></category>
		<category><![CDATA[drop]]></category>
		<category><![CDATA[effects]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[flow]]></category>
		<category><![CDATA[graphics]]></category>
		<category><![CDATA[map]]></category>
		<category><![CDATA[pert]]></category>
		<category><![CDATA[rect]]></category>

		<guid isPermaLink="false">http://msdevstudio.com/blog/?p=671</guid>
		<description><![CDATA[Depois de ter andado empolgado no AS3, e das suas propriedades mais primitivas, tenho andado a explorar a fundo a API Draw / Graphics do AS3, e no flex surgiu uma ideia bem interessante à uns tempos atras onde anunciei um simples construtor de redes de PERT, mas tinha um problema com as setas, que [...]]]></description>
			<content:encoded><![CDATA[<p>Depois de ter andado empolgado no AS3, e das suas propriedades mais primitivas, tenho andado a explorar a fundo a API Draw / Graphics do AS3, e no flex surgiu uma ideia bem interessante à uns tempos atras onde anunciei um simples construtor de redes de PERT, mas tinha um problema com as setas, que algumas pessoas perguntaram como o fazer a seta acompanhar o icon arrastado&#8230;</p>
<p>Decidi colocar mãos à obra e fazer o mesmo exemplo mas sem recurso a imagens, usando apenas a API draw do flex, ainda com alguns pontos a melhorar mas já sairam os primeiros testes do forno&#8230;</p>
<p>Este sistema uma uma class preparada para criar ligações a qualquer componente gráfico (UIComponent), criando uma dependencia entre varios, até mesmo centenas, elementos gráficos, mas no exemplo uso apenas circulos criados com o graphics (quem obteu e leu o tutorial parte II completo já o consegue fazer simplesmente) e ligados entre si com uma linha.</p>
<p>Vejam:</p>
<p><span id="more-671"></span></p>
<p><a href="http://msdevstudio.com/blog/wp-content/uploads/2008/10/depend1.jpg"><img class="aligncenter size-full wp-image-672" title="Dependency Flow" src="http://msdevstudio.com/blog/wp-content/uploads/2008/10/depend1.jpg" alt="" width="499" height="228" /></a></p>
<p>E mais um exemplo:</p>
<p><a href="http://msdevstudio.com/blog/wp-content/uploads/2008/10/depend2.jpg"><img class="aligncenter size-full wp-image-673" title="Dependency Flow" src="http://msdevstudio.com/blog/wp-content/uploads/2008/10/depend2.jpg" alt="" width="478" height="381" /></a></p>
<p>Todos os objectos podem ser arrastados que a sua linha de dependencia mantêm-se&#8230; esperimentem arastar um deles.</p>
<p>Testem no exemplo online <a href="http://www.msdevstudio.com/blog/flexSource/testGraphFlow/" target="_blank">aqui</a></p>
<p>Brevemente disponibilizarei o código fonte, já que quero implementar alguns pontos&#8230;</p>
<p>E que tal? o AS3 faz mesmo maravilhas&#8230; </p>
<p>Edit: Código fonte e exemplo actualizados, veja <a href="http://msdevstudio.com/blog/2008/12/07/o-poder-da-api-draw-do-flex-codigo-fonte/" target="_blank">aqui.</a></p>
<p>Abraço.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.msdevstudio.net/2008/10/09/o-poder-da-api-draw-do-as3-exemplo-em-flex/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Tutorial Action Script 3 Parte 2; O que foi feito.</title>
		<link>http://blog.msdevstudio.net/2008/10/07/tutorial-action-script-3-parte-2-o-que-foi-feito/</link>
		<comments>http://blog.msdevstudio.net/2008/10/07/tutorial-action-script-3-parte-2-o-que-foi-feito/#comments</comments>
		<pubDate>Tue, 07 Oct 2008 09:53:14 +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[tutorial AS3]]></category>
		<category><![CDATA[action script 3]]></category>
		<category><![CDATA[Adobe]]></category>
		<category><![CDATA[apostila]]></category>
		<category><![CDATA[as3]]></category>
		<category><![CDATA[custom panel]]></category>
		<category><![CDATA[Drag]]></category>
		<category><![CDATA[drop]]></category>
		<category><![CDATA[efeitos]]></category>
		<category><![CDATA[explorador]]></category>
		<category><![CDATA[maximizavel]]></category>
		<category><![CDATA[minimizavel]]></category>
		<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[xml]]></category>

		<guid isPermaLink="false">http://msdevstudio.com/blog/?p=660</guid>
		<description><![CDATA[Bem, venho aqui mostrar os exemplos práticos que foram feitos ao longo das 59 páginas (versão completa) desta segunda parte do tutorial. Todo o código explicado passo a passo encontra-se no tutorial, bem como implementação de muitos conceitos OOP do AS3. Entrando já na parte mais avançada, para ser entendido por iniciantes devem antes ler [...]]]></description>
			<content:encoded><![CDATA[<p>Bem, venho aqui mostrar os exemplos práticos que foram feitos ao longo das 59 páginas (versão completa) desta segunda parte do tutorial.</p>
<p>Todo o código explicado passo a passo encontra-se no tutorial, bem como implementação de muitos conceitos OOP do AS3.</p>
<p>Entrando já na parte mais avançada, para ser entendido por iniciantes devem antes ler a Parte I deste tutorial que nos indica as bases do AS3 bem como a sua organização.</p>
<p>Vejam então o que foi feito:</p>
<p><span id="more-660"></span></p>
<table border="0" width="100%">
<tbody>
<tr>
<td>Custom Panel</p>
<p><a href="http://msdevstudio.com/blog/flexSource/testAS3Panel"><img class="aligncenter size-medium wp-image-643" title="testAS3Panel" src="http://msdevstudio.com/blog/wp-content/uploads/2008/09/custompanel-300x240.jpg" alt="" width="300" height="210" /></a></td>
<td>Explorador de filtros e efeitos</p>
<p><a href="http://msdevstudio.com/blog/flexSource/testAS3Effects/"><img class="aligncenter size-medium wp-image-661" title="testAS3effects" src="http://msdevstudio.com/blog/wp-content/uploads/2008/10/testas3effects-300x208.jpg" alt="" width="300" height="208" /></a></td>
</tr>
<tr>
<td>Explorador da API Draw / Graphics</p>
<p><a href="http://msdevstudio.com/blog/flexSource/testAS3Graphics/"><img class="aligncenter size-medium wp-image-662" title="testas3graphics" src="http://msdevstudio.com/blog/wp-content/uploads/2008/10/testas3graphics-300x248.jpg" alt="" width="300" height="207" /></a></td>
<td>Explorador XML</p>
<p><a href="http://msdevstudio.com/blog/flexSource/testAS3XML"><img class="aligncenter size-medium wp-image-663" title="testas3xml" src="http://msdevstudio.com/blog/wp-content/uploads/2008/10/testas3xml-300x215.jpg" alt="" width="300" height="215" /></a></td>
</tr>
</tbody>
</table>
<p>Cliquem nas imagens para verem o exemplo online.</p>
<p>Os códigos fonte e index são disponibilizados com a versão completa:<br />
<a href="http://msdevstudio.com/blog/2008/10/04/tutorial-action-script-3-parte-ii/">http://msdevstudio.com/blog/2008/10/04/tutorial-action-script-3-parte-ii/</a></p>
<p>Abraços.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.msdevstudio.net/2008/10/07/tutorial-action-script-3-parte-2-o-que-foi-feito/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Flex PERT Builder &#8211; Open Source &#8211; Tutorial</title>
		<link>http://blog.msdevstudio.net/2008/10/01/flex-pert-builder-open-source-tutorial/</link>
		<comments>http://blog.msdevstudio.net/2008/10/01/flex-pert-builder-open-source-tutorial/#comments</comments>
		<pubDate>Wed, 01 Oct 2008 12:13:23 +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[RIA's Geral]]></category>
		<category><![CDATA[Source Code]]></category>
		<category><![CDATA[Tutoriais]]></category>
		<category><![CDATA[aplicação]]></category>
		<category><![CDATA[apostila]]></category>
		<category><![CDATA[as3]]></category>
		<category><![CDATA[Drag]]></category>
		<category><![CDATA[drop]]></category>
		<category><![CDATA[exemplo]]></category>
		<category><![CDATA[imagem]]></category>
		<category><![CDATA[manager]]></category>
		<category><![CDATA[open]]></category>
		<category><![CDATA[pert]]></category>
		<category><![CDATA[source]]></category>
		<category><![CDATA[Tutorial]]></category>

		<guid isPermaLink="false">http://msdevstudio.com/blog/?p=648</guid>
		<description><![CDATA[Depois de uma duvida do Nando no fórum (http://forum.msdevstudio.com) de como mover imagens para uma area de desenho decidi fazer um pequeno exemplo para servir de tutorial, e acabei por ir achando graça e construi um pequeno exemplo de um criador de Redes de PERT, para quem estudou (em informatica) estas redes devem ser familiares; [...]]]></description>
			<content:encoded><![CDATA[<p>Depois de uma duvida do Nando no fórum (<a href="http://forum.msdevstudio.com">http://forum.msdevstudio.com</a>) de como mover imagens para uma area de desenho decidi fazer um pequeno exemplo para servir de tutorial, e acabei por ir achando graça e construi um pequeno exemplo de um criador de Redes de PERT, para quem estudou (em informatica) estas redes devem ser familiares; não é nada mais que um &#8220;Program Evaluation and Review Technique&#8221; que serve para estudar e esquematizar todas as hipoteses e possibilidades de um programa, como se trata de um planificador de projecto é muito util na hora de desenvolver software.</p>
<p>O exemplo que fiz é muito simples e apenas apresenta o conceito base deste tipo de criação, usando 2 canvas, uma para a toolbar  outro para o design, uma reciclagem (para eliminar o desnecessário), uma area de stockagem temporaria.</p>
<p>Utilizando os metodos drag&amp;drop é possivel criar uma aplicação bem profissional. Vejam a imagem e o exemplo online com o código fonte disponivel.</p>
<p><span id="more-648"></span></p>
<p><a href="http://msdevstudio.com/blog/wp-content/uploads/2008/10/pert2.jpg"><img class="aligncenter size-full wp-image-651" title="Flex PERT Builder" src="http://msdevstudio.com/blog/wp-content/uploads/2008/10/pert2.jpg" alt="" width="500" height="341" /></a></p>
<p>Podem ver o exemplo online <a href="http://www.msdevstudio.com/blog/flexSource/testPertBuilder/" target="_blank">aqui</a> com o <a href="http://www.msdevstudio.com/blog/flexSource/testPertBuilder/srcview/" target="_blank">código fonte disponivel</a>.</p>
<p>É possivel adicionar campos de imagem e de texto, com ou sem bordo, podendo todos os objectos incluidos na area de design serem movidos ou eliminados. Para adicionar items basta arrasta-los do topo para a area de desenho.</p>
<p>Espero que seja util, principalmente para o Nando que estava à procura disto <img src='http://blog.msdevstudio.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>p.s. Usem e abusem, mas deixem um link no código aqui para o blog em projectos open source.</p>
<p>Abraços.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.msdevstudio.net/2008/10/01/flex-pert-builder-open-source-tutorial/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>15 Minutos com o Flex; Screencasts</title>
		<link>http://blog.msdevstudio.net/2008/09/09/15-minutos-com-o-flex-screencasts/</link>
		<comments>http://blog.msdevstudio.net/2008/09/09/15-minutos-com-o-flex-screencasts/#comments</comments>
		<pubDate>Tue, 09 Sep 2008 18:58:11 +0000</pubDate>
		<dc:creator>Mário Santos</dc:creator>
				<category><![CDATA[Action Script & MXML]]></category>
		<category><![CDATA[Air]]></category>
		<category><![CDATA[Duvidas]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[RIA's Geral]]></category>
		<category><![CDATA[Tutoriais]]></category>
		<category><![CDATA[15 minutes]]></category>
		<category><![CDATA[apostilha]]></category>
		<category><![CDATA[as3]]></category>
		<category><![CDATA[data binding]]></category>
		<category><![CDATA[Drag]]></category>
		<category><![CDATA[drop]]></category>
		<category><![CDATA[MXML]]></category>
		<category><![CDATA[online]]></category>
		<category><![CDATA[podcats]]></category>
		<category><![CDATA[screencasts]]></category>
		<category><![CDATA[tutorials]]></category>
		<category><![CDATA[xml]]></category>

		<guid isPermaLink="false">http://msdevstudio.com/blog/?p=603</guid>
		<description><![CDATA[Este é o titulo de uma série de video tutoriais que já há algum tempo andam na net mas que por estranho que pareça pouco tenho ouvido falar.  Uma coisa é certa, o flex está cada vez mais na &#8220;moda&#8221; e disso não tenho duvida, até porque cada vez mais artigos e informações são colocadas [...]]]></description>
			<content:encoded><![CDATA[<p>Este é o titulo de uma série de video tutoriais que já há algum tempo andam na net mas que por estranho que pareça pouco tenho ouvido falar.</p>
<p> Uma coisa é certa, o flex está cada vez mais na &#8220;moda&#8221; e disso não tenho duvida, até porque cada vez mais artigos e informações são colocadas na web e em listas de discussão com cada vez mais participantes.</p>
<p>Apesar de aqui no blog esforçar-me para divulgar apenas conteudo na lingua Portuguesa, existem sempre muito bons artigos e tutoriais na lingua inglesa&#8230; para quem se entende um pouco com o inglês posso afirmar que não se vão arrepender em ver estes (para já) 6 screencasts que o site <a href="http://www.theflexshow.com">www.theflexshow.com</a> está a disponibilizar, e para quem percebe bem o inglês este blog é uma perola, porque todas as semanas nos presenteia com excelentes podcasts bem descontraidos abordando variados assuntos sobre flex e ria&#8217;s.</p>
<p> Mas vamos à lista,</p>
<p><span id="more-603"></span></p>
<p>O &#8221;15 minutes with flex&#8221; é uma série de screencasts apoiados pela adobe que além de algumas tecnicas bem profissionais, nos explica passo a passo como trabalhar com as mais variadas coisas que às vezes são tão comuns na maior parte das aplicações.</p>
<p>Episodio 1 &#8211; Setting a flex project &#8211; Definindo um projecto flex &#8211; <a href="http://www.theflexshow.com/video/index.cfm/id/BB1D68DF-2BF4-55D0-F6432FEE6D2CF179/dir/episode1">Veja online</a></p>
<p>Episodio 2 &#8211; Using the flex debugger &#8211; Usando o debugger do flex &#8211; <a href="http://www.theflexshow.com/video/index.cfm/id/04E30DD2-2BF4-55D0-F645390083A238FB/dir/episode2">Veja Online</a></p>
<p>Episodio 3 &#8211; Understanding data binding &#8211; Entendendo o data binding &#8211; <a href="http://www.theflexshow.com/video/index.cfm/id/4605E060-2BF4-55D0-F64C8B998BE9D4C8/dir/episode3">Veja Online</a></p>
<p>Episodio 4 &#8211; Creating Component Properties &#8211; Criando propriedade de componentes &#8211; <a href="http://www.theflexshow.com/video/index.cfm/id/89E1A316-2BF4-55D0-F642605A950C5D8B/dir/episode4">Veja Online</a></p>
<p>Episodio 5 &#8211; Using XML with Flex &#8211; Usando XML no flex &#8211; <a href="http://www.theflexshow.com/video/index.cfm/id/DEC7DF73-2BF4-55D0-F64CB735E5492D49/dir/episode5">Veja Online</a></p>
<p>Episodio 6 &#8211; Drag &amp; Drop Lists -  Drag &amp; Drop em Listas - <a href="http://www.theflexshow.com/video/index.cfm/id/160E9DDD-2BF4-55D0-F64DC387D4546A32/dir/episode6">Veja Online</a></p>
<p> </p>
<p>Como disse em cima esse blog possiu alguns podcasts bem interessantes, contando mesmo já com 52, que variam um pouco de tamanho, mas que todos eles têm alguns pontos de interesse.</p>
<p>Espero que seja util.</p>
<p>Abraço.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.msdevstudio.net/2008/09/09/15-minutos-com-o-flex-screencasts/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Flex; Drag &amp; Drop Explicado.</title>
		<link>http://blog.msdevstudio.net/2008/08/06/flex-drag-drop-explicado/</link>
		<comments>http://blog.msdevstudio.net/2008/08/06/flex-drag-drop-explicado/#comments</comments>
		<pubDate>Wed, 06 Aug 2008 18:58:52 +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[RIA's Geral]]></category>
		<category><![CDATA[Source Code]]></category>
		<category><![CDATA[Tutoriais]]></category>
		<category><![CDATA[carrinho de compras]]></category>
		<category><![CDATA[componentes]]></category>
		<category><![CDATA[dataGrid]]></category>
		<category><![CDATA[Drag]]></category>
		<category><![CDATA[drag & drop]]></category>
		<category><![CDATA[drag image]]></category>
		<category><![CDATA[drop]]></category>
		<category><![CDATA[lixeira]]></category>

		<guid isPermaLink="false">http://msdevstudio.com/blog/?p=374</guid>
		<description><![CDATA[Neste tutorial vai ser explicado como utilizar os metodos Drag &#38; Drop no Flex. Em muitos dos objectos/componentes do flex, estas propriedades estão já implementadas e a sua utilização é bem simples nesses mesmos componentes com suporte nativo Drag &#38; Drop. As coisas podem ficar um bocado mais complicadas se formos trabalhar com outros componentes, [...]]]></description>
			<content:encoded><![CDATA[<p>Neste tutorial vai ser explicado como utilizar os metodos Drag &amp; Drop no Flex. Em muitos dos objectos/componentes do flex, estas propriedades estão já implementadas e a sua utilização é bem simples nesses mesmos componentes com suporte nativo Drag &amp; Drop.<br />
As coisas podem ficar um bocado mais complicadas se formos trabalhar com outros componentes, mas este não vai ser o caso. O tutorial vai então passar a explicar como efectuar um Drag &amp; Drop entre e componentes que já têm o suporte nativo drag &amp; drop, podemos escolher um dos seguintes:</p>
<p>Datagrid<br />
List<br />
HorizontalList<br />
PrintDatagGrid<br />
TileList<br />
Tree</p>
<p>Vamos então usar neste momento duas datagrid&#8217;s, e fazer um exemplo de um simples sistema de carrinho de compras, criando um novo projecto e colocando o código seguinte:</p>
<p><span id="more-374"></span><br />
<coolcode lang="xml" linenum="off"><br />
<?xml version="1.0" encoding="utf-8"?><br />
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" width="510" height="349" backgroundGradientAlphas="[1.0, 1.0]" backgroundGradientColors="[#FFFFFF, #FFFFFF]"></p>
<p>	<mx:DataGrid id="mercado" x="37" y="86" width="204" height="142" alternatingItemColors="[#F6F0F0, #FFFFFF]"><br />
		<mx:columns><br />
			<mx:DataGridColumn headerText="Objeto" dataField="objeto"/><br />
			<mx:DataGridColumn headerText="Preço" dataField="preco"/><br />
		</mx:columns><br />
		<mx:dataProvider><br />
			<mx:Object objeto="Livro A" preco="25 €"/><br />
			<mx:Object objeto="Livro B" preco="30 €"/><br />
			<mx:Object objeto="Errata LA" preco="15 €"/><br />
		</mx:dataProvider><br />
	</mx:DataGrid></p>
<p>	<mx:DataGrid id="carrinho" x="276" y="86"><br />
		<mx:columns><br />
			<mx:DataGridColumn headerText="Objeto" dataField="objeto"/><br />
			<mx:DataGridColumn headerText="Preço" dataField="preco"/><br />
		</mx:columns><br />
	</mx:DataGrid><br />
	<mx:Label x="37" y="60" text="Mercado" width="140"/><br />
	<mx:Label x="276" y="60" text="Carrinho de compras" width="140"/><br />
</mx:Application></p>
<p></coolcode></p>
<p>Em que muito possivelmente ficarão com o design grafico como a imagem:</p>
<div id="attachment_375" class="wp-caption aligncenter" style="width: 502px"><a href="http://msdevstudio.com/blog/wp-content/uploads/2008/08/tutor_1.jpg"><img class="size-full wp-image-375" title="tutor_1" src="http://msdevstudio.com/blog/wp-content/uploads/2008/08/tutor_1.jpg" alt="Parte 1" width="492" height="329" /></a><p class="wp-caption-text">Parte 1</p></div>
<p> <br />
O nosso objectivo é passar elementos da datagrid &#8220;Mercado&#8221; para a datarid &#8220;Carrinho de compras&#8221;, para isso podemos usar os metodos drag &amp; drop nativos destas mesmas datagrid&#8217;s, mas para isso temos que efectuar algumas alterações no código, indicando que eles vão suportar operações desse tipo. Vamos então alterar na datagrid da esquerda (mercado) para isso adicionando o parametro <b>dragEnabled</b> e defini-lo como true.:</p>
<p><coolcode lang="xml" linenum="off"><br />
<mx:DataGrid id="mercado" x="37" y="86" width="204" height="142" alternatingItemColors="[#F6F0F0, #FFFFFF]" dragEnabled="true"></coolcode></p>
<p>e fazendo o mesmo na datagrid da direita, mas com o parametro  <b>dropEnabled</b>:</p>
<p><coolcode lang="xml" linenum="off"><br />
<mx:DataGrid id="carrinho" x="276" y="86" dropEnabled="true"><br />
</coolcode></p>
<p>e pronto, as nossas datagrids estão prontas a enviar e receber items, e podem salvar e correr a vossa aplicação que verão já o drag &#038; drop em funcionamento.</p>
<p>O funcionamento do drag &#038; drop em componentes que já têm o seu suporte nativo é tão simples como aqui foi explicado, mas vamos agora fazer algo mais elaborado, usando o mesmo código. Vamos colocar uma lixeira no nosso layout para poder-mos eliminar items do nosso carrinho de compras. Para isso a seguir à ultima </mx:DataGrid> colocamos o seguinte:</p>
<p><coolcode lang="xml" linenum="off"><br />
<mx:Image x="219.5" y="256" source="http://www.msdevstudio.com/mywork/recicle.png" maintainAspectRatio="false" width="76" height="73" id="lixeira" /><br />
</coolcode></p>
<p>e ficamos com algo muito parecido ao seguinte:</p>
<div id="attachment_376" class="wp-caption alignrcenter" style="width: 505px"><a href="http://msdevstudio.com/blog/wp-content/uploads/2008/08/tutor_2.jpg"><img src="http://msdevstudio.com/blog/wp-content/uploads/2008/08/tutor_2.jpg" alt="Parte 2" title="tutor_2" width="495" height="333" class="size-full wp-image-376" /></a><p class="wp-caption-text">Parte 2</p></div>
<p>Sendo que como uma imagem não têm nativamente suportado o drag &#038; drop temos que arranjar maneira de o fazer. Primeiro temos que indicar à datagrid que também pode ser objecto de drag, e vamos também permitir selecionar varias linhas ao mesmo tempo, para isso acrescentamos na datagrid &#8220;carrinho&#8221; 3 parametros como o dragEnabled=&#8221;true&#8221; , o allowMultipleSelection=&#8221;true&#8221; e dragMoveEnabled=&#8221;true&#8221; ficando a nossa datagrid assim:</p>
<p><coolcode lang="xml" linenum="off"><br />
<mx:DataGrid id="carrinho" x="276" y="86" dropEnabled="true" dragEnabled="true" allowMultipleSelection="true" dragMoveEnabled="true"><br />
</coolcode></p>
<p>Com estes parametros estou a indicar que essa datagrid (alem de já aceitar drop) está a aceitar drag também, bem como muiltipla selecção de items e a quando do drag&#038;drop dessa datagrid para outro alvo, ela vai permiter que o seu conteudo selecionado seja movido e não copiado como acontecia antes&#8230;</p>
<p>Se repararem nos parametros da tag mx:image existem alguns elementos Drag, que permitem que nós possamos fazer com que o objecto lide com darg &#038; drop, e é precisamente uma dessas propriedades que vamos utilizar, escrevendo na tag da nossa imagem lixeira, o seguinte:<br />
dragEnter=&#8221;lidaEnter(event)&#8221;</p>
<p>ficando a tag mx:image assim:</p>
<p><coolcode lang="xml" linenum="off"><br />
<mx:Image x="219.5" y="256" source="http://www.msdevstudio.com/mywork/recicle.png" maintainAspectRatio="false" width="76" height="73" id="lixeira" dragEnter="lidaEnter(event)" /><br />
</coolcode></p>
<p>Estes dois parametros dragEnter e dragDrop são  eventos que são disparados quando o objecto é alvo de operações drag&#038;drop, neste caso a função lidaEnter() será chamada quando um objecto alvo de drag passar em cima da nossa imagem, aqui temos que indicar ao flex que ela se encontra apta para drag.</p>
<p>Falta apenas criar a funçao para lidar com este evento, mais precisamente a lidaEnter() para isso colocamos o seguinte código logo a seguir à 2 linha (a seguir à tag mx:application):</p>
<p><coolcode lang="actionscript" linenum="off"><br />
<mx:Script><br />
	<![CDATA[<br />
			import mx.events.DragEvent;<br />
			import mx.managers.DragManager;</p>
<p>			private function lidaEnter(event:DragEvent):void{<br />
				var dropTarget:Image = event.currentTarget as Image;<br />
				DragManager.acceptDragDrop(dropTarget);<br />
				DragManager.showFeedback(DragManager.MOVE);<br />
			}</p>
<p>		]]&gt;<br />
		</mx:Script></p>
<p></coolcode></p>
<p>E pronto, temos o nosso Mercado com carrinho de compras e lixeira para eleminar um ou mais items do carrinho de compras.</p>
<p>Como podem reparar não têm nenhuma dificuldade, Por isso, usem e abusem!</p>
<p>Código Final:<br />
<coolcode download="testDragDrop.mxml" linenum="off" lang="xml"><br />
<?xml version="1.0" encoding="utf-8"?><br />
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" width="510" height="349" backgroundGradientAlphas="[1.0, 1.0]" backgroundGradientColors="[#FFFFFF, #FFFFFF]"><br />
	<mx:Script><br />
	<![CDATA[<br />
			import mx.events.DragEvent;<br />
			import mx.managers.DragManager;</p>
<p>			private function lidaEnter(event:DragEvent):void{<br />
				var dropTarget:Image = event.currentTarget as Image;<br />
				DragManager.acceptDragDrop(dropTarget);<br />
				DragManager.showFeedback(DragManager.MOVE);<br />
			}</p>
<p>		]]&gt;<br />
		</mx:Script></p>
<p>	<mx:DataGrid id="mercado" x="37" y="86" width="204" height="142" alternatingItemColors="[#F6F0F0, #FFFFFF]" dragEnabled="true"><br />
		<mx:columns><br />
			<mx:DataGridColumn headerText="Objeto" dataField="objeto"/><br />
			<mx:DataGridColumn headerText="Preço" dataField="preco"/><br />
		</mx:columns><br />
		<mx:dataProvider><br />
			<mx:Object objeto="Livro A" preco="25 €"/><br />
			<mx:Object objeto="Livro B" preco="30 €"/><br />
			<mx:Object objeto="Errata LA" preco="15 €"/><br />
		</mx:dataProvider><br />
	</mx:DataGrid></p>
<p>	<mx:DataGrid id="carrinho" x="276" y="86" dropEnabled="true" dragEnabled="true" allowMultipleSelection="true" dragMoveEnabled="true"><br />
		<mx:columns><br />
			<mx:DataGridColumn headerText="Objeto" dataField="objeto"/><br />
			<mx:DataGridColumn headerText="Preço" dataField="preco"/><br />
		</mx:columns><br />
	</mx:DataGrid><br />
	<mx:Label x="37" y="60" text="Mercado" width="140"/><br />
	<mx:Label x="276" y="60" text="Carrinho de compras" width="140"/><br />
	<mx:Image x="219.5" y="256" source="http://www.msdevstudio.com/mywork/recicle.png" maintainAspectRatio="false" width="76" height="73" id="lixeira" dragEnter="lidaEnter(event)" /><br />
</mx:Application></p>
<p></coolcode></p>
<p>
Podem ver o resultado final online com o código fonte disponivel <a href="http://www.msdevstudio.com/blog/flexSource/testDragDrop/" target="_blank">aqui</a></p>
<p>Abraço e espero que seja util e esclarecedor.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.msdevstudio.net/2008/08/06/flex-drag-drop-explicado/feed/</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
	</channel>
</rss>

