<?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>Rogério Lino &#187; arrastavel</title>
	<atom:link href="http://rogeriolino.com/tags/arrastavel/feed/" rel="self" type="application/rss+xml" />
	<link>http://rogeriolino.com</link>
	<description>Desenvolvimento Web, tecnologia, jogos e etcetera</description>
	<lastBuildDate>Wed, 16 May 2012 19:51:00 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
<xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" />
		<item>
		<title>Flash: startDrag() e stopDrag()</title>
		<link>http://rogeriolino.com/2007/01/29/flash-startdrag-e-stopdrag/</link>
		<comments>http://rogeriolino.com/2007/01/29/flash-startdrag-e-stopdrag/#comments</comments>
		<pubDate>Mon, 29 Jan 2007 17:34:33 +0000</pubDate>
		<dc:creator>Rogério Alencar Lino Filho</dc:creator>
				<category><![CDATA[ActionScript]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[arrastavel]]></category>
		<category><![CDATA[draggable]]></category>
		<category><![CDATA[flutuante]]></category>
		<category><![CDATA[janela]]></category>
		<category><![CDATA[movieclip]]></category>
		<category><![CDATA[startdrag]]></category>
		<category><![CDATA[stopdrag]]></category>
		<category><![CDATA[swf]]></category>
		<category><![CDATA[window]]></category>

		<guid isPermaLink="false">http://rogeriolino.wordpress.com/2007/01/29/flash-startdrag-e-stopdrag/</guid>
		<description><![CDATA[<p>Aproveitando o post anterior sobre uma div arrastável usando Javascript. Vamos ver agora como seria feito uma janela também arrastável só que no Flash.</p> <p>Primeiro de tudo é desenharmos nossa janela, ela será divida da seguinte maneira:</p> <p>janela (MovieClip Principal)<br /> &#124;&#8211; barra;<br /> &#124;&#8211; minimax;<br /> &#124;&#8211; fechar;<br /> \&#8211; conteudo.</p> <p>Use as ferramentas [...]]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p>Aproveitando o post anterior sobre uma div arrastável usando Javascript. Vamos ver agora como seria feito uma janela também arrastável só que no Flash.</p>
<p>Primeiro de tudo é desenharmos nossa janela, ela será divida da seguinte maneira:</p>
<blockquote><p><strong>janela</strong> (MovieClip Principal)<br />
|&#8211; <strong>barra</strong>;<br />
|&#8211; <strong>minimax</strong>;<br />
|&#8211; <strong>fechar</strong>;<br />
\&#8211; <strong>conteudo</strong>.</p></blockquote>
<p>Use as ferramentas de desenho para construir a janela, mas deixe os desenhos separados como mostrado acima. Se você ainda não está familiarizado<a href="http://rogeriolino.wordpress.com/2006/09/06/flash-8-para-quem-esta-comecando-1/" title="Flash 8 Para quem está começando #1"> leia este post primeiro</a>.</p>
<p>A minha janela ficou assim:</p>
<p><img src="http://rogeriolino.files.wordpress.com/2007/01/janela.gif" alt="Desenho da Janela" /></p>
<p>Aonde cada parte (desenho) é um MovieClip diferente, para <strong>transformar</strong> o seu <strong>desenho</strong> em <strong>MovieClip</strong> selecione ele aperte <strong>F8</strong> coloque o nome do MC e verifique se o <strong>radiobutton MovieClip</strong> realmente está marcado.</p>
<p>Após criado o Movie devemos instanciâ-lo, para isso clique nele e vá na aba <strong>Propriedades</strong> (<strong>CTRL+F3</strong>), preencha o campo instância (siga os nomes definidos acima).</p>
<p>Com os quatros MovieClips prontos (<strong>barra</strong>, <strong>minimax</strong>, <strong>fechar</strong> e <strong>conteudo</strong>) selecione-os e aperte novamente <strong>F8</strong> para transformá-los no nosso <strong>MC janela</strong>.</p>
<p>Caso você queira editar algum movie ou apenas posicionar melhor, dê um duplo clique nele e poderá navegar através dos demais que estão contidos nele.</p>
<p>Agora com os MCs criados e instanciados, vamos às <strong>actions</strong>:</p>
<p>Clique no <strong>frame principal</strong> (o primeiro frame da timeline) e aperte <strong>F9</strong>. Cole o código abaixo:</p>
<pre name="code" class="js">
this.janela.barra.onPress = function() {
    this._parent.startDrag();
}

this.janela.barra.onRelease = function() {
    this._parent.stopDrag();
}

this.janela.fechar.onRelease = function() {
    this._parent._visible = false;
}

this.abrir.onRelease = function() {
    this._parent.janela._visible = true;
}

this.janela.minimax.onRelease = function() {
    this._parent.conteudo._visible = !this._parent.conteudo._visible;
}
</pre>
<p>Ao contrário do Javascript e das versões bem mais antigas (até a 5) do Flash não é necessário um método para pegar um alvo. Você mostra o caminha para se chegar nele a partir do palco (_root sempre para raiz, ou this este filme &#8211; isso ficará mais claro quando aprendermos sobre carregar filme externo).</p>
<p>Por exemplo o movie<strong> fechar</strong> está no dentro do MC<strong> janela</strong> que por sua vez está no palco, então: <strong>this.janela.fechar</strong>. E se você estiver em um MC (fehcar por exemplo) e queira acessar o seu pai (janela), fica assim: <strong>this._parent</strong>.</p>
<p>Repare no código que a lógica é a mesma, porém no Flash tem um método nativo para realiza esse arrastar (<strong>startDrag()</strong>) e um para parar esse arrastar (<strong>stopDrag()</strong>). O que no HTML temos que fazer na mão mesmo.</p>
<p>O que reduz e muito o código final. Agora é só testar (CTRL+ENTER).</p>
<p>Para ver o <a href="http://www17.brinkster.com/chivalrous/exemplos/flash_drag/flash_drag.html" title="startDrag()" target="_blank">exemplo clique aqui</a>.</p>
<div class="shr-publisher-70"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><div class='shareaholic-like-buttonset' style='float:none;height:30px;'><a class='shareaholic-fblike' data-shr_layout='button_count' data-shr_showfaces='false' data-shr_href='http%3A%2F%2Frogeriolino.com%2F2007%2F01%2F29%2Fflash-startdrag-e-stopdrag%2F' data-shr_title='Flash%3A+startDrag%28%29+e+stopDrag%28%29'></a><a class='shareaholic-googleplusone' data-shr_size='medium' data-shr_count='true' data-shr_href='http%3A%2F%2Frogeriolino.com%2F2007%2F01%2F29%2Fflash-startdrag-e-stopdrag%2F' data-shr_title='Flash%3A+startDrag%28%29+e+stopDrag%28%29'></a><a class='shareaholic-tweetbutton' data-shr_count='horizontal' data-shr_href='http%3A%2F%2Frogeriolino.com%2F2007%2F01%2F29%2Fflash-startdrag-e-stopdrag%2F' data-shr_title='Flash%3A+startDrag%28%29+e+stopDrag%28%29'></a></div><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://rogeriolino.com/2007/01/29/flash-startdrag-e-stopdrag/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Javascript: Draggable Window</title>
		<link>http://rogeriolino.com/2007/01/25/javascript-draggable-window/</link>
		<comments>http://rogeriolino.com/2007/01/25/javascript-draggable-window/#comments</comments>
		<pubDate>Thu, 25 Jan 2007 23:11:33 +0000</pubDate>
		<dc:creator>Rogério Alencar Lino Filho</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[arrastavel]]></category>
		<category><![CDATA[div]]></category>
		<category><![CDATA[DOM]]></category>
		<category><![CDATA[draggable]]></category>
		<category><![CDATA[flutuante]]></category>
		<category><![CDATA[janela]]></category>
		<category><![CDATA[window]]></category>
		<category><![CDATA[XHTML]]></category>

		<guid isPermaLink="false">http://rogeriolino.wordpress.com/2007/01/25/javascript-draggable-window/</guid>
		<description><![CDATA[<p>Tem algum tempo já que estava de bobeira e acabei fazendo um exemplo de uma div (janela) arrastável.</p> <p>Simulei uma janela padrão em alguns Sistemas Operacionais, tem a barra superior com o título da janela, o espaço ao centro para o conteúdo e uma barra no final, a statusbar (essa só para incrementar mesmo).</p> <p>Há [...]]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p>Tem algum tempo já que estava de bobeira e acabei fazendo um <strong>exemplo</strong> de uma <strong>div</strong> (janela) <strong>arrastável</strong>.</p>
<p>Simulei uma janela padrão em alguns Sistemas Operacionais, tem a barra superior com o título da janela, o espaço ao centro para o conteúdo e uma barra no final, a statusbar (essa só para incrementar mesmo).</p>
<p>Há nela também três opções: &#8220;<strong>minimizar/maximizar</strong>&#8220;,  &#8220;<strong>esconder</strong>&#8221; e &#8220;<strong>fechar</strong>&#8220;.</p>
<p>Na opção &#8220;minimizar&#8221; é alterado a propriedade <strong>display</strong> do <strong>CSS</strong> da parte do conteúdo para <strong>none</strong>. Voltando para <strong>block</strong> com &#8220;maximizar&#8221;.</p>
<p>O &#8220;esconder&#8221; além de aproveitar a função para &#8220;minimizar&#8221; também altera o <strong>display</strong> da <strong>statusbar</strong> para <strong>none</strong>. E seta a <strong>posição</strong> da janela para a <strong>origem</strong> da tela (<strong>left</strong>:0 e <strong>top</strong>: 0).</p>
<p>E o &#8220;fechar&#8221; por sua vez altera a propriedade do <strong>visibility</strong> do CSS da  janela toda para <strong>hidden</strong>. E no palco tem uma opção para (re)<strong>abrir</strong> a janela, que altera o <strong>visibility</strong> para <strong>visible</strong>.</p>
<p>O porquê de usar visibility para &#8220;fechar&#8221; a janela é porque não queremos mudar o comportamento da janela, como ela é vista, e sim só sumir, torná-la invisível. O mesmo não funcionaria muito bem com o conteúdo porque fazendo ele só sumir ainda ficaria o seu &#8220;espaço guardado&#8221; fazendo apenas o conteúdo ficar invisível ao invéz da janela realmente minimizar.</p>
<p>Ao arrastar a janela também é <strong>alterado</strong> o <strong>cursor</strong>, mudando para <strong>move</strong>. O que caracteriza melhor a janela sendo arrastada.</p>
<p>Qualquer dúvida é só deixar no comentário.</p>
<p><a href="http://www17.brinkster.com/chivalrous/exemplos/drag/drag.html" title="Exemplo funcionando" target="_blank">Exemplo: Draggable Window </a></p>
<p><a href="http://www17.brinkster.com/chivalrous/exemplos/drag/script/drag.js" title="Código Javascript do exemplo" target="_blank">Source: Draggable Window</a></p>
<div class="shr-publisher-69"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><div class='shareaholic-like-buttonset' style='float:none;height:30px;'><a class='shareaholic-fblike' data-shr_layout='button_count' data-shr_showfaces='false' data-shr_href='http%3A%2F%2Frogeriolino.com%2F2007%2F01%2F25%2Fjavascript-draggable-window%2F' data-shr_title='Javascript%3A+Draggable+Window'></a><a class='shareaholic-googleplusone' data-shr_size='medium' data-shr_count='true' data-shr_href='http%3A%2F%2Frogeriolino.com%2F2007%2F01%2F25%2Fjavascript-draggable-window%2F' data-shr_title='Javascript%3A+Draggable+Window'></a><a class='shareaholic-tweetbutton' data-shr_count='horizontal' data-shr_href='http%3A%2F%2Frogeriolino.com%2F2007%2F01%2F25%2Fjavascript-draggable-window%2F' data-shr_title='Javascript%3A+Draggable+Window'></a></div><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://rogeriolino.com/2007/01/25/javascript-draggable-window/feed/</wfw:commentRss>
		<slash:comments>20</slash:comments>
		</item>
	</channel>
</rss>

