<?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>MXStudio &#187; Lucas_marcal</title>
	<atom:link href="http://www.mxstudio.com.br/author/lucas_marcal/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.mxstudio.com.br</link>
	<description>Macromedia e Adobe - Artigos, colunas, tutorias e muito mais...</description>
	<lastBuildDate>Sun, 29 Jan 2012 11:31:48 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.3</generator>
		<item>
		<title>Slide Itens em Actionscript 3.0</title>
		<link>http://www.mxstudio.com.br/desenvolvimento/flash/slide-itens-em-actionscript-3-0/</link>
		<comments>http://www.mxstudio.com.br/desenvolvimento/flash/slide-itens-em-actionscript-3-0/#comments</comments>
		<pubDate>Sun, 29 Nov 2009 17:49:34 +0000</pubDate>
		<dc:creator>Lucas_marcal</dc:creator>
				<category><![CDATA[Flash]]></category>

		<guid isPermaLink="false">http://www.mxstudio.com.br/?p=2880</guid>
		<description><![CDATA[Salve pessoal, durante muito tempo em uma determinada agência que eu trabalhei eu utilizei essa classe (ainda em Actionscript 2.0) para apresentar produtos, imagens, noticias etc&#8230; Por esse motivo decidi fazer uma versão dela para Actionscript 3.0 espero que ela possa ser útil á você nos seus trabalhos assim como ela foi muito útil para [...]]]></description>
			<content:encoded><![CDATA[<p><span style="font-family: 'Lucida Grande',Verdana,Arial,'Bitstream Vera Sans',sans-serif; font-size: 13px; line-height: 19px; white-space: pre-wrap;">Salve<br />
pessoal, durante muito tempo em uma determinada agência que eu<br />
trabalhei eu utilizei essa classe (ainda em Actionscript 2.0) para<br />
apresentar produtos, imagens, noticias etc&#8230;<br />
Por esse motivo decidi fazer uma versão dela para Actionscript 3.0<br />
espero que ela possa ser útil á você nos seus trabalhos assim como ela<br />
foi muito útil para mim!<br />
Lembre-se siga-me no Twitter &lt;a href=&#8221;<a href="http://www.twitter.com/lmcosta" target="_blank">http://www.twitter.com/lmcosta</a>&#8220;&gt;@lmcosta&lt;/a&gt;</p>
<p>Classe FullSlide.as</p>
<pre class="brush: as3; first-line: 8; gutter: false; highlight: [10,11]; pad-line-numbers: false; title: ; wrap-lines: false; notranslate">
package lmcosta.slide
{
import flash.display.MovieClip;
import flash.events.Event;
import flash.events.MouseEvent;
import gs.*;
import gs.easing.*;

/**
* ...
* @author  &lt;span&gt;Lucas&lt;/span&gt; &lt;span&gt;Marçal&lt;/span&gt;
* @link    &lt;a href=&quot;http://www.lucasmarcal.com.br/blog&quot; target=&quot;_blank&quot;&gt;www.lucasmarcal.com.br/blog&lt;/a&gt;
* @see     &lt;a href=&quot;http://tweener.googlecode.com/svn/trunk/examples/&quot; target=&quot;_blank&quot;&gt;http://tweener.googlecode.com/svn/trunk/examples/&lt;/a&gt;
* @version 1.0
* @usage
*  import lmcosta.slide.FullSlide
var mySlide:FullSlide = new FullSlide();
addChild(this.mySlide);
var _arr:Array =  new Array(mc1,mc2,mc3,mc4,mc5);
var btSlideX:MovieClip;
var btSlideY:MovieClip;
this.btVai.addEventListener(MouseEvent.MOUSE_DOWN , clickVai);
this.btVem.addEventListener(MouseEvent.MOUSE_DOWN , clickVem);
function clickVai (e:MouseEvent):void
{
e.target.parent.parent.mySlide.moveItens(1);
}
function clickVem (e:MouseEvent):void
{
e.target.parent.parent.mySlide.moveItens(-1);
}
*/
public class FullSlide extends MovieClip
{
/**
* DEFININDO PROPRIEDADES
*/
public var itensMc:Array;
public var tipoSlide:String;
public var posX:Number;
public var posY:Number;
public var distanciaItens:Number;
public var distanciaItensFoco:Number;
public var tempoEase:Number;
public var distancia:Number;
public var itemAtual:Number;
public var itemX:Number;
public var itemY:Number;

public function FullSlide()
{
trace(&quot;Iniciou&quot;)
}
/**
*
* @param	tipo:            Tipo de alinhamento X ou Y
* @param	arr :            Array que contém os MovieClips
* @param	distancia:       Distancia dos MovieClips na hora do alinhamento
* @param	foco:            Distancia que o item deve se mover
* @param	indiceAtual:     MovieClip Atual
* @param	posicaoX:        Posição em X
* @param	posicaoY:        Posição em Y
*/
public function setSlide(tipo:String,arr:Array,distancia:Number, foco:Number,indiceAtual:Number,posicaoX:Number,posicaoY:Number):void
{
this.tipoSlide = tipo;
this.itensMc = arr;
this.itemAtual = indiceAtual;
this.distanciaItens = distancia;
this.distanciaItensFoco = foco;
this.posX = posicaoX;
this.posY = posicaoY;
this.tempoEase = 0.5;
setPosItens();
}

private function setPosItens():void
{

for (var i:Number = 0; i &amp;lt; this.itensMc.length; i++)
{
if (this.tipoSlide == &quot;Y&quot;)
{
this.distancia = this.itemAtual - i;
this.itemY = this.posY + (this.distancia * - this.distanciaItens);
this.itensMc[i].x = Math.round(this.posX);
if (this.distancia != 0)
{
this.itemY += (Math.round(this.distanciaItensFoco) - Math.round(this.distanciaItens)) * (Math.round(this.distancia) &amp;gt; 0 ? -1 : +1);
}
TweenMax.to(this.itensMc[i], this.tempoEase, {y:Math.round(this.itemY),ease:Expo.easeOut});
}
else
{
this.distancia = this.itemAtual - i;
this.itemX = this.posX + (this.distancia * - this.distanciaItens);
this.itensMc[i].y = Math.round(this.posY);
if (this.distancia != 0)
{
this.itemX += (Math.round(this.distanciaItensFoco) - Math.round(this.distanciaItens)) * (Math.round(this.distancia) &amp;gt; 0 ? -1 : +1);
}
TweenMax.to(this.itensMc[i], this.tempoEase, {x:Math.round(this.itemX),ease:Expo.easeOut});
}
if(i - this.itensMc.length != 1)
{
TweenMax.to(this.itensMc[i], this.tempoEase, { blurFilter: { blurX:10, blurY:10, quality:1 }, z:1 } );
}
if (this.tempoEase &amp;gt; 0)
{
TweenMax.to(this.itensMc[this.itemAtual], this.tempoEase/2, {blurFilter:{blurX:0,blurY:0, quality:2},z:1});
}
var refItem:MovieClip = this.itensMc[i] as MovieClip;
refItem.buttonMode = true;
refItem.addEventListener(MouseEvent.MOUSE_DOWN , onDown);
refItem.addEventListener(MouseEvent.MOUSE_OVER , onOver);
refItem.addEventListener(MouseEvent.MOUSE_OUT , onOut);
refItem.nome = i;
}
}

private function onOut(e:Event):void
{
TweenMax.to(e.target, 0.2, { tint:null, ease:Linear.easeNone } );
}

private function onOver(e:Event):void
{
TweenMax.to(e.target, 0.2, { tint:0xcccccc, ease:Linear.easeNone } );
}

public function onDown(e:Event):void
{
trace(&quot;item &quot; + e.target.nome);
this.setItens(e.target.nome)
}
/**
* @param	indice
*/
public function moveItens(indice:Number):void
{
this.setItens(this.itemAtual + indice);
}
/**
* @param	indice
*/
public function setItens(indice:Number):void
{

if (indice &amp;lt; 0) indice = 0;
if (indice &amp;gt; this.itensMc.length - 1) indice = this.itensMc.length - 1;
if (indice != this.itemAtual)
{
this.itemAtual = indice;
this.setPosItens();
}
}

}

}
</pre>
<p>&lt;a href=&#8221;<a href="http://www.lucasmarcal.com.br/labs/FullSlide.html" target="_blank">http://www.lucasmarcal.com.br/labs/FullSlide.html</a>&#8220;&gt;Exemplo&lt;/a&gt;<br />
&lt;a href=&#8221;<a href="http://www.lucasmarcal.com.br/labs/FullSlide.rar" target="_blank">http://www.lucasmarcal.com.br/labs/FullSlide.rar</a>&#8220;&gt;Arquivos do Tutorial&lt;/a&gt;</p>
<p>Abraço a todos, semana que vem tem mais!</span> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.mxstudio.com.br/desenvolvimento/flash/slide-itens-em-actionscript-3-0/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Validando Campos de formulário no Actionscript 3.0</title>
		<link>http://www.mxstudio.com.br/desenvolvimento/flash/validando-campos-de-formulario-no-actionscript-3-0/</link>
		<comments>http://www.mxstudio.com.br/desenvolvimento/flash/validando-campos-de-formulario-no-actionscript-3-0/#comments</comments>
		<pubDate>Sun, 29 Nov 2009 17:48:11 +0000</pubDate>
		<dc:creator>Lucas_marcal</dc:creator>
				<category><![CDATA[Flash]]></category>

		<guid isPermaLink="false">http://www.mxstudio.com.br/?p=2878</guid>
		<description><![CDATA[Salve Pessoal No meu primeiro artigo sobre Actionscript 3.0 eu mostro uma classe que eu fiz para validar campos de formularios. [coolcode lang="actionscript"] /** * @autor: Lucas Marçal * @email: inbox@lucasmarcal.com.br * @date: 15/05/2009 * @coment: para adicionar um evento ao modificar o conteudo do campo * de texto registrar o evento * textInput.addEventListener(Event.CHANGE,clicou); * [...]]]></description>
			<content:encoded><![CDATA[<p><span style="font-family: 'Lucida Grande',Verdana,Arial,'Bitstream Vera Sans',sans-serif; font-size: 13px; line-height: 19px; white-space: pre-wrap;">Salve Pessoal<br />
No meu primeiro artigo sobre Actionscript 3.0 eu mostro uma classe que eu fiz para validar campos de formularios.</p>
<p>[coolcode lang="actionscript"]<br />
/**<br />
* @autor: <span>Lucas</span> <span>Marçal</span><br />
* @email: <a href="mailto:inbox@lucasmarcal.com.br" target="_blank">inbox@lucasmarcal.com.br</a><br />
* @date:  15/05/2009<br />
* @coment: para adicionar um evento ao modificar o conteudo do campo<br />
* de texto registrar o evento<br />
* textInput.addEventListener(Event.CHANGE,clicou);<br />
* public function clicou (e:Event)<br />
{<br />
//trace(&#8220;Mudando&#8221;)<br />
}<br />
* */<br />
package owinteractive.utils<br />
{<br />
import flash.display.MovieClip;<br />
import flash.events.FocusEvent;<br />
import flash.text.TextField;<br />
import gs.easing.*<br />
import gs.*</p>
<p>public class Validation extends MovieClip<br />
{<br />
public var textInput:   TextField;<br />
public var tipo:        String;<br />
public  var textStatus:  Boolean;<br />
public var textOutput:  TextField;<br />
public var textName:    String;<br />
public var mcStatus:    MovieClip;<br />
public var limpar:      Boolean;</p>
<p>public function Validation (_txtCamp:TextField,_type:String,_txtResp:TextField,_txtName:String,_mcStatus:MovieClip,_clear:Boolean):void<br />
{<br />
this.textInput = _txtCamp;<br />
this.tipo = _type;<br />
this.textStatus = false;<br />
this.textOutput = _txtResp;<br />
this.textName = _txtName;</p>
<p>if (_mcStatus != null)<br />
{<br />
this.mcStatus = _mcStatus;<br />
}<br />
this.limpar = _clear;<br />
this.textInput.addEventListener(FocusEvent.FOCUS_IN, onIn);<br />
this.textInput.addEventListener(FocusEvent.FOCUS_OUT,onOut);<br />
}</p>
<p>public function onIn(f:FocusEvent):void<br />
{<br />
//trace(&#8220;Selecionou &#8221; + <a href="http://f.target.name/" target="_blank">f.target.name</a>)<br />
if (this.limpar == true)<br />
{<br />
f.target.text = &#8220;&#8221;<br />
}<br />
else<br />
{<br />
trace(&#8220;Não Limpar campo&#8221;)<br />
}<br />
}</p>
<p>public function onOut(f:FocusEvent):void<br />
{<br />
if(this.tipo == &#8220;email&#8221;)<br />
{<br />
this.emailValidation(f)<br />
}<br />
else<br />
{<br />
this.textValidation(f)<br />
}<br />
}</p>
<p>public function textValidation(t:*):void<br />
{<br />
if(t.target.text == &#8220;&#8221;)<br />
{<br />
//trace(&#8220;Campo Vazio&#8221;)<br />
this.textStatus = false<br />
this.textOutput.text = &#8220;Preencher o campo &#8221; + this.textName<br />
if (this.mcStatus != null)<br />
{<br />
this.mcStatus.gotoAndStop(3)<br />
}<br />
}<br />
else<br />
{<br />
//trace(&#8220;Campo Preenchido&#8221;)<br />
this.textStatus = true<br />
if (this.mcStatus != null)<br />
{<br />
this.mcStatus.gotoAndPlay(2)<br />
TweenMax.to(this.mcStatus, 0.5, { alpha:0, ease:Linear.easeNone,delay:2,onComplete:retornaStatus} );<br />
}</p>
<p>}<br />
}<br />
public function emailValidation(t:*):void<br />
{<br />
var email:String = t.target.text;<br />
var arroba:Number = email.indexOf(&#8220;@&#8221;);<br />
var ponto:Number = email.lastIndexOf(&#8220;.&#8221;);<br />
var resp:Boolean = arroba &gt; 0 &amp;&amp; ponto &gt; arroba;</p>
<p>if(resp == true)<br />
{<br />
//trace(&#8220;Email Correto&#8221;)<br />
this.textStatus = true<br />
if (this.mcStatus != null)<br />
{<br />
this.mcStatus.gotoAndStop(2);<br />
TweenMax.to(this.mcStatus, 0.5, { alpha:0, ease:Linear.easeNone,delay:2,onComplete:retornaStatus} );<br />
}</p>
<p>}<br />
else<br />
{<br />
//trace(&#8220;Preencher corretamente&#8221;)<br />
this.textStatus = false<br />
this.textOutput.text = &#8220;Campo &#8221; + this.textName + &#8221; incorreto&#8221;<br />
if (this.mcStatus !=  null)<br />
{<br />
this.mcStatus.gotoAndStop(3)<br />
}</p>
<p>}<br />
}</p>
<p>public function getTextStatus():Boolean<br />
{<br />
return textStatus<br />
}<br />
public function retornaStatus():void<br />
{<br />
if (this.mcStatus != null)<br />
{<br />
this.mcStatus.gotoAndStop(1);<br />
this.mcStatus.alpha = 1<br />
}</p>
<p>}</p>
<p>}<br />
}<br />
[/coolcode]</p>
<p>Abraço a todos</span> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.mxstudio.com.br/desenvolvimento/flash/validando-campos-de-formulario-no-actionscript-3-0/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Flash Remoting + ColdFusion + AMFPHP</title>
		<link>http://www.mxstudio.com.br/desenvolvimento/flash/flash-remoting-coldfusion-amfphp/</link>
		<comments>http://www.mxstudio.com.br/desenvolvimento/flash/flash-remoting-coldfusion-amfphp/#comments</comments>
		<pubDate>Tue, 03 Nov 2009 23:00:56 +0000</pubDate>
		<dc:creator>Lucas_marcal</dc:creator>
				<category><![CDATA[Coldfusion]]></category>
		<category><![CDATA[Flash]]></category>

		<guid isPermaLink="false">http://www.mxstudio.com.br/?p=2833</guid>
		<description><![CDATA[Salve pessoal Historicamente eu sempre trabalhei com ColdFusion isso já tem alguns anos, porém nos últimos 2 anos e venho trabalhando bastante com PHP por motivos óbvios, a falta de programador ColdFusion visto que eu não faça mais todo o processo de desenvolvimento de um site. Porém essa semana eu tive uma demanda de um [...]]]></description>
			<content:encoded><![CDATA[<p>Salve pessoal<br />
Historicamente eu sempre trabalhei com ColdFusion isso já tem alguns anos, porém nos últimos 2 anos e venho trabalhando bastante com PHP por motivos óbvios, a falta de programador ColdFusion visto que eu não faça mais todo o processo de desenvolvimento de um site.</p>
<p>Porém essa semana eu tive uma demanda de um site feito em flash que deveria consumir métodos de um CFC (ColdFusion Componente), como eu não fazia isso desde a época que eu trabalhava com AS2 decidi escrever uma nova classe para conexão em AS3 e foi exatamente ai que meus problemas começaram.</p>
<p>Primeiramente eu teria que instalar o ColdFusion 8 na minha maquina e de preferência ele deveria rodar em cima do Apache, para isso eu usei o Tutorial do meu brother Marcio Nakano:<br />
<strong><a href="http://www.zetaiweb.com.br/blog/index.php/2008/09/instalando-servidor-apache-com-mysql-e-as-linguagens-coldfusion-e-php/">Instalando servidor Apache com Mysql e as linguagens ColdFusion e PHP.</a></strong></p>
<p>Feito isso (e depois desfeito, pois achei que isso poderia ser a causa do erro que eu descrevo a seguir) agora era a hora de escrever a classe, mas por onde começar, Google é a solução? Não foi bem assim.</p>
<p>O material que fala sobre Flash Remoting + ColdFusion na web é bem fraco e muito confuso sem falar que a grande maioria é em inglês o que dificultou um pouco mais o entendimento já que não sou um expert na língua do “Tio Sam”, abaixo estão listados alguns dos melhores que encontrei:<br />
<strong><a href="http://delicious.com/theflashcoder/flashremoting?detail=3">Delicious Flash Remoting</a></strong></p>
<p>Foi então que tive a feliz idéia de Twittar essa minha raiva e logo depois recebi uma mensagem do <a href="http://twitter.com/netoleal">Neto Leal</a> e de <a href="http://twitter.com/bribeiro">Bruno Ribeiro</a> me oferecendo ajuda, na parte do <a href="http://twitter.com/netoleal">Neto Leal</a> ele me indicou esse link:<br />
<strong><a href="http://livedocs.adobe.com/coldfusion/8/htmldocs/help.html?content=othertechnologies_07.html">Ativando Flash Remoting</a></strong></p>
<p>Mesmo fazendo o que o link indica o erro ainda persistia foi então que comecei a trocar idéia com o <a href="http://twitter.com/bribeiro">Bruno Ribeiro</a>, depois de algumas dicas e do envio da classe que ele mesmo usa para fazer isso eu consegui conectar e consumir um método do ColdFusion.</p>
<p>Eu sempre digo isso, mas é bom reforçar, na vida uma das melhores coisas é ter amigos e eu agradeço ao <a href="http://twitter.com/netoleal">Neto Leal</a> e ao <a href="http://twitter.com/bribeiro">Bruno Ribeiro</a> pela ajuda, então nada mais lógico do que eu postar aqui a classe que eu fiz baseada nesse longo caminho percorrido para conseguir conectar o Flash ao ColdFusion e ao AMFPHP, lembrando que essa classe foi baseada na classe do <a href="http://twitter.com/bribeiro">Bruno Ribeiro</a> e não tenho a pretensão de achar que ela é a melhor do mundo, mas pelo menos ela funciona com ColdFusion e AMFPHP, segue o código:</p>
<p><strong>RemotingConexao.as</strong><br />
[coolcode lang="actionscript"]</p>
<p>package lmcosta.remoto.cf<br />
{<br />
import flash.display.MovieClip;</p>
<p>import flash.events.Event;<br />
import flash.events.EventDispatcher;<br />
import flash.events.NetStatusEvent;</p>
<p>import flash.net.NetConnection;<br />
import flash.net.ObjectEncoding;<br />
import flash.net.Responder;</p>
<p>/**<br />
* &#8230;<br />
* @author lmcosta<br />
* @link www.lucasmarcal.com.br/blog &#8211; www.brunoribeiro.net<br />
* @return<br />
* @version 1.0<br />
*/</p>
<p>public class RemotingConexao extends MovieClip<br />
{<br />
public var _servico    :        NetConnection;<br />
public var _responder  :        Responder;<br />
public var _fcnRetorno :        Function;<br />
public var _cfc        :        String;<br />
public var _metodo     :        String;<br />
public var _resultado  :        Object;</p>
<p>public function RemotingConexao()<br />
{<br />
this._responder =                new Responder(resultado, falha);<br />
this._servico   =                new NetConnection();<br />
this._servico.objectEncoding =   ObjectEncoding.AMF0;<br />
this._servico.connect(&#8220;http://127.0.0.1:8500/flashservices/gateway&#8221;);<br />
trace(&#8220;Conectou&#8221;);<br />
}<br />
/**<br />
*<br />
* @param	$cfc = String que contém o caminho do CFC<br />
* @param	$metodo = String com o nome do método do CFC<br />
* @param	$fcnRetorno = Metodo de retorno na referencia dessa classe<br />
* @param	$args = Argumentos<br />
*/<br />
public function consome($cfc:String = &#8220;&#8221; , $metodo:String=&#8221;" , $fcnRetorno:Function = null , $args:Object = null ):void<br />
{<br />
var refCFCMetodo:String = $cfc + &#8220;.&#8221; + $metodo;</p>
<p>this._fcnRetorno = $fcnRetorno;<br />
this._cfc = $cfc;<br />
this._metodo = $metodo;</p>
<p>if ($args == null)<br />
{<br />
this._servico.call.apply(null, [refCFCMetodo, this._responder]);<br />
}<br />
else<br />
{<br />
this._servico.call.apply(null, [refCFCMetodo, this._responder].concat($args));<br />
}</p>
<p>}<br />
/**<br />
*<br />
* @param	f = Objeto que retorna Erros<br />
*/<br />
private function falha(f:Object):void<br />
{<br />
trace(&#8220;fault&#8221;+f.details);<br />
trace(&#8220;fault&#8221;+f.description);<br />
}<br />
/**<br />
*<br />
* @param	re = Objeto que retorna os resultados<br />
* @return  Retorna o valor que veio do CFC na referencia da classe<br />
*/<br />
private function resultado(re:Object):Object<br />
{<br />
this._resultado = re;</p>
<p>if (re != &#8220;&#8221;)<br />
{<br />
this._resultado = re;</p>
<p>if (this._resultado.length)<br />
{<br />
return this._fcnRetorno(this._resultado);<br />
}<br />
else<br />
{<br />
return this._fcnRetorno(false);<br />
}<br />
}<br />
else<br />
{<br />
return this._fcnRetorno(false);<br />
}<br />
}</p>
<p>}</p>
<p>}<br />
[/coolcode]</p>
<p><strong>Consumindo a classe</strong><br />
Para utilizar essa classe você deve criar um novo arquivo no Flash do tipo Actionscript 3.0, depois crie uma classe que no meu caso eu chamei de “Teste.as” e escreva o seguinte:</p>
<p><strong>Teste.as</strong><br />
[coolcode lang="actionscript"]</p>
<p>package<br />
{<br />
import flash.display.MovieClip;<br />
import lmcosta.remoto.cf.RemotingConexao;<br />
/**<br />
* &#8230;<br />
* @author lmcosta<br />
*/<br />
public class Teste extends MovieClip<br />
{<br />
public var re:RemotingConexao</p>
<p>public function Teste()<br />
{<br />
trace(&#8220;Conetando&#8230;&#8230;.&#8221;)<br />
this.re =  new RemotingConexao();<br />
this.re.consome(&#8220;remotoAS3.componente&#8221;, &#8220;ola&#8221;, this.resultadoItem, {msg:&#8221;Seja Bem vindo&#8221;});<br />
}</p>
<p>public function resultadoItem(obj:Object):void<br />
{<br />
trace(&#8220;Tudo certo hora de trampar  &#8221; + obj)<br />
}</p>
<p>}</p>
<p>}<br />
[/coolcode]</p>
<p><strong><a href="http://www.lucasmarcal.com.br/labs/TutorialFlashRemotingAS3.rar">Arquivos do Tutorial</a></strong></p>
<p>Para utilizar a mesma classe para conectar ao AMFPHP basta você trocar o caminho do Gateway na classe RemotingConexao.as e indicar a classe e o método na classe Teste.as<br />
Gostaria mais uma vez de agradecer ao <a href="http://twitter.com/bribeiro">Bruno Ribeir</a>o e ao <a href="http://twitter.com/netoleal">Neto Leal</a> pela ajuda e espero que essa classe possa ajudar a todos.<br />
Até a próxima pessoal e sigam-me pelo <a href="http://www.twitter.com/lmcosta">Twitter</a> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.mxstudio.com.br/desenvolvimento/flash/flash-remoting-coldfusion-amfphp/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Galeria dinâmica de imagens com flash e coldfusion</title>
		<link>http://www.mxstudio.com.br/desenvolvimento/ria/galeria_dinamica_de_imagens_com_flash_e_coldfusion/</link>
		<comments>http://www.mxstudio.com.br/desenvolvimento/ria/galeria_dinamica_de_imagens_com_flash_e_coldfusion/#comments</comments>
		<pubDate>Thu, 16 Mar 2006 00:00:00 +0000</pubDate>
		<dc:creator>Lucas_marcal</dc:creator>
				<category><![CDATA[RIA]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Descri&#231;&#227;o da cria&#231;&#227;o de uma galeria dinamica de fotos, usando flash e coldfusion]]></description>
			<content:encoded><![CDATA[<p><script src="http://www.mxstudio.com.br/js/ColorCode.js"></script></p>
<table style="height: 1833px;" border="0" cellspacing="0" cellpadding="0" width="100%">
<tbody>
<tr>
<td id="colunaTexto" valign="top">
<h1>Rich Internet Application (RIA)-Galeria de Imagens Dinâmicas com Flash e ColdFusion.</h1>
<div id="introcucao">
<p>Salve pessoal, hoje vamos abordar um assunto bem  interessante e procurado na internet, um sistema de galeria de imagens, que  recebe os parâmetros das imagens do banco de dados mysql,  então chega de conversa e vamos a luta.</p>
</div>
<div id="requisitos">
<h3>Pré-Requisitos</h3>
<div>Internet  Information Server (IIS), Coldfusion MX7, MYSQL, Flash 8,  Dreamweaver MX 2004 ou superior</div>
</div>
<div id="objetivo">
<h3>Objetivo.</h3>
<div>Ao final desse tutorial você será capaz de desenvolver  uma galeria dinâmica de imagens com comentários</div>
</div>
<div id="Conteudo">
<h3>Conceitos.</h3>
<div>Para isso usaremos as facilidades das ferramentas  Adobe/Macromedia, como Coldfusion, Dreamweaver e Flash, assim como o Flash  Remoting para interagir com o banco de dados Mysql.</div>
<h3>Conteúdo</h3>
<div>Primeiramente vamos montar um banco de dados Mysql faça  download do arquivo txt que contém as informações do banco.<br />
<a href="http://www.lucasmarcalferreira.com.br/mxstudio/tutorial/galeria/bancoGaleria.txt">Configurações  do banco</a></p>
</div>
<div>Agora que já temos nosso banco devidamente montado, vamos  registrar ele no administrador do Coldfusion, para maiores informações sobre  esse processo veja esses links:<br />
<a href="http://www.mxstudio.com.br/views.tutorial.php?act=view&amp;cid=11&amp;aid=579">Link1</a><br />
<a href="http://www.mxstudio.com.br/views.tutorial.php?act=view&amp;cid=11&amp;aid=522">Link2</a></p>
<p>Feito isso vamos criar nossa tela para cadastro e upload de  imagens o formulário deverá ficar como a figura abaixo:<a href="http://www.lucasmarcalferreira.com.br/mxstudio/tutorial/galeria/bancoGaleria.txt"></a></p>
<p><a href="http://www.lucasmarcalferreira.com.br/mxstudio/tutorial/galeria/bancoGaleria.txt"> </a></p>
</div>
</div>
<div id="imagem"><img src="http://www.mxstudio.com.br/imagens_artigos/http://www.lucasmarcalferreira.com.br/mxstudio/tutorial/galeria/formulario.jpg" alt="" width="550" height="296" /></div>
<div id="texto">
<p>Depois disso vamos configurar o Insert, vá na paleta  Application + Server Behaviors + InsertRecord , na tela que se abre configure  como na imagem abaixo e depois salve essa pagina como Cadastro.cfm, após isso  faça uma lista para visualizar seus resgistros, assunto que não vamos abordar  aqui nessa matéria.</p>
</div>
<div id="img2"><img src="http://www.mxstudio.com.br/imagens_artigos/http://www.lucasmarcalferreira.com.br/mxstudio/tutorial/galeria/insert.jpg" alt="" width="550" height="400" /></div>
<div id="texto2">
<p>Bom já está tudo certo para o insert, porém ainda temos que  fazer o upload da imagem para a pasta especificada, para isso vamos abrir o  código da pagina  ele deve estar como o  código abaixo:</p>
</div>
<div id="codigo" title="cf1">
<p>&lt;cfset  CurrentPage=GetFileFromPath(GetTemplatePath())&gt;<br />
&lt;cfif  IsDefined(&#8220;FORM.MM_InsertRecord&#8221;) AND FORM.MM_InsertRecord EQ  &#8220;form1&#8243;&gt;<br />
&lt;cfquery  datasource=&#8221;galeria&#8221;&gt;<br />
INSERT INTO galeria_tbl (FotoG, FotoP,  Descricao) VALUES (<br />
&lt;cfif IsDefined(&#8220;FORM.fotoG&#8221;)  AND #FORM.fotoG# NEQ &#8220;&#8221;&gt;<br />
&#8216;#FORM.fotoG#&#8217;<br />
&lt;cfelse&gt;<br />
NULL<br />
&lt;/cfif&gt;<br />
,<br />
&lt;cfif IsDefined(&#8220;FORM.fotoP&#8221;) AND  #FORM.fotoP# NEQ &#8220;&#8221;&gt;<br />
&#8216;#FORM.fotoP#&#8217;<br />
&lt;cfelse&gt;<br />
NULL<br />
&lt;/cfif&gt;<br />
,<br />
&lt;cfif  IsDefined(&#8220;FORM.descricao&#8221;) AND #FORM.descricao# NEQ &#8220;&#8221;&gt;<br />
&#8216;#FORM.descricao#&#8217;<br />
&lt;cfelse&gt;<br />
NULL<br />
&lt;/cfif&gt;<br />
)<br />
&lt;/cfquery&gt;<br />
&lt;cflocation url=&#8221;list_fotos.cfm&#8221;&gt;<br />
&lt;/cfif&gt;</p>
</div>
<div id="texto3">
<p>Então nós vamos altera-lo para que receba os parâmetros para  upload das duas imagens, no código antes de começarmos a tag &lt;cfquery&gt;  você vai colocar as seguintes instruções:</p>
</div>
<div id="codigo" title="cf2">
<p>&lt;cffile  action=&#8221;upload&#8221; destination=&#8221;c:\Inetpub\wwwroot\GaleriaImg\Fotos\&#8221;  filefield=&#8221;fotoG&#8221; nameconflict=&#8221;makeunique&#8221;  accept=&#8221;image/pjpeg,image/jpeg,image/gif,image/x-png&#8221;&gt;<br />
&lt;cffile  action=&#8221;upload&#8221;  destination=&#8221;c:\Inetpub\wwwroot\GaleriaImg\Fotos\pequenas\&#8221;  filefield=&#8221;fotoP&#8221; nameconflict=&#8221;makeunique&#8221;  accept=&#8221;image/pjpeg,image/jpeg,image/gif,image/x-png&#8221;&gt;<br />
&lt;cfset img1 = &#8220;File.ServerFile&#8221;&gt;<br />
&lt;cfset img2 = &#8220;File.ServerFile&#8221;&gt;</p>
</div>
<div id="texto4">
<p>Ainda teremos que alterar os parâmetros de insert do SQL, no  final nosso código deverá ficar da seguinte maneira:</p>
</div>
<div id="codigo" title="cf3">
<p>&lt;cfset  CurrentPage=GetFileFromPath(GetTemplatePath())&gt;<br />
&lt;cfif  IsDefined(&#8220;FORM.MM_InsertRecord&#8221;) AND FORM.MM_InsertRecord EQ  &#8220;form1&#8243;&gt;<br />
&lt;cffile  action=&#8221;upload&#8221;  destination=&#8221;c:\Inetpub\wwwroot\GaleriaImg\Fotos\&#8221;  filefield=&#8221;fotoG&#8221; nameconflict=&#8221;makeunique&#8221;  accept=&#8221;image/pjpeg,image/jpeg,image/gif,image/x-png&#8221;&gt;<br />
&lt;cffile  action=&#8221;upload&#8221;  destination=&#8221;c:\Inetpub\wwwroot\GaleriaImg\Fotos\pequenas\&#8221;  filefield=&#8221;fotoP&#8221; nameconflict=&#8221;makeunique&#8221;  accept=&#8221;image/pjpeg,image/jpeg,image/gif,image/x-png&#8221;&gt;<br />
&lt;cfset  img1 = &#8220;File.ServerFile&#8221;&gt;<br />
&lt;cfset  img2 = &#8220;File.ServerFile&#8221;&gt;<br />
&lt;cfquery  datasource=&#8221;galeria&#8221;&gt;<br />
INSERT INTO galeria_tbl (FotoG, FotoP,  Descricao) VALUES (<br />
&lt;cfif IsDefined(&#8220;img1&#8243;) AND  #FORM.fotoG# NEQ &#8220;&#8221;&gt;<br />
&#8216;#File.ServerFile#&#8217;<br />
&lt;cfelse&gt;<br />
NULL<br />
&lt;/cfif&gt;<br />
,<br />
&lt;cfif IsDefined(&#8220;img2&#8243;) AND  #FORM.fotoP# NEQ &#8220;&#8221;&gt;<br />
&#8216;#File.ServerFile#&#8217;<br />
&lt;cfelse&gt;<br />
NULL<br />
&lt;/cfif&gt;<br />
,<br />
&lt;cfif  IsDefined(&#8220;FORM.descricao&#8221;) AND #FORM.descricao# NEQ &#8220;&#8221;&gt;<br />
&#8216;#FORM.descricao#&#8217;<br />
&lt;cfelse&gt;<br />
NULL<br />
&lt;/cfif&gt;<br />
)<br />
&lt;/cfquery&gt;<br />
&lt;cflocation  url=&#8221;list_fotos.cfm&#8221;&gt;<br />
&lt;/cfif&gt;</p>
</div>
<div id="texto5">
<p>Obs: Fora esse código na sua pagina também há os códigos  html = )<br />
Feito isso vamos criar agora o nosso componente  ColdFusion (CFC), abra um novo documento no Dreamweaver e escolha Coldfusion  Component salve-o como galeriamx</p>
<p>Agora vamos criar uma função para retornar o resultado dos  registro de nossa tabela, para o Flash, a função ficara assim:</p>
</div>
<div id="codigo" title="cf4">
<p>&lt;cfcomponent&gt;<br />
&lt;!&#8212; Instanciando o nome da função e os parametros de  acesso e tipo de retorno&#8212;&gt;<br />
&lt;cffunction  name=&#8221;RetornaFotos&#8221; access=&#8221;remote&#8221; returntype=&#8221;query&#8221;&gt;<br />
&lt;!&#8212; Criando um select  simples para trazer os dados da tabela&#8212;&gt;<br />
&lt;cfquery name=&#8221;q_fotos&#8221;  datasource=&#8221;galeria&#8221;&gt;<br />
SELECT *<br />
FROM  galeria_tbl<br />
ORDER BY  id_galeria ASC<br />
&lt;/cfquery&gt;<br />
&lt;!&#8212;  Passando como parametro de retorno a query&#8212;&gt;<br />
&lt;cfreturn  q_fotos&gt;<br />
&lt;/cffunction&gt;<br />
&lt;/cfcomponent&gt;</p>
</div>
<div id="textoq">
<p>Tudo pronto então vamos ao Flash, para facilitar um pouco  nosso trabalho eu já desenvolvi a interface flash para as fotos, ela é simples  nada de muita “firula” é só para nos servir de parâmetro.</p>
<p><a href="http://www.lucasmarcalferreira.com.br/mxstudio/tutorial/galeria/Interface_galeria.fla">Download  da interface Flash</a></p>
<p>Na camada action escreva o seguinte código:</p>
</div>
<div id="codigo" title="as">
<p>stop();<br />
// Iniciando a conexão com o Flash Remoting<br />
import  mx.debug.*;<br />
import  mx.remoting.*;<br />
// Condição<br />
if (init ==  null) {<br />
init = true;<br />
// Setando o local do  Remoting<br />
NetServices.setDefaultGatewayUrl(&#8220;http://localhost/flashservices/gateway&#8221;);<br />
// Criando  a variável de conexão<br />
conn =  NetServices.createGatewayConnection();<br />
// Criando  a variável de serviço, e setando o componente<br />
service =  conn.getService(&#8220;GaleriaImg.OOP.galeriamx&#8221;, this);<br />
}<br />
/////////////////////////////////////////////////////////////////////////////////////<br />
// Propriedades de componentes<br />
////////////////////////////////////////////////////////////////////////////////////<br />
mcDetalhe._visible = false;<br />
////////////////////////////////////////////////////////////////////////////////////<br />
function RetornaFotos_Result(result) {<br />
// For para  correr sobre o resultado<br />
for (var i = 0; i&lt;result.length;  i++) {<br />
// Chama  MovieClip da Biblioteca<br />
var ItemAtual:MovieClip =  _root.base.conteiner.attachMovie(&#8220;fotoP&#8221;, &#8220;fotop&#8221;+i, i);<br />
// define variavés<br />
ItemAtual.id =  result.items[i].id_galeria;<br />
ItemAtual.fotoP =  result.items[i].FotoP;<br />
ItemAtual.fotoG =  result.items[i].FotoG;<br />
ItemAtual.descricao  = result.items[i].Descricao;<br />
//  O movieClip &#8220;Carrega&#8221; deve ser do mesmo tamanho da Foto Pequena  cadastra-da no banco de dados.<br />
ItemAtual.carrega.loadMovie(&#8220;Fotos/pequenas/&#8221;+ItemAtual.fotoP);<br />
//  Regra para paginação<br />
if  (i%6 == 0) {<br />
ItemAtual._x = 0;<br />
ItemAtual._y  = anterior._y+anterior._height+10;<br />
} else {<br />
ItemAtual._x  = anterior._x+anterior._width+10;<br />
ItemAtual._y  = anterior._y;<br />
}<br />
anterior  = ItemAtual;<br />
//  Ação ao MovieClip para chamar imagem grande<br />
ItemAtual.onPress = function() {<br />
_root.mcDetalhe._visible  = true;<br />
// O  movieClip &#8220;Carrega&#8221; deve ser do mesmo tamanho da Foto Grande  cadastra-da no banco de dados.<br />
_root.mcDetalhe.carrega.loadMovie(&#8220;Fotos/&#8221;+this.fotoG);<br />
_root.mcDetalhe.txtDetalhe.text  = this.descricao<br />
};<br />
//  Ação para fechar a tela de detalhe.<br />
_root.mcDetalhe.fechar.onPress =  function() {<br />
_root.mcDetalhe._visible  = false;<br />
};<br />
}<br />
}<br />
service.RetornaFotos();</p>
</div>
<div id="final">
<h3>Considerações Finais</h3>
<div>
<p>Bom pessoal por hoje é só espero que vocês tenham gostado,  para ver essa galeria um pouco mais customizada, é só visitar o site da banda <a href="http://www.audisete.com.br/">Audisete</a> que lá eu usei algumas coisas a mais para deixar ela mais bonitinha.</p>
<h3>Aviso Importante</h3>
<p>Desde semana passada o meu blog oficial mudou click <a href="http://www.lucasmarcalferreira.com.br/wordpress/" target="_blank">aqui</a> para conhecer meu novo blog.</p>
<p>Abraços</p>
</div>
</div>
</td>
</tr>
</tbody>
</table>
<p><script type="text/javascript"><!--
FormatAS(new Array('as'));
// --></script></p>
<p><script type="text/javascript"><!--
FormatCF(new Array('cf1', 'cf2', 'cf3', 'cf4'));
// --></script> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.mxstudio.com.br/desenvolvimento/ria/galeria_dinamica_de_imagens_com_flash_e_coldfusion/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Sistema de Noticias Flash e Coldfusion &#8211; Parte Final</title>
		<link>http://www.mxstudio.com.br/desenvolvimento/ria/sistema_de_noticias_flash_e_coldfusion___parte_final/</link>
		<comments>http://www.mxstudio.com.br/desenvolvimento/ria/sistema_de_noticias_flash_e_coldfusion___parte_final/#comments</comments>
		<pubDate>Thu, 16 Mar 2006 00:00:00 +0000</pubDate>
		<dc:creator>Lucas_marcal</dc:creator>
				<category><![CDATA[RIA]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Vamos adcionar as funcionalidades de editar e deletar registros.]]></description>
			<content:encoded><![CDATA[<p><script src="http://www.mxstudio.com.br/js/ColorCode.js"></script></p>
<table border="0" cellspacing="0" cellpadding="0" width="100%">
<tbody>
<tr>
<td id="colunaTexto" valign="top">
<h1>Sistema de noticia parte final – editar e deletar dados</h1>
<h3>Introdução</h3>
<p>Vimos nos 2 outros tutoriais como montar um sistema de  noticias com flash e coldfusion, no primeiro tratamos do Insert ao banco, no  segundo fizemos uma busca dos registros do banco de dados, e agora na ultima  versão desse tutorial vamos aprender a como deletar e atualizar os registros do  banco.</p>
<h3>Pré-Requisitos</h3>
<p>Flash 8<br />
Dreanweaver 8<br />
Coldfusion MX 7<br />
Mysql<br />
<a href="http://www.lucasmarcalferreira.com.br/mxstudio/tutorial/noticia/final.rar">Arquivos de exemplo</a></p>
<h3><strong>Objetivo</strong></h3>
<p>Adcionar a nosso sistema as funcionalidades de editar e  deletar os registros.</p>
<h3><strong>Conceitos</strong></h3>
<p>Para isso usaremos as facilidades do flash remoting  e coldfusion através de um sistema moldado  para funcionar perfeitamente, não é de interesse nesse tutorial ensinar coisas  como por exemplo fazer com que os campos de texto se apresentem em formato HTML, nem que  as datas das noticias sejam validadas, isso veremos em futuros tutoriais.</p>
<h3><strong>Conteúdo</strong></h3>
<p>Abra o arquivo que está disponível para download e verifique  os novos movieClips adicionados para que as aplicações funcionem corretamente.</p>
<div id="codigo" title="cfc">
<p>&lt;cfcomponent&gt;<br />
&lt;!&#8212; Função para retorno de dados da tabela Noticia.  &#8212;&gt;<br />
&lt;cffunction  name=&#8221;RetornaNoticia&#8221; access=&#8221;remote&#8221;  returntype=&#8221;query&#8221;&gt;<br />
&lt;cfquery  name=&#8221;q_noticia&#8221; datasource=&#8221;lucasmarcal&#8221;&gt;<br />
SELECT *<br />
FROM noticia<br />
ORDER BY  id_noticia DESC<br />
&lt;/cfquery&gt;<br />
&lt;cfreturn  q_noticia&gt;<br />
&lt;/cffunction&gt;<br />
&lt;!&#8212; Fim da Função  &#8212;&gt;</p>
<p>&lt;!&#8212;  Função para Inserir dados na tabela Noticia &#8212;&gt;<br />
&lt;cffunction  name=&#8221;InserirNoticia&#8221; access=&#8221;remote&#8221;  returntype=&#8221;boolean&#8221;&gt;<br />
&lt;cfargument  name=&#8221;dia&#8221; required=&#8221;yes&#8221; type=&#8221;string&#8221;&gt;<br />
&lt;cfargument  name=&#8221;autor&#8221; required=&#8221;yes&#8221; type=&#8221;string&#8221;&gt;<br />
&lt;cfargument  name=&#8221;assunto&#8221; required=&#8221;yes&#8221; type=&#8221;string&#8221;&gt;<br />
&lt;cfargument  name=&#8221;mensagem&#8221; required=&#8221;yes&#8221; type=&#8221;string&#8221;&gt;<br />
&lt;cfquery  name=&#8221;q_inserir&#8221; datasource=&#8221;lucasmarcal&#8221;&gt;<br />
INSERT<br />
INTO  noticia<br />
(<br />
data,<br />
autor,<br />
assunto,<br />
mensagem<br />
)<br />
VALUES<br />
(<br />
&#8216;#Arguments.dia#&#8217;,<br />
&#8216;#Arguments.autor#&#8217;,<br />
&#8216;#Arguments.assunto#&#8217;,<br />
&#8216;#Arguments.mensagem#&#8217;<br />
)<br />
&lt;/cfquery&gt;<br />
&lt;cfreturn  true&gt;<br />
&lt;/cffunction&gt;</p>
<p>&lt;!&#8212;  Fim da Função &#8212;&gt;</p>
<p>&lt;!&#8212;  Função para Editar dados &#8212;&gt;<br />
&lt;cffunction  name=&#8221;EditarNoticia&#8221; access=&#8221;remote&#8221;  returntype=&#8221;boolean&#8221;&gt;<br />
&lt;cfargument name=&#8221;id&#8221;  required=&#8221;yes&#8221; type=&#8221;numeric&#8221;&gt;<br />
&lt;cfargument name=&#8221;dia&#8221;  required=&#8221;yes&#8221; type=&#8221;string&#8221;&gt;<br />
&lt;cfargument name=&#8221;autor&#8221;  required=&#8221;yes&#8221; type=&#8221;string&#8221;&gt;<br />
&lt;cfargument name=&#8221;assunto&#8221;  required=&#8221;yes&#8221; type=&#8221;string&#8221;&gt;<br />
&lt;cfargument name=&#8221;mensagem&#8221;  required=&#8221;yes&#8221; type=&#8221;string&#8221;&gt;<br />
&lt;!&#8212; &lt;CFTRY&gt; inicia a tentativa&#8212;&gt;<br />
&lt;cftry&gt;<br />
&lt;!&#8212;  Aqui começã o transiction gravando passo a passo as ações.&#8212;&gt;<br />
&lt;cftransaction  action=&#8221;begin&#8221;&gt;<br />
&lt;!&#8212;Inicio do Update  &#8212;&gt;<br />
&lt;cfquery  datasource=&#8221;lucasmarcal&#8221;&gt;<br />
UPDATE  noticia SET<br />
data  = &lt;cfqueryparam cfsqltype=&#8221;cf_sql_char&#8221;  value=&#8221;#arguments.dia#&#8221;&gt; ,<br />
autor  = &lt;cfqueryparam cfsqltype=&#8221;cf_sql_char&#8221;  value=&#8221;#arguments.autor#&#8221;&gt; ,<br />
assunto  = &lt;cfqueryparam cfsqltype=&#8221;cf_sql_char&#8221;  value=&#8221;#arguments.assunto#&#8221;&gt; ,<br />
mensagem  = &lt;cfqueryparam cfsqltype=&#8221;cf_sql_char&#8221; value=&#8221;#arguments.mensagem#&#8221;&gt;<br />
WHERE id_noticia= &lt;cfqueryparam  cfsqltype=&#8221;cf_sql_integer&#8221; value=&#8221;#arguments.id#&#8221;&gt;<br />
&lt;/cfquery&gt;<br />
&lt;!&#8212;  Aqui se tudo ocorreu bem ele termina e grava a ação de update&#8212;&gt;<br />
&lt;cftransaction  action=&#8221;commit&#8221; /&gt;<br />
&lt;!&#8212;Se  tudo deu certo ele retorna True &#8212;&gt;<br />
&lt;cfset  retorno = true&gt;<br />
&lt;!&#8212;  fecha a tag transaction&#8212;&gt;<br />
&lt;/cftransaction&gt;<br />
&lt;!&#8212;tratamento  de erro, ou parecido com o Else &#8212;&gt;<br />
&lt;cfcatch  type=&#8221;any&#8221;&gt;<br />
&lt;!&#8212;Usa  o transaction para limpar da memoria o que ja foi feito e deu erro &#8212;&gt;<br />
&lt;cftransaction  action=&#8221;rollback&#8221; /&gt;<br />
&lt;!&#8212;  Retorno para o Flash&#8212;&gt;<br />
&lt;cfset  retorno = false&gt;<br />
&lt;!&#8212;  Fecha o cfCatch&#8212;&gt;<br />
&lt;/cfcatch&gt;<br />
&lt;!&#8212;Fecha  a tentativa &#8212;&gt;<br />
&lt;/cftry&gt;<br />
&lt;cfreturn  retorno&gt;<br />
&lt;/cffunction&gt;</p>
<p>&lt;!&#8212;  Fim da Função &#8212;&gt;</p>
<p>&lt;!&#8212;  Inicio da Função de Delet &#8212;&gt;<br />
&lt;cffunction  name=&#8221;DeletaNoticia&#8221; access=&#8221;remote&#8221;  returntype=&#8221;boolean&#8221;&gt;<br />
&lt;cfargument name=&#8221;id&#8221;  required=&#8221;yes&#8221; type=&#8221;numeric&#8221;&gt;<br />
&lt;cfquery  name=&#8221;qDelete&#8221; datasource=&#8221;lucasmarcal&#8221;&gt;<br />
DELETE  FROM noticia<br />
WHERE  id_noticia= &lt;cfqueryparam cfsqltype=&#8221;cf_sql_integer&#8221;  value=&#8221;#arguments.id#&#8221;&gt;<br />
&lt;/cfquery&gt;<br />
&lt;cfreturn  true&gt;<br />
&lt;/cffunction&gt;</p>
<p>&lt;!&#8212;  Fim da Função de delet &#8212;&gt;</p>
<p>&lt;!&#8212; Função de Busca &#8212;&gt;<br />
&lt;cffunction name=&#8221;RetornaBusca&#8221;  access=&#8221;remote&#8221; returntype=&#8221;any&#8221;&gt;<br />
&lt;cfargument name=&#8221;palavra&#8221;  required=&#8221;yes&#8221; type=&#8221;string&#8221;&gt;<br />
&lt;cfquery name=&#8221;qBusca&#8221;  datasource=&#8221;lucasmarcal&#8221;&gt;<br />
SELECT *<br />
FROM noticia<br />
WHERE assunto LIKE &lt;cfqueryparam  cfsqltype=&#8221;cf_sql_char&#8221; value=&#8221;%#arguments.palavra#%&#8221;&gt;<br />
&lt;/cfquery&gt;<br />
&lt;cfif #qBusca.RecordCount# LTE 0&gt;<br />
&lt;cfset qBusca = &#8220;Não  encontrou nada&#8221;&gt;<br />
&lt;/cfif&gt;<br />
&lt;cfreturn  qBusca&gt;<br />
&lt;/cffunction&gt;<br />
&lt;!&#8212; Fim da  Função &#8212;&gt;</p>
<p>&lt;/cfcomponent&gt;</p>
</div>
<p>Acima estão todas as funções ( métodos ) que vamos utilizar  para que o sistema funcione corretamente, salve esse arquivo como mxstudio.cfc  dentro da pasta OOP</p>
<p>Agora no flash, vá na camada action de sua aplicação no  primeiro frame , logo abaixo da ultima linha, que é todo o conteúdo escrito nos  últimos 2 tutoriais, nós vamos adcionar as seguintes linhas de comando.</p>
<div id="codigo" title="as1">
<p>// Ação do Botão que passa os valores<br />
// dos campos de texto dinamicos do<br />
// &#8220;detalhe&#8221; para os campos de texto dinamicos<br />
// de  mcEdit<br />
_root.detalhe.btEditar.onPress  = function() {<br />
_root.mcEdit._visible = true;<br />
_root.mcEdit.EditData.text =  _root.detalhe.detData.text;<br />
_root.mcEdit.EditAutor.text =  _root.detalhe.detAutor.text;<br />
_root.mcEdit.EditAssunto.text  = _root.detalhe.detAssunto.text;<br />
_root.mcEdit.EditMensagem.text  = _root.detalhe.detMensagem.text;<br />
};<br />
//Ação destinada ao botão de salvar<br />
// as alterações, responsável tb<br />
// por chamar o metodo do CFC<br />
// &#8220;EditarNoticia&#8221;<br />
_root.mcEdit.btSalvar.onPress = function() {<br />
service.EditarNoticia({id:vId,  dia:_root.mcEdit.EditData.text, autor:_root.mcEdit.EditAutor.text,  assunto:_root.mcEdit.EditAssunto.text,  mensagem:_root.mcEdit.EditMensagem.text});<br />
trace(id);<br />
};<br />
//Função Metodo (Função) responsável<br />
//por fazer o update do Registro.<br />
function  EditarNoticia_Result(result) {<br />
detalhe._visible = false;<br />
_root.mcEdit._visible = false;<br />
confirma._visible = true;<br />
confirma.rotulo.text  = &#8220;Resgistro atualizado com Sucesso !!!&#8221;;<br />
service.RetornaNoticia();<br />
}<br />
// vamos adcionar aqui   um evento<br />
// para fechar a tela de editar<br />
//  caso o usuário não  click no botão<br />
// de  salvar<br />
_root.mcEdit.fechar.onPress  = function() {<br />
_root.mcEdit._visible = false;<br />
};<br />
// Função de intervalo para fechar<br />
// tela de Deletar<br />
function  fechaDel() {<br />
clearInterval(chamada);<br />
_root.mcConfirmaDel._visible =  false;<br />
}<br />
// Agora vamos trabalhar com o metodo<br />
// para deletar as noticias<br />
// em nosso cfc ele se chama<br />
// &#8220;DeletaNoticia&#8221;, nesse caso vamos<br />
// montar aqui uma função que recebe<br />
// esse metodo do cfc, ela deve ficar assim<br />
function DeletaNoticia_Result(result) {<br />
// aqui  dentro vamos colocar as<br />
// ações  que esse metodo deve fazer<br />
// quando  receber a resposta do CFC<br />
// dentro  vamos chamar o set Interval<br />
chamada =  setInterval(fechaDel, 2000);<br />
_root.mcConfirmaDel.btNao._visible  = false;<br />
_root.mcConfirmaDel.btSim._visible =  false;<br />
_root.mcConfirmaDel._visible = true;<br />
_root.mcConfirmaDel.status.text  = &#8221; &#8220;;<br />
_root.mcConfirmaDel.txtNomeDel.text  = &#8220;Noticia Excluida com sucesso&#8221;;<br />
detalhe._visible = false;<br />
_root.mcEdit._visible = false;<br />
service.RetornaNoticia();<br />
}<br />
// agora vamos adcionar<br />
// um evento ao botão que chama<br />
// a  tela de  confirmação<br />
// de exclusão de noticia<br />
_root.detalhe.btDeletar.onPress  = function() {<br />
_root.mcConfirmaDel._visible  = true;<br />
_root.mcConfirmaDel.status.text  = &#8220;Deseja Excluir essa Noticia ?&#8221;<br />
_root.mcConfirmaDel.btNao._visible =  true;<br />
_root.mcConfirmaDel.btSim._visible =  true;<br />
_root.mcConfirmaDel.txtNomeDel.text  = _root.detalhe.detAssunto.text;<br />
};<br />
// Agora vamos colocar<br />
// a um evento ao botão que<br />
// irá fechar a tela de confirmação<br />
// de exclusão caso o usuário<br />
// clique na opção &#8220;Não&#8221;<br />
_root.mcConfirmaDel.btNao.onPress  = function() {<br />
_root.mcConfirmaDel._visible  = false;<br />
};<br />
// agora sim vamos colocar<br />
// a ação que faz a exclusão<br />
// do registro no banco de dados<br />
// vamos chamar então a função<br />
// &#8220;DeletaNoticia&#8221; e passa um unico<br />
// parametro para elá que será<br />
// o id que está sendo requerido<br />
// la no CFC dentro da função de<br />
// exclusão.<br />
_root.mcConfirmaDel.btSim.onPress = function() {<br />
service.DeletaNoticia({id:vId});<br />
};</p>
</div>
<p>Ao final de tudo nosso Action Script deve estar da seguinte  forma:</p>
<div id="codigo" title="as2">
<p>// Iniciando a conexão com o Flash Remoting<br />
import  mx.debug.*;<br />
import  mx.remoting.*;<br />
// Condição<br />
if (init ==  null) {<br />
init = true;<br />
// Setando o local do  Remoting<br />
NetServices.setDefaultGatewayUrl(&#8220;http://www.lucasmarcalferreira.com.br/flashservices/gateway&#8221;);<br />
// Criando  a variável de conexão<br />
conn =  NetServices.createGatewayConnection();<br />
// Criando  a variável de serviço, e setando o componente<br />
service =  conn.getService(&#8220;OOP.mxstudio&#8221;, this);<br />
}<br />
////////////////////////////////////////////////////<br />
//Propriedades de componentes e MovieClips<br />
confirma._visible = false;<br />
detalhe._visible  = false;<br />
mcEdit._visible  = false;<br />
mcEdit.fundo.useHandCursor = false;<br />
btLista._visible = false;<br />
mcConfirmaDel._visible = false;<br />
////////////////////////////////////////////////////<br />
// Eventos do Data Grid.<br />
var  objDg:Object = new Object();<br />
objDg.change = function(eventObject) {<br />
/*<br />
selectedItem  = Retorna o resultado do item selecionado no DataGrid<br />
*/<br />
detalhe._visible = true;<br />
vId =  dgDados.selectedItem.id_noticia;<br />
detalhe.detData.text =  dgDados.selectedItem.data;<br />
detalhe.detAutor.text =  dgDados.selectedItem.autor;<br />
detalhe.detAssunto.text  = dgDados.selectedItem.assunto;<br />
detalhe.detMensagem.text  = dgDados.selectedItem.mensagem;<br />
};<br />
dgDados.addEventListener(&#8220;change&#8221;, objDg);<br />
////////////////////////////////////////////////////<br />
//  Criando Funções<br />
////////////////////////////////////////////////////<br />
// Função para retorno das noticias<br />
function RetornaNoticia_Result(result) {<br />
// Data  Provider é responsável por inserir o resultado de &#8220;result&#8221; dentro do  DataGrid<br />
dgDados.dataProvider  = result;<br />
dgDados.removeAllColumns();<br />
dgDados.columnNames  = ["data", "autor", "assunto"];<br />
dgDados.getColumnAt(0).headerText  = &#8220;Data de Publicação&#8221;;<br />
dgDados.getColumnAt(1).headerText  = &#8220;Autor Notícia&#8221;;<br />
dgDados.getColumnAt(2).headerText  = &#8220;Assunto Notícia&#8221;;<br />
dgDados.getColumnAt(0).width  = 150;<br />
// tamanho  em Pixels do cabeçalho e colunas<br />
dgDados.getColumnAt(1).width  = 150;<br />
// tamanho  em Pixels do cabeçalho e colunas<br />
dgDados.getColumnAt(2).width  = 150;<br />
}<br />
// Chamando a Função de Retorno de Noticias<br />
service.RetornaNoticia();<br />
////////////////////////////////////////////////////<br />
// Função para inserir noticias<br />
function  InserirNoticia_Result(result) {<br />
if (result) {<br />
txtData.text =  &#8220;&#8221;;<br />
txtAutor.text =  &#8220;&#8221;;<br />
txtAssunto.text =  &#8220;&#8221;;<br />
txtMensagem.text =  &#8220;&#8221;;<br />
confirma._visible =  true;<br />
confirma.rotulo.text  = &#8220;Os dados Foram gravados com sucesso !&#8221;;<br />
}<br />
}<br />
////////////////////////////////////////////////////<br />
btGravar.onPress = function() {<br />
// Chamando  Função de Inserir Noticias e passando os argumentos necessarios<br />
// para o  coldfusion.<br />
// e faz  uma verificação para certificar que todos os campos foram preenchidos  corretamente.<br />
if  (txtData.text == &#8220;&#8221; || txtAutor.text == &#8220;&#8221; ||  txtAssunto.text == &#8220;&#8221; || txtMensagem.text == &#8220;&#8221;) {<br />
confirma._visible  = true;<br />
confirma.rotulo.text  = &#8220;Preencha todos os campos !&#8221;;<br />
} else {<br />
service.InserirNoticia({dia:txtData.text,  autor:txtAutor.text, assunto:txtAssunto.text, mensagem:txtMensagem.text});<br />
service.RetornaNoticia();<br />
}<br />
};<br />
////////////////////////////////////////////////////<br />
// Função de Busca<br />
function RetornaBusca_Result(result) {<br />
// Verifica  se foi digitado alguma coisa no campo de Busca, e não tiver nada<br />
// digitado  ele retorna uma mensagem de alerta para que seja inserido<br />
// um  parametro de busca.<br />
if  (_root.txtTermo.text == &#8220;&#8221;) {<br />
confirma._visible  = true;<br />
confirma.rotulo.text  = &#8220;Digite um termo de Busca !&#8221;;<br />
//  se tiver parametro de busca mais o result for == a frase que você<br />
//  criou no CFC &#8220;Não encontrou nada&#8221; então ele retorna a seguinte  mensagem<br />
//  dentro do MovieClip confirma &#8220;Nada foi encontrado com esse parametro&#8221;<br />
} else {<br />
if  (result == &#8220;Não encontrou nada&#8221;) {<br />
confirma._visible  = true;<br />
confirma.rotulo.text  = &#8220;Nada foi encontrado nehum resultado com esse parametro&#8221;;<br />
}  else {<br />
//  Caso seja encontrado o resultado do termo digitado, ele<br />
//  remove os resultados da lista antiga, e coloca os novos<br />
//  resultados.<br />
//  removeAllColumns(); == Remover resultados lista antiga<br />
// columnNames =  ["assunto", "autor"]; == seleciona os campos  &#8220;assunto&#8221; e &#8220;autor&#8221;<br />
//  getColumnAt(0).headerText = &#8220;Assunto relacionado&#8221;; == da o nome ao  cabeçalho<br />
//  getColumnAt(0).width = 262; == Define um tamanho para as colunas do dataGrid<br />
//  dgDados.dataProvider = result; == Adciona o resultado da Busca ao DataGrid<br />
dgDados.removeAllColumns();<br />
dgDados.columnNames  = ["assunto", "autor"];<br />
dgDados.getColumnAt(0).headerText  = &#8220;Assunto relacionado&#8221;;<br />
dgDados.getColumnAt(1).headerText  = &#8220;Autor da Noticia&#8221;;<br />
dgDados.getColumnAt(0).width  = 262;<br />
dgDados.getColumnAt(1).width  = 262;<br />
dgDados.dataProvider  = result;<br />
btLista._visible  = true;<br />
}<br />
}<br />
}<br />
// Chama a função de RetornaBusca e passa como parametro  &#8220;palavra&#8221;<br />
btBuscar.onPress = function() {<br />
service.RetornaBusca({palavra:_root.txtTermo.text});<br />
};<br />
// Botão Para listar novamente todas as noticias<br />
btLista.onPress = function() {<br />
service.RetornaNoticia();<br />
};<br />
////////////////////////////////////////////////////<br />
/// CSS COMPONETES Data Grid<br />
_root.dgDados.setStyle(&#8220;themeColor&#8221;, 0xcccccc);<br />
_root.dgDados.setStyle(&#8220;selectionColor&#8221;,  0xffffff);<br />
_root.dgDados.setStyle(&#8220;ollOverColor&#8221;,  0xcccccc);<br />
_root.dgDados.setStyle(&#8220;textrollOverColor&#8221;,  0xffffff);<br />
_root.dgDados.setStyle(&#8220;textselectionColor&#8221;,  0xffffff);<br />
_root.dgDados.setStyle(&#8220;headerColor&#8221;,  0&#215;999999);<br />
_root.dgDados.setStyle(&#8220;color&#8221;,  0xffffff);<br />
_root.dgDados.setStyle(&#8220;backgroundColor&#8221;,  0&#215;006699);<br />
_root.dgDados.setStyle(&#8220;selectionColor&#8221;,  0xffffff);<br />
_root.dgDados.setStyle(&#8220;ollOverColor&#8221;,  0xcccccc);<br />
_root.dgDados.setStyle(&#8220;headerColor&#8221;,  0&#215;000000);<br />
////////////////////////////////////////////////////<br />
// Ação do Botão que passa os valores<br />
// dos campos de texto dinamicos do<br />
// &#8220;detalhe&#8221; para os campos de texto dinamicos<br />
// de  mcEdit<br />
_root.detalhe.btEditar.onPress  = function() {<br />
_root.mcEdit._visible = true;<br />
_root.mcEdit.EditData.text =  _root.detalhe.detData.text;<br />
_root.mcEdit.EditAutor.text =  _root.detalhe.detAutor.text;<br />
_root.mcEdit.EditAssunto.text  = _root.detalhe.detAssunto.text;<br />
_root.mcEdit.EditMensagem.text  = _root.detalhe.detMensagem.text;<br />
};<br />
//Ação destinada ao botão de salvar<br />
// as alterações, responsável tb<br />
// por chamar o metodo do CFC<br />
// &#8220;EditarNoticia&#8221;<br />
_root.mcEdit.btSalvar.onPress = function() {<br />
service.EditarNoticia({id:vId,  dia:_root.mcEdit.EditData.text, autor:_root.mcEdit.EditAutor.text,  assunto:_root.mcEdit.EditAssunto.text,  mensagem:_root.mcEdit.EditMensagem.text});<br />
trace(id);<br />
};<br />
//Função Metodo (Função) responsável<br />
//por fazer o update do Registro.<br />
function  EditarNoticia_Result(result) {<br />
detalhe._visible = false;<br />
_root.mcEdit._visible = false;<br />
confirma._visible = true;<br />
confirma.rotulo.text  = &#8220;Resgistro atualizado com Sucesso !!!&#8221;;<br />
service.RetornaNoticia();<br />
}<br />
// vamos adcionar aqui   um evento<br />
// para fechar a tela de editar<br />
//  caso o usuário não  click no botão<br />
// de  salvar<br />
_root.mcEdit.fechar.onPress  = function() {<br />
_root.mcEdit._visible = false;<br />
};<br />
// Função de intervalo para fechar<br />
// tela de Deletar<br />
function  fechaDel() {<br />
clearInterval(chamada);<br />
_root.mcConfirmaDel._visible =  false;<br />
}<br />
// Agora vamos trabalhar com o metodo<br />
// para deletar as noticias<br />
// em nosso cfc ele se chama<br />
// &#8220;DeletaNoticia&#8221;, nesse caso vamos<br />
// montar aqui uma função que recebe<br />
// esse metodo do cfc, ela deve ficar assim<br />
function DeletaNoticia_Result(result) {<br />
// aqui  dentro vamos colocar as<br />
// ações  que esse metodo deve fazer<br />
// quando  receber a resposta do CFC<br />
// dentro  vamos chamar o set Interval<br />
chamada =  setInterval(fechaDel, 2000);<br />
_root.mcConfirmaDel.btNao._visible  = false;<br />
_root.mcConfirmaDel.btSim._visible  = false;<br />
_root.mcConfirmaDel._visible = true;<br />
_root.mcConfirmaDel.status.text =  &#8221; &#8220;;<br />
_root.mcConfirmaDel.txtNomeDel.text  = &#8220;Noticia Excluida com sucesso&#8221;;<br />
detalhe._visible = false;<br />
_root.mcEdit._visible = false;<br />
service.RetornaNoticia();<br />
}<br />
// agora vamos adcionar<br />
// um evento ao botão que chama<br />
// a  tela de  confirmação<br />
// de exclusão de noticia<br />
_root.detalhe.btDeletar.onPress  = function() {<br />
_root.mcConfirmaDel._visible  = true;<br />
_root.mcConfirmaDel.status.text  = &#8220;Deseja Excluir essa Noticia ?&#8221;<br />
_root.mcConfirmaDel.btNao._visible =  true;<br />
_root.mcConfirmaDel.btSim._visible =  true;<br />
_root.mcConfirmaDel.txtNomeDel.text  = _root.detalhe.detAssunto.text;<br />
};<br />
// Agora vamos colocar<br />
// a um evento ao botão que<br />
// irá fechar a tela de confirmação<br />
// de exclusão caso o usuário<br />
// clique na opção &#8220;Não&#8221;<br />
_root.mcConfirmaDel.btNao.onPress  = function() {<br />
_root.mcConfirmaDel._visible  = false;<br />
};<br />
// agora sim vamos colocar<br />
// a ação que faz a exclusão<br />
// do registro no banco de dados<br />
// vamos chamar então a função<br />
// &#8220;DeletaNoticia&#8221; e passa um unico<br />
// parametro para elá que será<br />
// o id que está sendo requerido<br />
// la no CFC dentro da função de<br />
// exclusão.<br />
_root.mcConfirmaDel.btSim.onPress = function() {<br />
service.DeletaNoticia({id:vId});<br />
};</p>
<p>Detalhe interessante no método “publish” da classe NetStream, que pode ter   três argumentos, sua sintaxe é a seguinte:</p>
</div>
<h3>Considerações Finais</h3>
<p>Ponto agora nosso sistema já está finalizado, execute com  CTRL +ENTER, e se você seguiu todos os passos de todos os tutoriais o seus  sistema também estará funcionando perfeitamente.</p>
<p><a href="http://www.lucasmarcalferreira.com.br/noticia3.cfm" target="_blank">Clique aqui e veja um exemplo funcionando</a></p>
<h3>Aviso importante</h3>
<p>Desde semana passada o meu blog oficial mudou click <a href="http://www.lucasmarcalferreira.com.br/wordpress/" target="_blank">aqui</a> para conhecer meu novo blog.</p>
<p align="justify"><strong>Autor: Lucas Marçal- Colunista R.I.A do Portal   MXSTUDIO</strong></p>
</td>
</tr>
</tbody>
</table>
<p><script type="text/javascript"><!--
FormatAS(new Array('as1','as2'));
// --></script><br />
<script type="text/javascript"><!--
FormatCF(new Array('cfc'));
// --></script> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.mxstudio.com.br/desenvolvimento/ria/sistema_de_noticias_flash_e_coldfusion___parte_final/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Sistema de Notícia  Flash e Coldfusion parte 2</title>
		<link>http://www.mxstudio.com.br/desenvolvimento/ria/sistema_de_noticia__flash_e_coldfusion_parte_2/</link>
		<comments>http://www.mxstudio.com.br/desenvolvimento/ria/sistema_de_noticia__flash_e_coldfusion_parte_2/#comments</comments>
		<pubDate>Tue, 24 Jan 2006 00:00:00 +0000</pubDate>
		<dc:creator>Lucas_marcal</dc:creator>
				<category><![CDATA[RIA]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Vamos adcionar uma busca ao nosso sistema.]]></description>
			<content:encoded><![CDATA[<p><script src="http://www.mxstudio.com.br/js/ColorCode.js"></script></p>
<table style="height: 1833px;" border="0" cellspacing="0" cellpadding="0" width="100%">
<tbody>
<tr>
<td id="colunaTexto" valign="top">
<h1>R.I.A. &#8211; Sistema de Notícia com Flash e Coldfusion &#8211; Parte 2</h1>
<div id="Introducao">Salve Macromedianos de plantão rsrsr, seguinte hoje vamos dar sequencia na nossa coluna para montar um sistema de noticias usando flash + coldfusion, para isso é necessário que você tenha feito a parte 1 desse tutorial que você pode acessar no link abaixo. Ao final dessa coluna você será capaz de customizar um componente de DataGrid e criar um sistema de busca simples para o nosso sistema de notícias.</div>
<div id="prerequisitos">
<p>Os pré-requisitos desse tutorial:<br />
<a href="http://www.macromedia.com/software/coldfusion/?promoid=BINO" target="_blank">ColdFusion MX 7</a><br />
<a href="http://download.macromedia.com/pub/flashremoting/flash8/flashremoting_components_flash8.msi" target="_blank">Flash Remoting 2.0</a><br />
<a href="http://www.macromedia.com/software/flash/flashpro/?promoid=BINT" target="_blank">Flash 8</a><br />
<a href="http://www.macromedia.com/software/dreamweaver/?promoid=BINR" target="_blank">Dreamweaver 8</a><br />
<a href="http://www.mxstudio.com.br/views.tutorial.php?act=view&amp;cid=11&amp;aid=776" target="_blank">Ler parte 1 desse tutorial </a>(Baixe os arquivos para facilitar sua vida.)</p>
</div>
<h1>Modificando Componente ColdFusion ( CFC )</h1>
<div id="previa_componente">Vamos alterar algumas configurações de nosso componente, na verdade o que vamos fazer é adcionar mais uma função dentro desse componente, a função se chama &#8220;RetornaBusca&#8221;, você deve adcionar essa função dentro das tags &lt;cfcomponent&gt;&lt;/cfcomponent&gt;, então vamos lá certifque-se de que você está dentro das tags e escreva a seguinte instrução</div>
<div id="codigo" title="cf1">&lt;cfcomponent&gt;<br />
&lt;!&#8212; Função de Busca &#8212;&gt;<br />
&lt;cffunction name=&#8221;RetornaBusca&#8221; access=&#8221;remote&#8221; returntype=&#8221;any&#8221;&gt;<br />
&lt;cfargument name=&#8221;palavra&#8221; required=&#8221;yes&#8221; type=&#8221;string&#8221;&gt;<br />
&lt;cfquery name=&#8221;qBusca&#8221; datasource=&#8221;lucasmarcal&#8221;&gt;<br />
SELECT *<br />
FROM noticia<br />
WHERE assunto LIKE &lt;cfqueryparam cfsqltype=&#8221;cf_sql_char&#8221; value=&#8221;%#arguments.palavra#%&#8221;&gt;<br />
&lt;/cfquery&gt;<br />
&lt;cfif #qBusca.RecordCount# LTE 0&gt;<br />
&lt;cfset qBusca = &#8220;Não encontrou nada&#8221;&gt;<br />
&lt;/cfif&gt;<br />
&lt;cfreturn qBusca&gt;<br />
&lt;/cffunction&gt;<br />
&lt;!&#8212; Fim da Função &#8212;&gt;<br />
&lt;/cfcomponent&gt;</div>
<div id="div">
<p>Ao final seu componente deverá ficar assim:</p>
</div>
<div id="codigo" title="cf2">
<p>&lt;cfcomponent&gt;<br />
&lt;!&#8212; Função para retorno de dados da tabela Noticia. &#8212;&gt;<br />
&lt;cffunction name=&#8221;RetornaNoticia&#8221; access=&#8221;remote&#8221; returntype=&#8221;query&#8221;&gt;<br />
&lt;cfquery name=&#8221;q_noticia&#8221; datasource=&#8221;lucasmarcal&#8221;&gt;<br />
SELECT *<br />
FROM noticia<br />
ORDER BY id_noticia DESC<br />
&lt;/cfquery&gt;<br />
&lt;cfreturn q_noticia&gt;<br />
&lt;/cffunction&gt;<br />
&lt;!&#8212; Fim da Função &#8212;&gt;</p>
<p>&lt;!&#8212; Função para Inserir dados na tabela Noticia &#8212;&gt;<br />
&lt;cffunction name=&#8221;InserirNoticia&#8221; access=&#8221;remote&#8221; returntype=&#8221;boolean&#8221;&gt;<br />
&lt;cfargument name=&#8221;dia&#8221; required=&#8221;yes&#8221; type=&#8221;string&#8221;&gt;<br />
&lt;cfargument name=&#8221;autor&#8221; required=&#8221;yes&#8221; type=&#8221;string&#8221;&gt;<br />
&lt;cfargument name=&#8221;assunto&#8221; required=&#8221;yes&#8221; type=&#8221;string&#8221;&gt;<br />
&lt;cfargument name=&#8221;mensagem&#8221; required=&#8221;yes&#8221; type=&#8221;string&#8221;&gt;<br />
&lt;cfquery name=&#8221;q_inserir&#8221; datasource=&#8221;lucasmarcal&#8221;&gt;<br />
INSERT<br />
INTO	noticia<br />
(<br />
data,<br />
autor,<br />
assunto,<br />
mensagem<br />
)<br />
VALUES<br />
(<br />
&#8216;#Arguments.dia#&#8217;,<br />
&#8216;#Arguments.autor#&#8217;,<br />
&#8216;#Arguments.assunto#&#8217;,<br />
&#8216;#Arguments.mensagem#&#8217;<br />
)<br />
&lt;/cfquery&gt;<br />
&lt;cfreturn true&gt;<br />
&lt;/cffunction&gt;<br />
&lt;!&#8212; Função de Busca &#8212;&gt;<br />
&lt;cffunction name=&#8221;RetornaBusca&#8221; access=&#8221;remote&#8221; returntype=&#8221;any&#8221;&gt;<br />
&lt;cfargument name=&#8221;palavra&#8221; required=&#8221;yes&#8221; type=&#8221;string&#8221;&gt;<br />
&lt;cfquery name=&#8221;qBusca&#8221; datasource=&#8221;lucasmarcal&#8221;&gt;<br />
SELECT *<br />
FROM noticia<br />
WHERE assunto LIKE &lt;cfqueryparam cfsqltype=&#8221;cf_sql_char&#8221; value=&#8221;%#arguments.palavra#%&#8221;&gt;<br />
&lt;/cfquery&gt;<br />
&lt;cfif #qBusca.RecordCount# LTE 0&gt;<br />
&lt;cfset qBusca = &#8220;Não encontrou nada&#8221;&gt;<br />
&lt;/cfif&gt;<br />
&lt;cfreturn qBusca&gt;<br />
&lt;/cffunction&gt;<br />
&lt;!&#8212; Fim da Função &#8212;&gt;<br />
&lt;/cfcomponent&gt;</p>
</div>
<div id="previa_flash">
<h1>Editando  Arquivo em Flash</h1>
<p>Agora vamos fazer algumas alterações no nosso arquivo de Flash,vamos adcionar um campo de texto e intancialo como &#8220;txtTermo&#8221;,depois vamos colocar mais dois botões que serão respectivamente &#8220;btBuscar&#8221; e &#8220;btLista&#8221;,  vá na camada action de seu arquivo e  altere o codigo para que ele fique como abaixo:</p>
</div>
<div id="codigo" title="as2">
<p>// Iniciando a conexão com o Flash Remoting<br />
import mx.debug.*;<br />
import mx.remoting.*;<br />
// Condição<br />
if (init == null) {<br />
init = true;<br />
// Setando o local do Remoting<br />
// esse é online<br />
NetServices.setDefaultGatewayUrl(&#8220;http://localhost/flashservices/gateway&#8221;);<br />
// Criando a variável de conexão<br />
conn = NetServices.createGatewayConnection();<br />
// Criando a variável de serviço, e setando o componente<br />
service = conn.getService(&#8220;Desafios.OOP.mxstudio&#8221;, this);<br />
}<br />
////////////////////////////////////////////////////<br />
//Propriedades de componentes e MovieClips<br />
confirma._visible = false;<br />
detalhe._visible = false;<br />
mcEdit._visible = false;<br />
mcEdit.fundo.useHandCursor = false;<br />
btLista._visible = false<br />
////////////////////////////////////////////////////<br />
// Eventos do Data Grid.<br />
var objDg:Object = new Object();<br />
objDg.change = function(eventObject) {<br />
/*<br />
selectedItem = Retorna o resultado do item selecionado no DataGrid<br />
*/<br />
detalhe._visible = true;<br />
id = dgDados.selectedItem.id_noticia;<br />
detalhe.detData.text = dgDados.selectedItem.data;<br />
detalhe.detAutor.text = dgDados.selectedItem.autor;<br />
detalhe.detAssunto.text = dgDados.selectedItem.assunto;<br />
detalhe.detMensagem.text = dgDados.selectedItem.mensagem;<br />
};<br />
dgDados.addEventListener(&#8220;change&#8221;, objDg);<br />
////////////////////////////////////////////////////<br />
//  Criando Funções<br />
////////////////////////////////////////////////////<br />
// Função para retorno das noticias<br />
function RetornaNoticia_Result(result) {<br />
// Data Provider é responsável por inserir o resultado de &#8220;result&#8221; dentro do DataGrid<br />
dgDados.dataProvider = result;<br />
dgDados.removeAllColumns();<br />
dgDados.columnNames = ["data", "autor", "assunto"];<br />
dgDados.getColumnAt(0).headerText = &#8220;Data de Publicação&#8221;;<br />
dgDados.getColumnAt(1).headerText = &#8220;Autor Notícia&#8221;;<br />
dgDados.getColumnAt(2).headerText = &#8220;Assunto Notícia&#8221;;<br />
dgDados.getColumnAt(0).width = 150;<br />
// tamanho em Pixels do cabeçalho e colunas<br />
dgDados.getColumnAt(1).width = 150;<br />
// tamanho em Pixels do cabeçalho e colunas<br />
dgDados.getColumnAt(2).width = 150;<br />
}<br />
// Chamando a Função de Retorno de Noticias<br />
service.RetornaNoticia();<br />
////////////////////////////////////////////////////<br />
// Função para inserir noticias<br />
function InserirNoticia_Result(result) {<br />
if (result) {<br />
txtData.text = &#8220;&#8221;;<br />
txtAutor.text = &#8220;&#8221;;<br />
txtAssunto.text = &#8220;&#8221;;<br />
txtMensagem.text = &#8220;&#8221;;<br />
confirma._visible = true;<br />
confirma.rotulo.text = &#8220;Os dados Foram gravados com sucesso !&#8221;;<br />
}<br />
}<br />
////////////////////////////////////////////////////<br />
btGravar.onPress = function() {<br />
// Chamando Função de Inserir Noticias e passando os argumentos necessarios<br />
// para o coldfusion.<br />
// e faz uma verificação para certificar que todos os campos foram preenchidos corretamente.<br />
if (txtData.text == &#8220;&#8221; || txtAutor.text == &#8220;&#8221; || txtAssunto.text == &#8220;&#8221; || txtMensagem.text == &#8220;&#8221;) {<br />
confirma._visible = true;<br />
confirma.rotulo.text = &#8220;Preencha todos os campos !&#8221;;<br />
} else {<br />
service.InserirNoticia({dia:txtData.text, autor:txtAutor.text, assunto:txtAssunto.text, mensagem:txtMensagem.text});<br />
service.RetornaNoticia();<br />
}<br />
};<br />
////////////////////////////////////////////////////<br />
// Função de Busca<br />
function RetornaBusca_Result(result) {<br />
// Verifica se foi digitado alguma coisa no campo de Busca, e não tiver nada<br />
// digitado ele retorna uma mensagem de alerta para que seja inserido<br />
// um parametro de busca.<br />
if (_root.txtTermo.text == &#8220;&#8221;) {<br />
confirma._visible = true;<br />
confirma.rotulo.text = &#8220;Digite um termo de Busca !&#8221;;<br />
// se tiver parametro de busca mais o result for == a frase que você<br />
// criou no CFC &#8220;Não encontrou nada&#8221; então ele retorna a seguinte mensagem<br />
// dentro do MovieClip confirma &#8220;Nada foi encontrado com esse parametro&#8221;<br />
} else {<br />
if (result == &#8220;Não encontrou nada&#8221;) {<br />
confirma._visible = true;<br />
confirma.rotulo.text = &#8220;Nada foi encontrado nehum resultado com esse parametro&#8221;;<br />
} else {<br />
// Caso seja encontrado o resultado do termo digitado, ele<br />
// remove os resultados da lista antiga, e coloca os novos<br />
// resultados.<br />
// removeAllColumns(); == Remover resultados lista antiga<br />
// columnNames = ["assunto", "autor"]; == seleciona os campos &#8220;assunto&#8221; e &#8220;autor&#8221;<br />
// getColumnAt(0).headerText = &#8220;Assunto relacionado&#8221;; == da o nome ao cabeçalho<br />
// getColumnAt(0).width = 262; == Define um tamanho para as colunas do dataGrid<br />
// dgDados.dataProvider = result; == Adciona o resultado da Busca ao DataGrid<br />
dgDados.removeAllColumns();<br />
dgDados.columnNames = ["assunto", "autor"];<br />
dgDados.getColumnAt(0).headerText = &#8220;Assunto relacionado&#8221;;<br />
dgDados.getColumnAt(1).headerText = &#8220;Autor da Noticia&#8221;;<br />
dgDados.getColumnAt(0).width = 262;<br />
dgDados.getColumnAt(1).width = 262;<br />
dgDados.dataProvider = result;<br />
btLista._visible = true<br />
}<br />
}<br />
}<br />
// Chama a função de RetornaBusca e passa como parametro &#8220;palavra&#8221;<br />
btBuscar.onPress = function() {<br />
service.RetornaBusca({palavra:_root.txtTermo.text});<br />
};<br />
// Botão Para listar novamente todas as noticias<br />
btLista.onPress = function  () {<br />
service.RetornaNoticia()<br />
}</p>
<p>////////////////////////////////////////////////////<br />
/// CSS COMPONETES Data Grid<br />
_root.dgDados.setStyle(&#8220;themeColor&#8221;, 0xcccccc);<br />
_root.dgDados.setStyle(&#8220;selectionColor&#8221;, 0xffffff);<br />
_root.dgDados.setStyle(&#8220;ollOverColor&#8221;, 0xcccccc);<br />
_root.dgDados.setStyle(&#8220;textrollOverColor&#8221;, 0xffffff);<br />
_root.dgDados.setStyle(&#8220;textselectionColor&#8221;, 0xffffff);<br />
_root.dgDados.setStyle(&#8220;headerColor&#8221;, 0&#215;999999);<br />
_root.dgDados.setStyle(&#8220;color&#8221;, 0xffffff);<br />
_root.dgDados.setStyle(&#8220;backgroundColor&#8221;, 0&#215;006699);<br />
_root.dgDados.setStyle(&#8220;selectionColor&#8221;, 0xffffff);<br />
_root.dgDados.setStyle(&#8220;headerColor&#8221;, 0&#215;000000);<br />
////////////////////////////////////////////////////</p>
</div>
<p>Agora é só executar sua aplicação e ele estará funcionando normalmente, espero que vocês  tenham gostado desse tutorial, na próxima parte vamos criar as funções para editar e deletar as noticias.</p>
<p><a href="http://www.lucasmarcalferreira.com.br/noticia2.cfm" target="_blank">Testar o arquivo Online</a></p>
<p>Para mais informações visite o <a href="http://forum.mxstudio.com.br/index.php?showforum=115" target="_blank">Forum de RIA</a>, ou o meu <a href="http://lucasmarcal.blogspot.com/" target="_blank">Blog</a></td>
</tr>
</tbody>
</table>
<p><script type="text/javascript"><!--
FormatAS();
// --></script></p>
<p><script type="text/javascript"><!--
FormatCF(new Array("cf1", "cf2"));
// --></script> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.mxstudio.com.br/desenvolvimento/ria/sistema_de_noticia__flash_e_coldfusion_parte_2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Banner expansível</title>
		<link>http://www.mxstudio.com.br/desenvolvimento/flash/banner_expansivel/</link>
		<comments>http://www.mxstudio.com.br/desenvolvimento/flash/banner_expansivel/#comments</comments>
		<pubDate>Thu, 19 Jan 2006 00:00:00 +0000</pubDate>
		<dc:creator>Lucas_marcal</dc:creator>
				<category><![CDATA[Flash]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Atendendo a pedidos vou mostrar como criar esse banner da coluna de Dreanweaver]]></description>
			<content:encoded><![CDATA[<p><script src="http://www.mxstudio.com.br/js/ColorCode.js"></script></p>
<table style="height: 1833px;" border="0" cellspacing="0" cellpadding="0" width="580">
<tbody>
<tr>
<td id="colunaTexto" valign="top">
<h1>FLASH &#8211; Banner  expansível</h1>
<div id="Introducao">Depois de ver que a minha matéria <a href="http://www.mxstudio.com.br/views.tutorial.php?act=view&amp;cid=1&amp;aid=748" target="_blank">Criando um banner expansivel</a> foi muito bem acessada resolvia atender a pedidos do pessoal e mostrar como foi criado o banner no Flash, é muito simples mais já que o pessoal está pendindo vamos lá.</div>
<div id="prerequisitos">Os pré-requisitos desse tutorial:</p>
<p><a href="http://www.macromedia.com/software/flash/flashpro/?promoid=BINT" target="_blank">Flash 8</a><br />
<a href="http://www.macromedia.com/software/dreamweaver/?promoid=BINR" target="_blank"></a><a href="http://www.lucasmarcalferreira.com.br/mxstudio/tutorial/banner/Banner.fla" target="_blank">Arquivos do Tutorial</a></p>
</div>
<h1>Montando a estrutura do Banner</h1>
<div id="previa_componente">
<p>Primeiro vamos definir o tamanho de nosso MovieClip e o Frame Rate dele.</p>
<p><img src="http://www.mxstudio.com.br/imagens_artigos/http://www.lucasmarcalferreira.com.br/mxstudio/tutorial/banner/1.jpg" alt="" width="364" height="331" /></p>
<p>As camadas devem ficar assim:</p>
<p><img src="http://www.mxstudio.com.br/imagens_artigos/http://www.lucasmarcalferreira.com.br/mxstudio/tutorial/banner/2.jpg" alt="" width="194" height="108" /></p>
<p>Na camada &#8220;tela&#8221;  vamos criar um MovieClip de 467.9 width por 230.7 height e vamos instancia-lo como &#8220;tela&#8221;, vamos colocar ele na posição _X = 0.0 e _Y = -231.4, dê um duplo clique nesse MovieClip &#8220;tela&#8221;  e com o shpe selecionado navamente tranforme em MovieClip, vamos a animação, a suas camadas devem ficar dessa forma:</p>
<p><img src="http://www.mxstudio.com.br/imagens_artigos/http://www.lucasmarcalferreira.com.br/mxstudio/tutorial/banner/3.jpg" alt="" width="464" height="191" /></p>
<p>No primeiro frame da camada &#8220;Base Azul&#8221;, você tem o MovieClip na posição atual de _X = 0.0 e _Y = -231.4, no frame &#8220;20&#8243; você deve colocar a posição desse MovieClip em _X = 0.0 _Y = 299.6, clique no primeiro frame da camada &#8220;Base Azul&#8221; novamente, na paleta &#8220;Propriets&#8221; clique em EDIT e configure como nas figuras abaixo:</p>
<p><img src="http://www.mxstudio.com.br/imagens_artigos/http://www.lucasmarcalferreira.com.br/mxstudio/tutorial/banner/4.jpg" alt="" width="548" height="369" /></p>
<p>depois disso ainda na camada &#8220;Base Azul&#8221; clique no frame 35 e precione &#8220;F6&#8243;.<br />
Agora na camada &#8220;Texto&#8221; adcione um texto no frame 20,  na posição de _X 44.0 e _Y = 137.9<br />
e depois clique no frame 35 e coloque na posição _X = 44.0 e _Y = 387.9, agora crie a animação, feito isso clique novamente no frame 20 da camada &#8220;Texto&#8221; e configure da seguinte forma:</p>
<p><img src="http://www.mxstudio.com.br/imagens_artigos/http://www.lucasmarcalferreira.com.br/mxstudio/tutorial/banner/5.jpg" alt="" width="548" height="369" /></p>
<p>Agora na camada Action você coloca a ação de stop().</p>
<p>vamos voltar a tela principal do nosso banner e vamos criar um botão para ativa esse MovieClip,<br />
o meu ficou assim:</p>
<p><img src="http://www.mxstudio.com.br/imagens_artigos/http://www.lucasmarcalferreira.com.br/mxstudio/tutorial/banner/6.jpg" alt="" width="472" height="103" /></p>
<p>Vamos converte-lo em MovieClip e dar o nome de Intancia de &#8220;Ativa&#8221;, pronto a nossa estrutura de banner já está pronta agora vamos adicionar o codigo na camada Actions.</p>
</div>
<div id="codigo" title="AS1">
<p>// parando a animação no primeiro Frame<br />
stop();<br />
// declarando o MovieClip ativa<br />
var ativa:MovieClip;</p>
<p>// Quando passar o Mouse sobre<br />
ativa.onRollOver = function() {<br />
// Criar uma instancia de OnEnterFrame sobre o MovieClip tela<br />
_root.tela.onEnterFrame = function() {<br />
// Avançar um Frame<br />
_root.tela.nextFrame();<br />
// se o frame atual for igual ao Frame total<br />
if (this._currentframe == this._totalframes) {<br />
// deletar a instancia de onEnterFrame<br />
delete this.onEnterFrame;<br />
}<br />
};<br />
};<br />
// Quando retirar o Mouse<br />
ativa.onRollOut = function() {<br />
// Criar uma instancia de OnEnterFrame sobre o MovieClip tela<br />
_root.tela.onEnterFrame = function() {<br />
// Retrocede um Frame<br />
_root.tela.prevFrame();<br />
// se o frame atual for igual a 1<br />
if (this._currentframe == 1) {<br />
// deleta a instancia de onEnterFrame<br />
delete this.onEnterFrame;<br />
}<br />
};<br />
};</p>
</div>
<p><script type="text/javascript"><!--
FormatAS();
// --></script></p>
<div>Pronto pessoal fiz esse bem rapidinho só para ajudar quem não estava conseguindo fazer o exemplo do banner.<br />
Visitem meu <a href="http://lucasmarcal.blogspot.com" target="_blank">blog</a></div>
</td>
</tr>
</tbody>
</table>
]]></content:encoded>
			<wfw:commentRss>http://www.mxstudio.com.br/desenvolvimento/flash/banner_expansivel/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Sistema de Notícia Flash e ColdFusion &#8211; Parte 1</title>
		<link>http://www.mxstudio.com.br/desenvolvimento/ria/sistema_de_noticia_flash_e_coldfusion___parte_1/</link>
		<comments>http://www.mxstudio.com.br/desenvolvimento/ria/sistema_de_noticia_flash_e_coldfusion___parte_1/#comments</comments>
		<pubDate>Tue, 17 Jan 2006 00:00:00 +0000</pubDate>
		<dc:creator>Lucas_marcal</dc:creator>
				<category><![CDATA[RIA]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Vamos dar inicio a uma s&#233;rie de colunas praticas sobre desenvolvimento de Rich Internet Application]]></description>
			<content:encoded><![CDATA[<p><script src="http://www.mxstudio.com.br/js/ColorCode.js"></script></p>
<table style="height: 1833px;" border="0" cellspacing="0" cellpadding="0" width="580">
<tbody>
<tr>
<td id="colunaTexto" valign="top">
<h1>R.I.A. &#8211; Sistema de Notícia com Flash e Coldfusion &#8211; Parte 1</h1>
<div id="Introducao">Salve pessoal, muitas novidades esse ano na área de Rich Internet Application, uma delas é que apartir de hoje estamos com um novo colunista, o nome dele é <a href="http://www.dotpix.com.br/%7Eleo/" target="_blank">Leonardo França</a> e ele irá trazer até vocês conteúdo sobre AMF PHP, FLEX, AS3, Flash Media Sever.<br />
Bom vamos ao que interessa.</div>
<div id="prerequisitos">Os pré-requisitos desse tutorial:<br />
<a href="http://www.macromedia.com/software/coldfusion/?promoid=BINO" target="_blank">ColdFusion MX 7</a><br />
<a href="http://download.macromedia.com/pub/flashremoting/flash8/flashremoting_components_flash8.msi" target="_blank">Flash Remoting 2.0</a><br />
<a href="http://www.macromedia.com/software/flash/flashpro/?promoid=BINT" target="_blank">Flash 8</a><br />
<a href="http://www.macromedia.com/software/dreamweaver/?promoid=BINR" target="_blank">Dreamweaver 8</a><br />
<a href="http://www.lucasmarcalferreira.com.br/mxstudio/tutorial/noticia/noticia.rar" target="_blank">Arquivos do Tutorial</a></div>
<h1>Criando Componente ColdFusion ( CFC )</h1>
<div id="previa_componente">Agora iremos criar a estrutura do componente ColdFusion, para isso vamos abrir o Dreamweaver e criar um novo componente vamos salvar esse componente dentro da pasta OOP na raiz de nosso projeto, e vamos chamalo de mxstudio.cfc.<br />
Com a base de dados já pronta, e devidamente <a href="http://www.mxstudio.com.br/views.tutorial.php?act=view&amp;cid=11&amp;aid=522" target="_blank">registrada no Administrador do ColdFusion </a>vamos ao próximo passo de nosso tutorial.<br />
Agora escreva o código abaixo, que basicamente é uma função para retornar os dados da tabela noticia e uma função para inserir dados nessa mesma tabela recebendo alguns parametros passados pelo Flash.</div>
<div id="codigo">&lt;cfcomponent&gt;<br />
&lt;!&#8212; Função para retorno de dados da tabela Noticia. &#8212;&gt;<br />
&lt;cffunction name=&#8221;RetornaNoticia&#8221; access=&#8221;remote&#8221; returntype=&#8221;query&#8221;&gt;<br />
&lt;cfquery name=&#8221;q_noticia&#8221; datasource=&#8221;lucasmarcal&#8221;&gt;<br />
SELECT *<br />
FROM noticia<br />
ORDER BY id_noticia<br />
&lt;/cfquery&gt;<br />
&lt;cfreturn q_noticia&gt;<br />
&lt;/cffunction&gt;<br />
&lt;!&#8212; Fim da Função &#8212;&gt;</p>
<p>&lt;!&#8212; Função para Inserir dados na tabela Noticia &#8212;&gt;<br />
&lt;cffunction name=&#8221;InserirNoticia&#8221; access=&#8221;remote&#8221; returntype=&#8221;boolean&#8221;&gt;<br />
&lt;cfargument name=&#8221;dia&#8221; required=&#8221;yes&#8221; type=&#8221;string&#8221;&gt;<br />
&lt;cfargument name=&#8221;autor&#8221; required=&#8221;yes&#8221; type=&#8221;string&#8221;&gt;<br />
&lt;cfargument name=&#8221;assunto&#8221; required=&#8221;yes&#8221; type=&#8221;string&#8221;&gt;<br />
&lt;cfargument name=&#8221;mensagem&#8221; required=&#8221;yes&#8221; type=&#8221;string&#8221;&gt;<br />
&lt;cfquery name=&#8221;q_inserir&#8221; datasource=&#8221;lucasmarcal&#8221;&gt;<br />
INSERT<br />
INTO noticia<br />
(<br />
data,<br />
autor,<br />
assunto,<br />
mensagem<br />
)<br />
VALUES<br />
(<br />
&#8216;#Arguments.dia#&#8217;,<br />
&#8216;#Arguments.autor#&#8217;,<br />
&#8216;#Arguments.assunto#&#8217;,<br />
&#8216;#Arguments.mensagem#&#8217;<br />
)<br />
&lt;/cfquery&gt;<br />
&lt;cfreturn true&gt;<br />
&lt;/cffunction&gt;<br />
&lt;!&#8212; Fim da Função &#8212;&gt;<br />
&lt;/cfcomponent&gt;</p>
</div>
<p><script type="text/javascript"><!--
FormatCF();
// --></script></p>
<div id="previa_flash">
<h1>Criando Arquivo em Flash</h1>
<p>Feito isso abra o arquivo Noticia.Fla e veja a estrutura como ele foi montado, então  na tela de _root e na camada Actions digite o seguinte código:</p>
</div>
<div id="codigo" title="as2">// Iniciando a conexão com o Flash Remoting<br />
import mx.remoting.*;<br />
// Condição<br />
if (init == null) {<br />
init = true;<br />
// Setando o local do Remoting<br />
NetServices.setDefaultGatewayUrl(&#8220;http://localhost/flashservices/gateway&#8221;);<br />
// Criando a variável de conexão<br />
conn = NetServices.createGatewayConnection();<br />
// Criando a variável de serviço, e setando o componente sem colocar sua extenção e setando a pasta raiz ou seja no caso do exemplo abaixo<br />
// a pasta raiz está dentro de wwwroot/Inetpub/Desafio<br />
service = conn.getService(&#8220;Desafios.OOP.mxstudio&#8221;, this);<br />
}<br />
//////////////////////////////////////////////////////////////////////////////////<br />
//Propriedades de componentes e MovieClips<br />
confirma._visible = false;<br />
detalhe._visible = false<br />
//////////////////////////////////////////////////////////////////////////////////<br />
// Eventos do Data Grid.<br />
var objDg:Object = new Object();<br />
objDg.change = function(eventObject) {<br />
/*<br />
selectedItem = Retorna o resultado do item selecionado no DataGrid<br />
*/<br />
detalhe._visible = true<br />
id = dgDados.selectedItem.id_noticia;<br />
detalhe.detData.text = dgDados.selectedItem.data<br />
detalhe.detAutor.text = dgDados.selectedItem.autor<br />
detalhe.detAssunto.text = dgDados.selectedItem.assunto<br />
detalhe.detMensagem.text = dgDados.selectedItem.mensagem</p>
<p>};<br />
dgDados.addEventListener(&#8220;change&#8221;, objDg);<br />
//////////////////////////////////////////////////////////////////////////////////<br />
// Criando Funções<br />
//////////////////////////////////////////////////////////////////////////////////<br />
// Função para retorno das noticias<br />
function RetornaNoticia_Result(result) {<br />
// Data Provider é responsável por inserir o resultado de &#8220;result&#8221; dentro do DataGrid<br />
dgDados.dataProvider = result;<br />
}<br />
// Chamando a Função de Retorno de Noticias<br />
service.RetornaNoticia();<br />
//////////////////////////////////////////////////////////////////////////////////<br />
// Função para inserir noticias<br />
function InserirNoticia_Result(result) {<br />
if (result) {<br />
txtData.text = &#8220;&#8221;;<br />
txtAutor.text = &#8220;&#8221;;<br />
txtAssunto.text = &#8220;&#8221;;<br />
txtMensagem.text = &#8220;&#8221;;<br />
confirma._visible = true;<br />
confirma.rotulo.text = &#8220;Os dados Foram gravados com sucesso !&#8221;;<br />
}<br />
}<br />
//////////////////////////////////////////////////////////////////////////////////<br />
btGravar.onPress = function() {<br />
// Chamando Função de Inserir Noticias e passando os argumentos necessarios<br />
// para o coldfusion.<br />
service.InserirNoticia({dia:txtData.text, autor:txtAutor.text, assunto:txtAssunto.text, mensagem:txtMensagem.text});<br />
service.RetornaNoticia();<br />
};</p>
</div>
<div id="previ_flash2">
<p>Dentro do MovieClip Detalhe, na camada action digite o seguinte codigo:</p>
</div>
<div id="codigo" title="as1">var confirma:MovieClip</p>
<p>fechar.onPress = function () {<br />
_root.detalhe._visible = false<br />
}</p>
</div>
<p>Agora é só executar sua aplicação e ele estará funcionando normalmente, espero que você tenham gostado desse tutorial, na próxima parte vamos criar as funções para editar e deletar as noticias.</p>
<p><a href="http://www.lucasmarcalferreira.com.br/noticia.cfm" target="_blank">Testar o arquivo Online</a></p>
<p>Para maiores informações sobre o artigo visite o <a href="http://forum.mxstudio.com.br/index.php?showforum=115" target="_blank">Forum de R.I.A</a>., o o meu <a href="http://lucasmarcal.blogspot.com" target="_blank">blog pessoal</a><br />
.</td>
</tr>
</tbody>
</table>
<p><script type="text/javascript"><!--</p>
<p>FormatAS(new Array("as1","as2"));
// --></script> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.mxstudio.com.br/desenvolvimento/ria/sistema_de_noticia_flash_e_coldfusion___parte_1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A verdade sobre o desenvolvimento em Flash</title>
		<link>http://www.mxstudio.com.br/desenvolvimento/ria/a_verdade_sobre_o_desenvolvimento_em_flash/</link>
		<comments>http://www.mxstudio.com.br/desenvolvimento/ria/a_verdade_sobre_o_desenvolvimento_em_flash/#comments</comments>
		<pubDate>Fri, 23 Dec 2005 00:00:00 +0000</pubDate>
		<dc:creator>Lucas_marcal</dc:creator>
				<category><![CDATA[RIA]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Opini&#227;o de desenvolvedores que j&#225; experimentaram as facilidades e funcionalidades do desenvolvimento em Flash.]]></description>
			<content:encoded><![CDATA[<p><script src="http://www.mxstudio.com.br/js/ColorCode.js"></script></p>
<table border="0" cellspacing="0" cellpadding="0" width="550">
<tbody>
<tr>
<td id="colunaTexto" valign="top">
<h1>R.I.A. &#8211; A verdade sobre o Flash no ano de 2005</h1>
<h2>Veja o que dizem profissionais conceituados sobre a evolução do flash no ano de 2005</h2>
<div id="colunaTexto">
<div id="destaque">Lucas Marçal é desenvolvedor Rich Internet Application na agência <a href="http://www.mxstudio.com.br/mx_novo/wp-admin/www.atualcd.com.br">Atual/CD</a> , colunista do site MXSTUDIO e atualmente está se dedicando e incentivar o desenvolvimento baseado em Flash no Brasil e a finalização de seu livro &#8220;<a href="http://lucasmarcal.blogspot.com/2005/11/meu-livro-de-rich-internet-application.html">Desenvolvendo Rich Internet Application</a>&#8220;, lucas matém um <a href="http://lucasmarcal.blogspot.com">blog</a> onde coloca material sobre tecnologia macromedia Flash e ColdFusion e também coisas subre sua vida.</div>
<p>È incontestável a superioridade do flash no ano de 2005, o  flash já era na minha opinião o mais promissor software (Plataforma) para a  web, porém a  evolução conseguida no ano  de 2005 com o lançamento do Flash 8 superou todas as minhas expectativas.<br />
Não estou aqui para defender essa ou aquela tecnologia web,  mais estou aqui para falar sobre o que conheço do flash. Então para isso vamos  imaginar a seguinte situação:</p>
<p>Você acaba de ser contratado por uma grande empresa da  área de comunicação, e nesse projeto você terá que desenvolver um conteúdo  muito rico em experiência para o usuário que deverá conter:</p>
<p>Sistema disponível para Web, Intranet e celular.<br />
Sistema de vídeo streaming<br />
Paginas com maior interação com o usuário, não sendo permitido  Refresh<br />
Utilização de banco de dados para administrar o sistema<br />
Conteúdo em XML</p>
<p>Acredito que existem vários leitores agora pensando que tudo  isso poderia ser conseguido sem problema com outras tecnologias, mais a  pergunta é: Qual o tempo de aprendizagem e qual o tamanho da equipe (Verba) que  seria necessário para viabilizar um projeto desse ? Pense nisso e vamos a  soluções:</p>
<p>Sistema disponível para Web, Intranet e celular. (Flash,  Flex, Flash Litle, que alias estão todas encapsuladas dentro de tecnologias  macromedia), ou seja  é muito fácil achar  conteúdo na web e em livros para essas tecnologias e você continua  desenvolvendo dentro de uma só plataforma</p>
<p>Sistema de vídeo streaming   Flash media Server (ou simplesmente FlashCom) , onde você tem inúmeras ferramentas  pré moldadas para o desenvolvimento possibilitando também a criação de Chats  com sistema de vídeo e áudio.</p>
<p>Paginas com maior interação com o usuário, não sendo  permitido Refresh: Aplicação de bom censo e técnicas simples de animação com o  flash, você desenvolve aplicativos ricos em navegação e experiência.</p>
<p>Utilização de banco de dados para administrar o sistema:  Desenvolvimento em CodFusion, linguagem muito fácil de dominar e que vem  crescendo muito depois da versão 7, onde ainda é possível criar Web services e  formulários em flash  e que permite ao  flash receber informações de uma forma muito mais segura e fácil do que as  antigas aplicações baseadas em Flash + PHP + ASP , podendo ainda gerar arquivos  de XML para que o conteúdo do site seja disponibilizado em XML.</p>
<p>Na verdade esses são alguns exemplos do que o  flash pode fazer além de propagandas on-line   na forma de banners vinheta para TV e acreditem até um sistema de  <a href="http://www.lucianoayres.com/blog/?p=19">gerenciamento de um carro</a></p>
<div id="destaque">
<p>Logo abaixo você verá a descrição e a opinião de alguns dos  maiores profissionais da web brasileira, profissionais como  Neto Leal, Lucas Ferreira e Anderson Mancini.</p>
</div>
<div id="destaque">
<p><a href="mailto:contato@lucasferreira.com">Lucas Ferreira</a> é webdeveloper,  atuante na área de web desde 2001. Com experiência em diversas linguagens,  dentre as principais PHP, JS, AS, XHTML, HTML e CSS, é amante do Flash e tem  contato com a ferramenta desde sua versão 4. Atualmente é sócio-diretor e  desenvolvedor chefe da Burn web.studio.<br />
<a href="http://www.lucasferreira.com/">www.lucasferreira.com</a><br />
<a href="http://www.burnweb.com.br/">www.burnweb.com.br</a></p>
</div>
<div id="colunaTexto">
<p>Flash plataform, um mundo rico em desenvolvimento. O   Flash desde sua versão MX, está em uma constante evolução  para um poderosa ferramenta de interação e criação WEB. Várias modalidades e  caminhos foram abertos para os desenvolvedores, possibilidades como: interações  server-side (XML, LoadVars, Remoting), receptação de dados a partir de  webservices, manipulação de vídeo como FLV(vídeo de alta qualidade e  compactação) ou stream, tanto de áudio como de vídeo através do novo Flash  Media Server (Antigo FlashComm), e é claro como já conhecido pela maioria,  animação e grande poder de criação. Com a ferramenta é possível desenvolver um  mundo infinito de idéias, desde sites, hotsites, intranet, extranets,  aplicativos ricos (RIA), games on-line, à banners e outras formas de  propaganda. Uma ferramenta em grande expansão de uso no Brasil e no mundo. Logo  muitos desenvolvedores, empresas, agências WEB, usuários e etc., já perceberão  seu poder e suas vantagens em seu uso, tanto que existem várias comunidades  (FUGPE, FUGPR, FUGSP, MUG-RJ, dentre outras) especializadas em compartilhar  conhecimento e soluções a fim de aprimorar o uso do Flash. Recentemente mais  uma opção quanto a plataforma foi criada, o Macromedia Flex (http://www.macromedia.com/software/flex/),  em sua versão atual 1.5 caminhando para a 2, uma maneira rápida e direta para  desenvolvedores aplicarem flash e RIA, expandindo assim, mais ainda o mundo MM,  ideal para o uso em intranets e extranets com um grande poder de interação.  Também vimos grandes mudanças na nova versão do programa principal, o Flash 8,  mudanças estas principalmente na área de design, manipulação de design via AS  (ActionScript), e integração, a maioria pedidos atendidos dos desenvolvedores,  filtros (Shadow, Blur, Glow e etc.), blending modes (Screen, Multiply e etc.),  renderers APIs (Draw, Rectangle, Bitmap e etc.), maiores possibilidades de  interação e independência quanto aos browsers (FileReference, External API e  etc.). Por fim podemos esperar, passos maiores ainda para nova versão, um novo  plugin está sendo desenvolvido, e caminhamos para um poderoso flash, mais autônomo  e completo.</p>
</div>
<div id="destaque">
<p>Anderson Mancini é diretor de criação da agência Neotix (http://www.neotix.com.br),  uma das maiores referências de desenvolvimento  de Rich Internet Application no Brasil e criadora do sistema de  atualização de conteúdo NeoPublishing 2.</p>
</div>
<div>
<p>O NeoPublishing 2.0 é um sistema administrativo de sites  que permite um nível de personalização jamais vista em administradores de  conteúdo. É a primeira ferramenta para administração de sites totalmente  baseada em Flash no Brasil e foi projetado a partir da aliança entre usabilidade  e intuição. Ele foi desenvolvido para tornar a tarefa de atualizar um site, tão  simples quanto navegar no site. Entre as principais vantagens oferecidas  estão a administração customizada, na qual o próprio cliente delimita as áreas  que poderão ser alteradas na página. Após definidas as áreas, é feito um estudo  de usabilidade e do processo de cada página, visando otimizar a atualização.</p>
<p>Na versão anterior, o NeoPublishing 1.0, uma tarefa de  múltiplos passos não podia ser representada em uma única página. Devido às  limitações na interatividade da linguagem HTML, resultava em uma página de 1000  px extensa demais para os usuários trabalharem. A solução encontrada para  esse tipo de problema foi dividir as tarefas em passos e mapear esses passos  para as novas páginas, mas isso faz com que os usuários tenham que mudar de  página para fazer algo, como completar os passos de um processo.</p>
<p>Na Versão 2.0, utilizamos RIA, e foi possível  colocar as várias páginas destes processos em uma única página. O usuário do sistema  NeoPublishing 2.0 altera os textos, imagens, e links de cada área do site, tudo  de uma vez. O sistema é capaz de fazer mais do que simplesmente atualizar  o site. Ele executa scripts, envia e recupera dados de maneira simples e  intuitiva sem refresh, redesenha partes da tela e permite a utilização de áudio  e vídeo.  Com isso temos um ganho de desempenho e de tempo versus  o ASP+HTML+JavaScript. Outra grande vantagem é a portabilidade, pois o  NeoPublishing 2.0 pode ser disponibilizado em qualquer plataforma que utilize a  tecnologia Flash, como um celular por exemplo.</p>
</div>
<div id="destaque">
<p>Neto Leal é Macromedia  Partner Master Instructor pela iMedia e Macromedia<br />
Certified Flash MX 2004 Developer, atua na área de desenvolvimento web<br />
desde 2000. Especializado em tecnologias Macromedia, é fundador do<br />
Flash User Group Pernambuco e também Macromedia Speaker. Atualmente envolvido com treinamentos oficiais viaja pelo país ministrando cursos, consultorias e palestras. Neto mantém um <a href="http://www.netoleal.com.b/blog">Blog </a>pessoal onde sempre contribui com comentários atuais sobre o mundo Macromedia e assuntos relacionados a área .  Sempre<br />
trabalhando e procurando desenvolver idéias novas sobre a utilização<br />
do Flash, seu site pessoal tornou-se referência e inspiração para<br />
utilização dos recursos do Flash. Neto adora uma boa música, segundo<br />
ele &#8220;Toda música tem seu momento, não adianta escutar Yanni em pleno churrasco de domingo&#8221;. Quando não está estudando ou trabalhando, gosta<br />
de um cinema e ficar em casa com a família.</p>
</div>
<div id="colunaTexto">
<p>Atualmente o mercado web Brasileiro está acordando para o  Flash. Até<br />
pouco tempo atrás as empresas tinham receio em usar o Flash para se<br />
desenvolver aplicações realmente funcionais pelo simples argumento de<br />
que usar Flash para isso é caro. Essa idéia vem mudando com o<br />
amadurecimento não só da ferramenta mas principalmente dos<br />
profissionais que a utilizam.</p>
<p>A idéia de que desenvolver aplicações em Flash é caro, vem do ponto de<br />
vista de que para se desenvolver esse tipo de aplicação, é preciso um<br />
grande gasto com mão de obra e a relação funcionário/tempo é grande<br />
quando não se utilizam boas práticas. E como o mercado andava cheio de<br />
profissionais não capacitados isso acabava se tornando uma verdade.</p>
<p>Hoje, com o acesso mais fácil a informações proporcionado pelos cursos<br />
oficiais, fórums, sites especializados e comunidades autorizadas (em<br />
Pernambuco, por exemplo, existe o FUGPE &#8211; <a href="http://www.fugpe.com.br">www.fugpe.com.br</a>),  os<br />
profissionais podem se capacitar cada vez mais. Assim eles podem<br />
oferecer às empresas que desenvolvem soluções em Flash, alternativas<br />
que tornam o desenvolvimento mais produtivo. Afinal, quem disse que<br />
não podem ser desenvolvidas em Flash aplicações escaláveis e<br />
manuteníveis? Isso hoje não é mais verdade.</p>
<p>O uso de boas práticas de desenvolvimento abriu os olhos das empresas<br />
de web de forma que possam investir mais em treinamento e assim poder<br />
oferecer aos seus clientes soluções mais ricas. É o caso do site das<br />
havaianas (<a href="http://www.havaianas.com.br">www.havaianas.com.br</a>) e do  Fiat Idea (<a href="http://www.fiatidea.com.br">www.fiatidea.com.br</a>).<br />
Este último com excelente sistema rico que permite ao usuário do site<br />
criar animações personalizadas e salvá-las de forma que todos os<br />
outros visitantes possam vê-la.</p>
<p>É bem verdade que muitos classificam o Flash como ferramenta de<br />
design, mas isso não deixa de ser verdadeiro. Afinal, ActionScript<br />
(linguagem de programação do Flash) é uma das pouquíssimas linguagens<br />
que possibilitam ao programador um resultado visual rico e muito<br />
agradável. Ou seja, programar em ActionScript pode tornar os sonhos<br />
dos designers, realidade.</p>
<p>Com o lançamento da versão mais nova, o Flash 8, a visão de design<br />
ainda aumentou na ferramenta. E como se não bastasse o ActionScript<br />
também foi incrementado com recursos de design. Tais como, filtros,<br />
blend modes, classes geométricas etc. Outras classes essenciais para<br />
tornar a navegação cada vez mais ricas também foram adicionadas a<br />
exemplo da classe FileReference que permite upload de arquivos<br />
diretamente pelo FlashPlayer. Algo que era impossível até então.</p>
<p>Outro fator que contribui ainda mais com a melhoria da interface, é o<br />
Bitmap caching. Com esse recurso, o Designer/Programador está livre<br />
para criar animações sem comprometer a performance do filme. Isso<br />
ocorre por que usando esse recurso, os MovieClips que não sofrerem<br />
alterações de forma durante a execução da animação, não serão<br />
renderizados a cada frame. Sendo usada somente uma imagem Bitmap em<br />
seu lugar SEM incrementar o tamanho do arquivo SWF. De fato, esse<br />
recurso foi um dos que mais me chamaram a atenção.</p>
<p>Com tudo isso, o que se pode concluir, é que se alguém ainda<br />
classifica o Flash como uma ferramenta de animação e fazer bolinha<br />
pular, precisa dar uma olhada mais de perto nele e mudar a forma de<br />
ver as coisas <img src='http://www.mxstudio.com.br/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
</div>
</div>
<p><!-- aqui chamamos a função para formatar todas as DIV's --><br />
<script type="text/javascript"><!--
FormatJS();
// --></script></td>
</tr>
</tbody>
</table>
]]></content:encoded>
			<wfw:commentRss>http://www.mxstudio.com.br/desenvolvimento/ria/a_verdade_sobre_o_desenvolvimento_em_flash/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Criando um banner expansivel</title>
		<link>http://www.mxstudio.com.br/desenvolvimento/dreamweaver/criando_um_banner_expansivel/</link>
		<comments>http://www.mxstudio.com.br/desenvolvimento/dreamweaver/criando_um_banner_expansivel/#comments</comments>
		<pubDate>Wed, 07 Dec 2005 00:00:00 +0000</pubDate>
		<dc:creator>Lucas_marcal</dc:creator>
				<category><![CDATA[Dreamweaver]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Voc&#234; vai ver como &#233; facil.]]></description>
			<content:encoded><![CDATA[<h1>Coluna Dreamweaver &#8211; Criando um banner expansivel</h1>
<div id="comecaondo" class="colunaTexto">Olá pessoal, hoje vamos criar um banner expansivel, para que a matéria não ficasse muito grande eu resolvi disponibilizar o banner em Flash, que você pode baixar clicando <a href="http://www.atualcd.com.br/lucas/mx/Arquivo.rar">aqui</a>
</div>
<div id="div"><span class="colunaTexto">Primeiramente vamos criar uma pagina e chama-la de Index.html</p>
<p>Nessa pagina vamos criar um estilo só para difirenciar do nosso banner, então configure o Page Propriets como na figura abaixo </span></div>
<h1><img src="http://www.mxstudio.com.br/imagens_artigos/http://www.atualcd.com.br/lucas/mx/img/1.jpg" alt="" width="550" height="348" /></h1>
<div id="denovo">Feito isso vamos na paleta &#8220;Layout&#8221; do nosso Dreamweaver e vamos escolher a ferramenta &#8220;Layer&#8221; <img src="http://www.mxstudio.com.br/imagens_artigos/http://www.atualcd.com.br/lucas/mx/img/2.jpg" alt="" width="27" height="22" />, e vamos configurar uma layer de 468 x 300 Pixel.<br />
Adicione dentro dessa layer o arquivo &#8220;Banner.swf&#8221;, que eu disponibilizei para download.<br />
Agora vamos colocar os padrões para que nosso flash fique com o fundo tranparente, clique sobre o arquivo swf dentro do Dreamweaver e vá até o codigo que o Dreamweaver colocou no corpo do HTML.</div>
<h1><a href="http://www.atualcd.com.br/lucas/mx/img/4.jpg"><img src="http://www.mxstudio.com.br/imagens_artigos/http://www.atualcd.com.br/lucas/mx/img/3.jpg" border="0" alt="" width="550" height="178" /><br />
</a></h1>
<div id="destaque">Então seu codigo deve ficar dessa forma&lt;param name=&#8221;movie&#8221; value=&#8221;Banner.swf&#8221;&gt;<br />
&lt;param name=&#8221;quality&#8221; value=&#8221;high&#8221;&gt;<br />
&lt;PARAM NAME=wmode VALUE=transparent&gt;<br />
&lt;embed src=&#8221;Banner.swf&#8221; quality=&#8221;high&#8221; wmode=transparent pluginspage=&#8221;http://www.macromedia.com/go/getflashplayer&#8221; type=&#8221;application/x-shockwave-flash&#8221; width=&#8221;474&#8243; height=&#8221;300&#8243;&gt;</p>
</div>
<p>No final seu banner vai ficar dessa forma:</p>
<div id="banner"><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="468" height="300" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="quality" value="high" /><param name="wmode" value="transparent" /><param name="src" value="http://www.atualcd.com.br/lucas/mx/Banner.swf" /><embed type="application/x-shockwave-flash" width="468" height="300" src="http://www.atualcd.com.br/lucas/mx/Banner.swf" wmode="transparent" quality="high"></embed></object>
</div>
<div id="final">Agora é só executrar sua pagina e você verá que o banner já esta funcionando.<br />
bom pessoal essa coluna foi só pra poder tirar a &#8220;Ferrugem&#8221; e voltar a escrever para o Mxstudio, visitem meu <a href="http://lucasmarcal.blogspot.com" target="_blank">blog</a> e fiquem sabendo mais sobre o meu livro.</div>
]]></content:encoded>
			<wfw:commentRss>http://www.mxstudio.com.br/desenvolvimento/dreamweaver/criando_um_banner_expansivel/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
	</channel>
</rss>

