<?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>Comunidade Portuguesa de Rich Internet Applications &#187; OsFlash</title>
	<atom:link href="http://www.riapt.org/category/osflash/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.riapt.org</link>
	<description></description>
	<lastBuildDate>Thu, 13 May 2010 12:05:13 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Material das apresentações do Portugal Flex Camp</title>
		<link>http://www.riapt.org/2008/02/21/material-das-apresentacoes-do-portugal-flex-camp/</link>
		<comments>http://www.riapt.org/2008/02/21/material-das-apresentacoes-do-portugal-flex-camp/#comments</comments>
		<pubDate>Thu, 21 Feb 2008 20:29:48 +0000</pubDate>
		<dc:creator>João Saleiro</dc:creator>
				<category><![CDATA[Adobe Air]]></category>
		<category><![CDATA[Amfphp]]></category>
		<category><![CDATA[Eventos]]></category>
		<category><![CDATA[Exemplos]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Flash Platform]]></category>
		<category><![CDATA[Flash Player]]></category>
		<category><![CDATA[Flash remoting]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[Formação]]></category>
		<category><![CDATA[OsFlash]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[RIAPT]]></category>

		<guid isPermaLink="false">http://www.riapt.org/2008/02/21/material-das-apresentacoes-do-portugal-flex-camp/</guid>
		<description><![CDATA[Está finalmente reunido o material usado nas apresentações do Portugal Flex Camp. Deixo-vos abaixo os links:

Serge Jespers &#38; Enrique Duvos &#8211; Intro to the Adobe RIA Platform / FB3 features and AIR 1.0 features /Adobe Open-source strategy
Carlos Rovira &#8211; Using Flash and Flex Together
João Fernandes &#8211; BlazeDS e LCDS
João Saleiro &#8211; Integração de aplicações Flex [...]]]></description>
			<content:encoded><![CDATA[<p>Está finalmente reunido o material usado nas apresentações do Portugal Flex Camp. Deixo-vos abaixo os links:</p>
<ul>
<li>Serge Jespers &amp; Enrique Duvos &#8211; <a href="http://flex.org/tour/slides_europe.pdf">Intro to the Adobe RIA Platform / FB3 features and AIR 1.0 features /Adobe Open-source strategy</a></li>
<li>Carlos Rovira &#8211; <a href="http://www.madeinflex.com/2007/10/21/using-flash-and-flex-together/">Using Flash and Flex Together</a></li>
<li>João Fernandes &#8211; <a href="http://www.webfuel.pt/jsaleiro/blazeDSeLCDS.pdf">BlazeDS e LCDS</a></li>
<li>João Saleiro &#8211; <a href="http://www.riapt.org/wp-content/uploads/2008/02/integracao-do-flex-a-um-backend-lamp-atraves2.pdf">Integração de aplicações Flex com PHP através de AMFPHP (Flash Remoting for PHP)</a> e o <a href="http://www.webfuel.pt/jsaleiro/riapt.zip">código fonte</a></li>
</ul>
<p>Vou ver ainda se consigo que me entreguem os vídeos das apresentações, embora não saiba se será possível.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.riapt.org/2008/02/21/material-das-apresentacoes-do-portugal-flex-camp/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Segunda conferência online de Flash Open Source (gratuíta)</title>
		<link>http://www.riapt.org/2007/06/13/segunda-conferencia-online-de-flash-open-source-gratuita/</link>
		<comments>http://www.riapt.org/2007/06/13/segunda-conferencia-online-de-flash-open-source-gratuita/#comments</comments>
		<pubDate>Wed, 13 Jun 2007 13:50:21 +0000</pubDate>
		<dc:creator>João Saleiro</dc:creator>
				<category><![CDATA[Eventos]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Formação]]></category>
		<category><![CDATA[OsFlash]]></category>
		<category><![CDATA[Red5]]></category>

		<guid isPermaLink="false">http://www.riapt.org/2007/06/13/segunda-conferencia-online-de-flash-open-source-gratuita/</guid>
		<description><![CDATA[Na próxima sexta feira, dia 15 de Junho, pelas 15h de Portugal haverá uma conferência online através de Adobe Connect organizada pela comunidade osflash.
O programa é o seguinte:
15h00 Aral Balkan &#8211; Apresentação
15h15 Ralph Hauwert &#8211; Papervision 3D
16h00 Aral Balkan &#8211; SWX
16h45 Nicolas Cannasse &#8211; Haxe Programming Language
17h30 Intervalo
18h00 Firdosh Tangri &#8211; ASWing Component Framework
19h00 Igor [...]]]></description>
			<content:encoded><![CDATA[<p>Na próxima sexta feira, dia 15 de Junho, pelas 15h de Portugal haverá uma conferência online através de Adobe Connect organizada pela comunidade osflash.</p>
<p>O programa é o seguinte:</p>
<p>15h00 Aral Balkan &#8211; Apresentação<br />
15h15 Ralph Hauwert &#8211; Papervision 3D<br />
16h00 Aral Balkan &#8211; SWX<br />
16h45 Nicolas Cannasse &#8211; Haxe Programming Language<br />
17h30 Intervalo<br />
18h00 Firdosh Tangri &#8211; ASWing Component Framework<br />
19h00 Igor Costa &#8211; Flex Applications using Flex 2 SDK and Granite Data Services<br />
20:00 John Grden &#8211; The Red5 Project<br />
21:00 Cortlandt Winters &#8211; OpenLazlo and comparisons between Laszlo, Flash, Flex and Haxe/Actionstep.</p>
<p>Para aceder à conferência basta abrir o seguinte url:<br />
<a href="https://breeze.itap.purdue.edu/r45637951/" class="wiki">https://breeze.itap.purdue.edu/r45637951/</a>.</p>
<p>Para mais informações sobre o evento, consulte <a href="http://osflash.org/ofla2" class="wiki">aqui</a> o anúncio oficial.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.riapt.org/2007/06/13/segunda-conferencia-online-de-flash-open-source-gratuita/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>FLASC &#8211; Usar o MTASC para compilar no &#8220;conforto&#8221; do Flash IDE</title>
		<link>http://www.riapt.org/2007/02/05/flasc-usar-o-mtasc-para-compilar-no-conforto-do-flash-ide/</link>
		<comments>http://www.riapt.org/2007/02/05/flasc-usar-o-mtasc-para-compilar-no-conforto-do-flash-ide/#comments</comments>
		<pubDate>Mon, 05 Feb 2007 10:03:32 +0000</pubDate>
		<dc:creator>João Saleiro</dc:creator>
				<category><![CDATA[Flash]]></category>
		<category><![CDATA[OsFlash]]></category>

		<guid isPermaLink="false">http://www.riapt.org/2007/02/05/flasc-usar-o-mtasc-para-compilar-no-conforto-do-flash-ide/</guid>
		<description><![CDATA[Quem já usou o Flash IDE, sabe o quão desesperante é esperar pelos longos segundos que este demora a compilar projectos quando a biblioteca está repleta de recursos.
O MTASC é um compilador de actionscript gratuíto e open-source que, entre outras potencialidades, consegue compilar projectos enormes no espaço de um segundo. O MTASC é uma das [...]]]></description>
			<content:encoded><![CDATA[<p>Quem já usou o Flash IDE, sabe o quão desesperante é esperar pelos longos segundos que este demora a compilar projectos quando a biblioteca está repleta de recursos.</p>
<p>O <a href="http://www.mtasc.org/" class="wiki">MTASC</a> é um compilador de actionscript gratuíto e open-source que, entre outras potencialidades, consegue compilar projectos enormes no espaço de um segundo. O <a href="http://www.mtasc.org/" class="wiki">MTASC</a> é uma das ferramentas que foquei no post <a href="http://www.riapt.org/2007/01/06/optimizar-o-desenvolvimento-em-flash-usando-ferramentas-open-source/" class="wiki">Optimizar o desenvolvimento  em Flash usando ferramentas Open-Source</a>, sendo usado normalmente fora do Flash IDE noutros IDEs como no <a href="http://www.eclipse.org/" class="wiki">Eclipse</a>, <a href="http://www.flashdevelop.org/" class="wiki">FlashDevelop</a>, <a href="http://www.sephiroth.it/python/sepy.php" class="wiki">Sepy</a>, etc.</p>
<p>Porém, nem todos estão dispostos a abdicar do Flash IDE, mas gostariam de usufruir da velocidade de compilação do MTASC. É aqui que entra o <a href="http://osflash.org/flasc" class="wiki">FLASC</a>, uma extensão que permite compilar usando o MTASC a partir do Flash IDE. Nesta <a href="http://osflash.org/flasc" class="wiki">página</a> existe uma descrição detalhada do FLASC, com um guia de instalação e vídeos exemplificativos.<br />
O FLASC não é propriamente uma novidade, pois já terá quase um ano.</p>
<p>A única &#8220;desvantagem&#8221; de compilar com MTASC, é que este é mais restritivo com a qualidade do código, não permitindo por exemplo #includes e eval, e apelando a algumas boas práticas de desenvolvimento. Mas será isto uma desvantagem ou uma vantagem? (eu voto na opção 2!)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.riapt.org/2007/02/05/flasc-usar-o-mtasc-para-compilar-no-conforto-do-flash-ide/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Optimizar o desenvolvimento em Flash usando ferramentas open-source</title>
		<link>http://www.riapt.org/2007/01/06/optimizar-o-desenvolvimento-em-flash-usando-ferramentas-open-source/</link>
		<comments>http://www.riapt.org/2007/01/06/optimizar-o-desenvolvimento-em-flash-usando-ferramentas-open-source/#comments</comments>
		<pubDate>Sat, 06 Jan 2007 09:13:57 +0000</pubDate>
		<dc:creator>João Saleiro</dc:creator>
				<category><![CDATA[Exemplos]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[OsFlash]]></category>
		<category><![CDATA[Tutoriais]]></category>

		<guid isPermaLink="false">http://www.riapt.org/2007/01/06/optimizar-o-desenvolvimento-em-flash-usando-ferramentas-open-source/</guid>
		<description><![CDATA[&#160;
Introdução
Se já usou o Flash 8 IDE, deverá ter a perfeita consciência de que, apesar de todos os seus pontos fortes, possui várias lacunas que dificultam ou impossibilitam mesmo o desenvolvimento de projectos mais complexos. Entre essas lacunas podem-se contar:

Editor de actionscript muito limitado;
Não apela a boas práticas &#8211; à medida que a dimensão de [...]]]></description>
			<content:encoded><![CDATA[<p align="left">&nbsp;</p>
<h2>Introdução</h2>
<p>Se já usou o <a href="http://www.adobe.com/products/flash/flashpro/" class="wiki">Flash 8</a> IDE, deverá ter a perfeita consciência de que, apesar de todos os seus pontos fortes, possui várias lacunas que dificultam ou impossibilitam mesmo o desenvolvimento de projectos mais complexos. Entre essas lacunas podem-se contar:</p>
<ul>
<li>Editor de actionscript muito limitado;</li>
<li>Não apela a boas práticas &#8211; à medida que a dimensão de um projecto, também aumenta a sua complexidade, muito por culpa do código se encontrar disperso nas frames da timeline dos imensos objectos;</li>
<li>Impossibilidade de desenvolvimento colaborativo &#8211; o facto do ficheiro FLA ser um binário inviabiliza o desenvolvimento de código em simultâneo por diferentes elementos de uma equipa recorrendo, por exemplo, a <a href="http://en.wikipedia.org/wiki/Concurrent_Versions_System" class="wiki">CVS</a>, excepto recorrendo a ficheiros externos .as;</li>
<li>Os componentes da Macromedia são muito pesados, lentos e possuem imensos bugs e falhas;</li>
<li>O compilador é lentíssimo &#8211; um projecto com 100 classes pode demorar vários minutos a compilar;</li>
</ul>
<p>Pretende-se com este tutorial apresentar um ambiente de desenvolvimento mais eficiente recorrendo a algumas ferramentas open-source.</p>
<p>A solução que será apresentada não é completamente open-source, pois continua a depender da utilização do <a href="http://www.adobe.com/products/flash/flashpro/" class="wiki">Flash 8</a> IDE para a construção da biblioteca &#8211; o objectivo não é apresentar uma solução 100% open-source e gratuíta, mas sim apresentar uma solução cómoda e mais eficiente para o desenvolvimento em Flash. Porém, se pretender uma solução 100% open-source, basta substituir o <a href="http://www.adobe.com/products/flash/flashpro/" class="wiki">Flash 8</a> IDE pelo <a href="http://swfmill.org/" class="wiki">SWFMill</a>.</p>
<p>O ambiente proposto é uma alternativa eficiente ao desenvolvimento habitual em Flash. Porém, se pretender construir aplicações Flex deve utilizar o <a href="http://www.adobe.com/products/flex/flexbuilder/" class="wiki">Flex Builder</a> 2 para este fim. A alternativa aqui proposta permite-lhe obter um ambiente de desenvolvimento com ligeiras semelhanças ao ambiente do <a href="http://www.adobe.com/products/flex/flexbuilder/" class="wiki">Flex Builder</a> 2 (ambos se baseiam em <a href="http://www.eclipse.org/" class="wiki">Eclipse</a>), porém, não se trata de uma alternativa ao desenvolvimento em Flex, mas sim ao desenvolvimento em Flash.</p>
<p align="left">&nbsp;</p>
<h2>Vantagens do ambiente proposto, comparativamente ao ambiente do Flash 8 IDE</h2>
<p>Que vantagens se obtêm com o ambiente de desenvolvimento que será proposto?</p>
<ul>
<li>O conforto do <a href="http://www.eclipse.org/" class="wiki">Eclipse</a> como editor de código por excelência para quase todas as linguagens – “one editor to rule them all”. Por outras palavras, pode fazer um projecto inteiro usando Actionscript, JAVA, PHP, UML, etc, sem ter que trocar de editor;</li>
<li><a href="http://en.wikipedia.org/wiki/Syntax_highlighting" class="wiki">Syntax highlighting</a> e code <a href="http://en.wikipedia.org/wiki/Autocompletion" class="wiki">auto-completion</a>: o <a href="http://sourceforge.net/projects/aseclipseplugin/" class="wiki">ASDT</a> irá dotar o <a href="http://www.eclipse.org/" class="wiki">Eclipse</a> da capacidade de editar e colorir código actionscript e de apresentar completação automática do código (basta carregar CTRL+Space para ver uma lista de propostas);</li>
<li>Com este ambiente, desenvolver um projecto em Actionscript será um processo idêntico a desenvolver um projecto em JAVA! Pode usar as mesmas metodologias que usa em JAVA. E com isto pode, claro está, recorrer facilmente a boas práticas de desenvolvimento, como frameworks (<a href="http://osflash.org/arp" class="wiki">ARP</a> e <a href="http://www.iterationtwo.com/open_source_cairngorm.html" class="wiki">Cairngorm</a>) e padrões de desenho;</li>
<li>Os componentes v2 da Macromedia podem ser facilmente substituídos por algumas frameworks de componentes open-source mais completas, como o <a href="http://www.aswing.org/" class="wiki">ASWing</a> – framework idêntica ao Swing do Java;</li>
<li>Torna-se possível o recurso ao <a href="http://en.wikipedia.org/wiki/Concurrent_Versions_System" class="wiki">CVS</a> ou <a href="http://en.wikipedia.org/wiki/Subversion_%28software%29" class="wiki">SVN</a> para trabalho colaborativo;</li>
<li>E principalmente, o compilador (<a href="http://www.mtasc.org/" class="wiki">MTASC</a>) demora meros segundos a compilar projectos gigantescos!;</li>
</ul>
<p>Em resumo, com este ambiente um projecto de grandes dimensões em actionscript pode finalmente ser abordado de uma forma séria, sendo possível aplicar as melhores metodologias de engenharia da programação ao desenvolvimento.</p>
<p>Para mais informações, consulte o site da comunidade <a href="http://www.osflash.org/" class="wiki">OSFlash</a>.</p>
<p align="left">&nbsp;</p>
<h2>Descrição das ferramentas necessárias</h2>
<ul>
<li><a href="http://java.sun.com/j2se/1.4.2/download.html" class="wiki">J2SE</a> – necessário para poder correr o <a href="http://www.eclipse.org/" class="wiki">Eclipse</a>, ou ainda, compilar código JAVA se precisar</li>
<li><a href="http://www.eclipse.org/" class="wiki">Eclipse</a> – o editor que irá usar</li>
<li><a href="http://www.mtasc.org/" class="wiki">MTASC</a> – o compilador de actionscript</li>
<li><a href="http://sourceforge.net/projects/aseclipseplugin/" class="wiki">ASDT</a> – plugin para o <a href="http://www.eclipse.org/" class="wiki">eclipse</a> que lhe permite editar código actionscript</li>
<li><a href="http://en.wikipedia.org/wiki/Apache_Ant" class="wiki">ANT</a> – ir-lhe-á permitir automatizar o processo de compilação, permitindo que com um único shortcut compile e teste a sua aplicação</li>
<li><a href="http://www.adobe.com/products/flash/flashpro/" class="wiki">Flash 8</a> IDE – Necessário para construir a sua biblioteca, e ainda, se assim o desejar, colocar e desenhar os seus ecrâns no stage. O <a href="http://www.adobe.com/products/flash/flashpro/" class="wiki">Flash 8</a> não é open-source, pelo que se quiser pode substituí-lo pelo <a href="http://swfmill.org/" class="wiki">SWFMill</a></li>
</ul>
<p align="left">&nbsp;</p>
<h2>Instalar o Flash 8 IDE</h2>
<p class="simplebox">Faça <a href="https://www.adobe.com/cfusion/tdrc/index.cfm?product=flashpro" class="wiki">download</a> da versão trial do Flash 8, e instale-a com as opções por defeito.</p>
<p>Corra o <a href="http://www.adobe.com/products/flash/flashpro/" class="wiki">Flash 8</a> para confirmar o sucesso da instalação.</p>
<p align="left">&nbsp;</p>
<h2>Instalação do J2SE</h2>
<p class="simplebox">Comece por fazer o download do <a href="http://java.sun.com/j2se/1.4.2/download.html" class="wiki">J2SE</a>. Se pretende fazer também código em JAVA, retire o SDK. Caso contrário, basta-lhe o JRE.</p>
<p>Depois de terminar corra o instalador que recebeu, e pode aceitar todas as opções por defeito.</p>
<p align="left">&nbsp;</p>
<h2>Instalação do Eclipse</h2>
<p class="simplebox">Faça o download do <a href="http://www.eclipse.org/downloads/download.php?file=/eclipse/downloads/drops/R-3.2.1-200609210945/eclipse-SDK-3.2.1-win32.zip" class="wiki">Eclipse</a>.</p>
<p>Depois de terminar, utilize o seu descompressor (i.e. <a href="http://www.winzip.com/" class="wiki">Winzip</a>, <a href="http://www.rarlab.com/" class="wiki">WinRar</a>, etc) para descomprimir o <a href="http://www.eclipse.org/" class="wiki">Eclipse</a> para uma pasta da sua preferência (p. ex. C:\Programas\Eclipse).</p>
<p>Se preferir, crie um atalho no seu ambiente de trabalho para o <a href="http://www.eclipse.org/" class="wiki">Eclipse</a>.</p>
<p>Sempre que instalar um novo plugin manualmente no <a href="http://www.eclipse.org/" class="wiki">Eclipse</a>, terá que arrancá-lo pela linha de comandos com a seguinte sintaxe  “eclipse.exe -clean&#8221;.</p>
<p align="left">&nbsp;</p>
<h2>Instalação do MTASC</h2>
<p class="simplebox">Faça o download do <a href="http://www.mtasc.org/" class="wiki">MTASC</a>.</p>
<p>Descomprima o <a href="http://www.mtasc.org/" class="wiki">MTASC</a> para uma pasta da sua preferência (p. ex. C:\Programas\<a href="http://www.mtasc.org/" class="wiki">MTASC</a>), e recorde-se do local para onde descomprimiu o <a href="http://www.mtasc.org/" class="wiki">MTASC</a>.</p>
<p align="left">&nbsp;</p>
<h2>Instalação do ASDT</h2>
<p class="simplebox">Corra o <a href="http://www.eclipse.org/" class="wiki">Eclipse</a></p>
<p>Quando lhe for pedido para escolher um workspace, deixe o que está por defeito, ou aponte para a pasta onde deseja colocar os seus projectos</p>
<p>Se lhe for exibida a janela de boas vindas, feche-a</p>
<p>Escolha Help &gt; Software Updates &gt; Find and Install</p>
<p>Escolha Search for new features to install e clique em Next</p>
<p>Clique em New Remote Site</p>
<p>Escreva ASDT na caixa de texto para o nome, e <a href="http://aseclipseplugin.sourceforge.net/updates/" class="wiki">http://aseclipseplugin.sourceforge.net/updates/</a> na caixa para o URL e clique em OK</p>
<p>Active a checkbox do ASDT na lista e clique em Finish</p>
<p>A partir daqui o <a href="http://www.eclipse.org/" class="wiki">Eclipse</a> irá instalar o <a href="http://sourceforge.net/projects/aseclipseplugin/" class="wiki">ASDT</a> automaticamente. Se lhe for pedido para confirmar, ou para escolher novamente o <a href="http://sourceforge.net/projects/aseclipseplugin/" class="wiki">ASDT</a> na lista, active novamente a checkbox e clique em Next.</p>
<p>Quando a instalação terminar, reinicie o <a href="http://www.eclipse.org/" class="wiki">Eclipse</a>.</p>
<p align="left">&nbsp;</p>
<h2>Configurar o ASDT e o MTASC</h2>
<p class="simplebox">Escolha Window &gt; Preferences.</p>
<p>Escolha Actionscript2 &gt; Compiler na lista à esquerda.</p>
<p>Na caixa Select Compiler, escolha <a href="http://www.mtasc.org/" class="wiki">MTASC</a>.</p>
<p>Active as opções:<br />
Check syntax on Save<br />
Check syntax when a AS file is opened</p>
<p>Na lista à direita, escolha, Actionscript2 &gt; Compiler &gt; <a href="http://www.mtasc.org/" class="wiki">MTASC</a></p>
<p>Na caixa Location of MTASC.exe coloque o caminho para onde descomprimiu o <a href="http://www.mtasc.org/" class="wiki">MTASC</a>. Por exemplo: C:\Program Files\mtasc-1.12\mtasc.exe</p>
<p>Neste ecrân, deixe todas as caixas em branco.</p>
<p>Na realidade, iremos utilizar uma <a href="http://en.wikipedia.org/wiki/Apache_Ant" class="wiki">ANT</a> task para se encarregar da compilação, e não o próprio <a href="http://sourceforge.net/projects/aseclipseplugin/" class="wiki">ASDT</a>. Esta configuração serve apenas para que possâmos obter validação do nosso código sempre que gravamos o ficheiro actionscript.</p>
<p class="simplebox">Na lista à direita, escolha agora Actionscript 2 &gt; Core Path.</p>
<p>Na caixa Directory of Macromedia’s core classes coloque C:\Documents and Settings\{O SEU NOME}\Local Settings\Application Data\Macromedia\Flash 8\en\Configuration\Classes . Não se esqueça de mudar {O SEU NOME} para o seu nome de utilizador. Certifique-se que o caminho existe realmente, usando o botão Browse.</p>
<p align="left">&nbsp;</p>
<h2>Alterar as classes da Macromedia para que possam ser compiladas com o MTASC</h2>
<p>O <a href="http://www.mtasc.org/" class="wiki">MTASC</a> não suporta #includes, pois esta directiva é desaconselhada e cada vez menos usada, por não apelar a boas práticas de programação (o ideal é que seja criado uma classe por cada ficheiro .as). Algumas classes do SDK do <a href="http://www.adobe.com/products/flash/flashpro/" class="wiki">Flash 8</a> não são compatíveis com o <a href="http://www.mtasc.org/" class="wiki">MTASC</a>, por usarem esta directiva.</p>
<p>Para corrigir este problema, basta comentar em cada ficheiro com erro a linha que possui o dito #include. Porém, só deverá fazer isso se for utilizar as classes com problema, como por exemplo, as classes de Tweening.</p>
<p>Para corrigir as classes de Tweening:</p>
<p class="simplebox"> Utilize o explorador do window para procurar a pasta C:\Documents and Settings\{O SEU NOME}\Local Settings\Application Data\Macromedia\Flash 8\en\Configuration\Classes\mx\transitions</p>
<p>Se não consegue ver esta pasta, certifique-se que já instalou o <a href="http://www.adobe.com/products/flash/flashpro/" class="wiki">Flash 8</a> e que tem activa a opção do explorador do windows de ver as pastas escondidas e de sistema.</p>
<p>Abra todos os ficheiros nesta pasta, e comente ou apague a linha #include &#8220;Version.as&#8221; em todos os que a tiverem. Ou seja: //#include &#8220;Version.as&#8221;.</p>
<p>Se durante o seu desenvolvimento obtiver erros de compilação relativamente a alguma outra classe da Macromedia, basta que a abra e que comente a linha descrita anteriormente, e o problema ficará resolvido.</p>
<p align="left">&nbsp;</p>
<h2>O primeiro projecto Actionscript</h2>
<p>Comece por activar a perspectiva de desenvolvimento em Actionscript 2:</p>
<p class="simplebox">Escolha Window &gt; Open Perspective &gt; Other</p>
<p>Escolha Actionscript 2 na lista e clique em OK.</p>
<p>Chega então a altura de criar o primeiro projecto:</p>
<p class="simplebox">Escolha File &gt; New &gt; Project</p>
<p>Abra a pasta Actionscript,  escolha New Actionscript 2 Project e clique em Next.</p>
<p>No Project name coloque <span class="wiki">OlaMundo</span> e clique em Next</p>
<p>Deixe os valores por defeito e clique em Finish.</p>
<p>À direita, no Navigator deverá ter ficado com um projecto chamado <span class="wiki">OlaMundo</span>. Expanda este projecto, e deverá ter duas pastas: core e src. A pasta core possui as classes do SDK da Macromedia, que definiu na configuração do <a href="http://sourceforge.net/projects/aseclipseplugin/" class="wiki">ASDT</a>, e na pasta src deverá colocar o seu código actionscript.</p>
<p class="simplebox">Dentro a pasta src, crie uma pasta chamada org. Para isso clique com o botão direito sobre SRC, e escolha New &gt; Other &gt; General &gt; Folder, e clique Next. No novo ecrân escreva “org” na caixa Folder name, e clique em Finish.</p>
<p>Faça o mesmo para criar uma pasta chamada riapt dentro da pasta org.</p>
<p>Clique com o botão direito sobre a pasta riapt e escolha New &gt; New Actionscript2 Class.</p>
<p>Na Class name coloque <span class="wiki">OlaMundo</span> e clique em Finish.</p>
<p>Deverá possuir um novo ficheiro Actionscript, onde irá colocar o seguinte código:</p>
<p dir="ltr">&nbsp;</p>
<pre class="prettyprint">
class org.riapt.OlaMundo {

	private var caixaDeTexto:TextField;
	private var scope:MovieClip;

	function OlaMundo(scope:MovieClip){
		this.scope=scope;
	  	scope.createTextField("caixaDeTexto", 1, 50, 50, 100, 100);
  		scope.caixaDeTexto.html = true;
	  	scope.caixaDeTexto.multiline = true;
  		scope.caixaDeTexto.wordWrap = true;
	  	scope.caixaDeTexto.border = true;
	}

	public static function main():Void{
  		var ola:OlaMundo = new OlaMundo(_root);
  		ola.escreve();
	}

	public function escreve():Void{
  		scope.caixaDeTexto.htmlText = "Olá Mundo!";
	}
}</pre>
<p>Se preferir, pode descarregar um exemplo deste projecto <a href="http://www.riapt.org/wp-content/uploads/2007/10/olamundo.zip"><span class="wiki">aqui</span></a><span class="wiki"></span>. Porém, para compilar terá que abrir o ficheiro build.xml e alterar algumas propriedades descritas seguidamente.</p>
<p align="center">&nbsp;</p>
<h2 align="left">Compilação com ANT</h2>
<p>O <a href="http://en.wikipedia.org/wiki/Apache_Ant" class="wiki">ANT</a> é uma ferramenta para automatizar a compilação. Para compilar o programa anterior, pode utilizar a linha de comandos e chamar o <a href="http://www.mtasc.org/" class="wiki">MTASC</a> manualmente, pode utilizar o <a href="http://www.potapenko.com/flashout/" class="wiki">FlashOut</a> ou o próprio <a href="http://sourceforge.net/projects/aseclipseplugin/" class="wiki">ASDT</a>, mas o método mais confortável é criar uma tarefa <a href="http://en.wikipedia.org/wiki/Apache_Ant" class="wiki">ANT</a> que se encarregará de todo o processo de compilação do seu código.</p>
<p>Para tal, crie um ficheiro com o nome build.xml na pasta src do seu projecto.</p>
<p class="simplebox">Clique com o botão direito sobre a pasta src e escolha New &gt; General &gt; File, e clique em Next. No File name coloque build.xml e clique em Finish.</p>
<p>Neste ficheiro deverá colocar o seguinte código:</p>
<pre>

&lt;?xml version="1.0" encoding="utf-8"?&gt;
&lt;project name="olaMundo" default="compileMTASC" basedir="."&gt;

	&lt;description&gt;Build file for olaMundo&lt;/description&gt;

	&lt;!-- user modifiable properties --&gt;
	&lt;property name="ASFile" value="org\riapt\OlaMundo.as"/&gt;
	&lt;property name="SWFFile" value="D:\workspace\OlaMundo\bin\OlaMundo.swf"/&gt;
	&lt;property name="classPath" value="D:\workspace\OlaMundo\src"/&gt;
	&lt;property name="MacromediaClassPath" value="C:\Documents and Settings\joao\Local Settings\Application Data\Macromedia\Flash 8\en\Configuration\Classes"/&gt;
	&lt;property name="additionalParams" value=" -mx "/&gt;

	&lt;!-- trace command --&gt;
	&lt;!--property name="TraceCommand" value="Log.addMessage"/--&gt;
	&lt;!--property name="TraceCommand value="tv.zarate.Utils.Trace.trc"/--&gt;

	&lt;!-- classpath info --&gt;
	&lt;!--property name="additionalClassPath" value="d:\webfuel\onfashion_pt\src\org\asdt\logger"/--&gt;

	&lt;!-- tool info --&gt;
	&lt;property name="mtasc" location="C:\Program Files\mtasc-1.12\mtasc.exe"/&gt;

	&lt;property name="flashplayer" value="C:\Program Files\Macromedia\Flash 8\Players\SAFlashPlayer.exe"/&gt;

	&lt;!-- folder info --&gt;
	&lt;property name="source" location="source"/&gt;
	&lt;property name="deploy" location="deploy"/&gt;

	&lt;target name="compileMTASC"&gt;
		&lt;exec executable="${mtasc}" failinhibited_error="true"&gt;
			&lt;arg line='-main "${ASFile}" ${additionalParams} -swf "${SWFFile}" -cp "${classPath}"  -cp "${additionalClassPath}" -cp "${MacromediaClassPath}" -version 8 -trace ${TraceCommand} -header 800:600:31'/&gt;
		&lt;/exec&gt;
		&lt;exec executable="${flashplayer}" spawn="true"&gt;
			&lt;arg value="${SWFFile}"/&gt;
		&lt;/exec&gt;
	&lt;/target&gt;
&lt;/project&gt;</pre>
<p>Deverá alterar as seguintes propriedades:</p>
<p class="simplebox"> SWFFile: Coloque o caminho completo de onde deseja colocar o seu ficheiro SWF. Confirme que o caminho que escreveu já existe no sistema (i.e. se colocar o ficheiro swf numa pasta bin, certifique-se de que criou a pasta bin primeiro).</p>
<p>classPath: Coloque o caminho completo para a sua pasta src</p>
<p>MacromediaClassPath: Coloque o caminho completo para a pasta das classes da Macromedia no seu sistema.</p>
<p>Mtasc: Coloque aqui o caminho completo para o ficheiro mtasc.exe</p>
<p>Flashplayer: Coloque aqui o caminho completo para o ficheiro SAFlashPlayer.exe que vem com o seu Macromedia <a href="http://www.adobe.com/products/flash/flashpro/" class="wiki">Flash 8</a>.</p>
<p>Se tudo estiver bem configurado, está na altura de compilar. Clique com o botão direito sobre o ficheiro build.xml e escolha Run As &gt; Ant Build.</p>
<p>Se ocorrer um erro durante a compilação, deverá ver qual a mensagem na Console, e tentar corrigir o problema – provavelmente enganou-se num dos caminhos.</p>
<p>Se a compilação for bem sucedida, deverá aparecer a mensagem BUILD SUCCESSFUL na Console, e será aberta uma instância do Flash Player com o seu programa.</p>
<p align="center">&nbsp;</p>
<h2>Criar a biblioteca no Flash</h2>
<p>Repare que na linha <em>arg line=</em> possui um parâmetro</p>
<pre class="codelisting">–header 800:600:31</pre>
<p>Este parâmetro serve para indicar ao <a href="http://www.mtasc.org/" class="wiki">MTASC</a> que irá criar um ficheiro SWF de origem.</p>
<p>Porém, provavelmente ser-lhe-á mais útil criar a sua biblioteca, e o aspecto e estrutura dos seus ecrâns utilizando ferramentas visuais. A grande vantagem de utilizar o <a href="http://www.mtasc.org/" class="wiki">MTASC</a> é que pode construir a sua biblioteca no Flash, compilar, e depois utilizar o <a href="http://www.eclipse.org/" class="wiki">Eclipse</a> para fazer o código. O <a href="http://www.mtasc.org/" class="wiki">MTASC</a> encarregar-se-á de injectar o código no SWF que criou no Flash. Para tal, deve alterar o seu build.xml, removendo a expressão -header 800:600:31 da linha “arg line=”.</p>
<p>Deverá então, primeiro construir toda a sua biblioteca e ecrâns no Flash IDE, e compilar com o compilador da Macromedia. A partir daí pode fechar o Flash IDE, e passar a usar somente o <a href="http://www.eclipse.org/" class="wiki">Eclipse</a> para escrever a sua aplicação, compilando sempre com o <a href="http://www.mtasc.org/" class="wiki">MTASC</a>!</p>
<p>Se não tiver possibilidade de comprar o Flash IDE, ou se preferir utilizar unicamente ferramentas open-source, pode experimentar a ferramenta <a href="http://swfmill.org/" class="wiki">SWFMill</a>.</p>
<p align="center">&nbsp;</p>
<h2 align="left">Exemplo de um projecto com biblioteca em Flash</h2>
<p>Veja este <a href="http://www.riapt.org/wp-content/uploads/2007/10/olamundocombiblioteca.zip"><span class="wiki">exemplo</span></a> para ver como deve estruturar o código Actionscript e o FLA de forma a obter o descrito anteriormente.</p>
<p>Compile primeiro o ficheiro OlaMundoComBiblioteca<span class="wiki wikinew"></span>.fla no Flash IDE, para ser construído o SWF com a biblioteca. Depois compile então no <a href="http://www.eclipse.org/" class="wiki">Eclipse</a> através do build.xml para injectar o código actionscript.</p>
<p align="center">&nbsp;</p>
<h2>Object.RegisterClass</h2>
<p>O <a href="http://www.adobe.com/support/flash/action_scripts/actionscript_dictionary/actionscript_dictionary609.html" class="wiki">Object.registerClass</a> é uma ténica que serve para associar uma classe actionscript a um objecto previamente desenhado no Flash IDE e colocado na biblioteca.</p>
<p class="simplebox">Para utilizar esta técnica, usando o Flash 8, clique com o botão direito sobre o objecto na biblioteca a que deseja poder associar uma classe e escolha Linkage.</p>
<p>Na secção Linkage, escolha “Export for Actionscript” e “Export in first frame”.</p>
<p>No identifier deve meter o nome da classe que deseja ligar a este MovieClip, neste caso org.riapt.BotaoDeTeste.</p>
<p>No <a href="http://www.eclipse.org/" class="wiki">Eclipse</a>, para cada classe que deseja linkar a um símbolo deve colocar o seguinte código:</p>
<p dir="ltr">&nbsp;</p>
<pre class="prettyprint">
public static var symbolName:String = "org.riapt.OlaMundoComBiblioteca";
private static var symbolLinked= Object.registerClass(symbolName, OlaMundoComBiblioteca);</pre>
<p class="simplebox">No SymbolName deve colocar o nome do Identifier que escreveu no Flash IDE.</p>
<p>No segundo argumento do SymbolLinked deve colocar o nome da classe que deseja linkar.</p>
<p align="center">&nbsp;</p>
<h2>Alguns pontos a reter</h2>
<p>Seguidamente, é apresentado o código do ficheiro OlaMundoComBiblioteca<span class="wiki wikinew"></span>.as:</p>
<p dir="ltr">&nbsp;</p>
<pre class="prettyprint">

import org.riapt.BotaoDeTeste;
class org.riapt.OlaMundoComBiblioteca extends MovieClip {

	//
	// Grupo: No Stage
	//
	private var caixaDeTexto:TextField;
	private var botaoDeTeste:BotaoDeTeste;

	//
	// Grupo: Registo
	//
	public static var symbolName:String = "org.riapt.OlaMundoComBiblioteca";
	private static var symbolLinked= Object.registerClass(symbolName, OlaMundoComBiblioteca);

	function OlaMundoComBiblioteca() {	}

	function onLoad() {
		caixaDeTexto.text="Olá Mundo, agora com biblioteca!";
		botaoDeTeste.setTexto("Continuar");
	}

	public static function main():Void {  }

}</pre>
<p>Observando o código anterior, notam-se algumas diferenças em relação ao exemplo <span class="wiki">OlaMundo</span>.as.</p>
<p>Antes de mais, não existe código no main(), ou seja, não é preciso instanciar a classe OlaMundoComBiblioteca pois no Flash IDE foi colocado no Stage um simbolo que está linkado à classe OlaMundoComBiblioteca. Como está no Stage, o símbolo é instanciado quando o SWF é arrancado, e devido à sua ligação a uma classe (através do Object.registerClass), a classe é instanciada automaticamente.</p>
<p>Outra diferença, é que a classe OlaMundoComBiblioteca extende a classe MovieClip. Isto é necessário, pois se esta classe corresponde a um símbolo no Stage, então &#8220;será&#8221; um MovieClip, possuindo todas as características e métodos de um MovieClip. A classe <em>é</em> o símbolo que está no stage.</p>
<p>É ainda importante realçar que não existe código no construtor da classe, mas sim no método onLoad(). Isto acontece porque no momento em que o construtor é corrido, os objectos que estão dentro desta classe ainda não foram instanciados (i.e. o BotaoDeTeste ainda não foi instanciado). A solução é colocar o código dentro do método onLoad(), que corresponde ao evento que indica que todos os objectos que pertencem à classe em questão já foram carregados e instanciados.</p>
<p>No Flash IDE não existe nenhum código, nem deve existir&#8230; excepto algumas linhas que estão na primeira frame, com o seguinte código:</p>
<p dir="ltr">&nbsp;</p>
<pre class="prettyprint">

var a = mx.utils.Delegate;
var c = mx.remoting.Service;
var d = mx.rpc.RelayResponder;
var e = mx.rpc.ResultEvent;
var f = mx.rpc.FaultEvent;
var g = mx.remoting.PendingCall;
var h = mx.controls.TextInput;
var j = mx.managers.PopUpManager;</pre>
<p>As classes aqui referidas estão já pré-compiladas pela Macromedia, pelo que o <a href="http://www.mtasc.org/" class="wiki">MTASC</a> não as volta a compilar, nem as insere na aplicação (existe, porém, um parâmetro do <a href="http://www.mtasc.org/" class="wiki">MTASC</a> para forçar a compilação destas classes, mas pessoalmente prefiro usar esta técnica).<br />
Este código foi criado no Flash IDE para garantir que essas classes são mesmo inseridas no SWF. Claro que para este exemplo estas classes não são necessárias, tendo sido apenas lá colocadas a título explicativo.</p>
<p align="center">&nbsp;</p>
<h2>Algumas dicas</h2>
<p>Aconselho a que seja dada uma vista de olhos à classe <a href="http://www.adobe.com/devnet/flash/articles/eventproxy.html" class="wiki">mx.utils.Delegate</a>, que deve ser usada para definir qual o scope em que deverá ser corrida determinada função. É habitual a utilização de Delegates quando se pretende associar uma função a um evento, definindo o scope em que a função deverá correr.</p>
<p>Nunca deve ser colocado nenhum código na timeline, exceptuando o anteriormente referido para importar as classes pré-compiladas.</p>
<p>Sugiro que sempre que possível tente fazer as suas animações através de actionscript utilizando as classes de <a href="http://livedocs.macromedia.com/flash/8/main/wwhelp/wwhimpl/common/html/wwhelp.htm?context=LiveDocs_Parts&amp;file=00001501.html" class="wiki">Tween</a> do Flash, ou usando um pacote de animação como o <a href="http://www.alex-uhlmann.de/flash/animationpackage/" class="wiki">AnimationPackage</a> ou o <a href="http://www.mosessupposes.com/Fuse/" class="wiki">Fuse Kit</a>.</p>
<p>Para que uma aplicação fique bem desenhada, é imperativo a utilização de eventos. Sugiro que sempre que indicado as classes sejam EventDispatchers<span class="wiki wikinew"></span>, através do comando EventDispatcher<span class="wiki wikinew"></span>.initialize(this);. Consulte a classe <a href="http://www.koders.com/actionscript/fidB346C7C531744D6D423F478B1589CFA9CE6B76A3.aspx" class="wiki">ArpForm</a> da framework <a href="http://osflash.org/arp" class="wiki">ARP</a> do <a href="http://www.aralbalkan.com/" class="wiki">Aral Balkan</a>.</p>
<p align="center">&nbsp;</p>
<p class="titlebar">Outras ferramentas e metodologias para enriquecer o ambiente de desenvolvimento</p>
<p>Posteriormente será explicado noutros tutoriais como adicionar mais ferramentas ao seu ambiente de desenvolvimento para obter ainda mais produtividade. Mas entretanto fica aqui uma lista das ferramentas e metodologias indispensáveis para reforçar o desenvolvimento:</p>
<ul>
<li><a href="http://osflash.org/arp" class="wiki">ARP</a> ou <a href="http://www.iterationtwo.com/open_source_cairngorm.html" class="wiki">Cairngorm</a> – frameworks <a href="http://en.wikipedia.org/wiki/Model-view-controller" class="wiki">MVC</a> de desenvolvimento de RIAs (open-source)</li>
<li><a href="http://en.wikipedia.org/wiki/Concurrent_Versions_System" class="wiki">CVS</a> ou <a href="http://en.wikipedia.org/wiki/Subversion_%28software%29" class="wiki">SVN</a> – sistemas de controlo de versões e trabalho colaborativo. Pessoalmente, uso o <a href="http://cvsdude.com/" class="wiki">CVSDude</a>.</li>
<li><a href="http://osflash.org/xray" class="wiki">Xray</a> ou ASLogger – sistemas de debugging e logging (open-source)</li>
<li><a href="http://www.aswing.org/" class="wiki">ASWing</a> – framework de componentes visuais, semelhante ao JAVA Swing (open-source)</li>
<li><a href="http://www.amfphp.org/" class="wiki">AMFPHP</a> ou <a href="http://www.openamf.com/cms/" class="wiki">openAMF</a> – implementações de Flash Remoting, a primeira para PHP e a segunda para JAVA (open-source)</li>
<li><a href="http://kevinlangdon.com/serviceCapture/" class="wiki">Service Capture</a> – “<a href="http://en.wikipedia.org/wiki/Packet_sniffer" class="wiki">Packet Sniffer</a>” que permite interceptar e interpretar objectos AMF trocados por Flash Remoting (comercial, cerca de 30€)</li>
</ul>
<p align="center">&nbsp;</p>
<h2>Em resumo</h2>
<p>Comparar o desenvolvimento dentro do Flash IDE com a solução aqui apresentada, é como comparar um triciclo a um Ferrari. Construir aplicações complexas recorrendo a boas práticas dentro do Flash IDE é uma tarefa penosa ou mesmo impossível.<br />
As técnicas aqui apresentadas alargam o horizonte das possibilidade do Flash, e permitem que técnicas aplicadas ao desenvolvimento maduro de aplicações extensas e robustas, normalmente técnicas de programadores JAVA, sejam reutilizadas em Actionscript.</p>
<p>A partir deste ponto, inserir uma framework MVC ao desenvolvimento em Flash é algo relativamente semelhante ao que se faz em JAVA.</p>
<p>Os passos que deverá tomar em seguida, deverão ser:</p>
<ul>
<li>aprender a fazer debugging com o <a href="http://osflash.org/xray" class="wiki">Xray</a></li>
<li>criar uma aplicação cliente-servidor com base de dados, utilizando Flash Remoting (<a href="http://www.amfphp.org/" class="wiki">AMFPHP</a>, <a href="http://www.openamf.com/cms/" class="wiki">openAMF</a>, ou outra) para a comunicação</li>
<li>recorrer a uma framework MVC como a <a href="http://osflash.org/arp" class="wiki">ARP</a> ou a <a href="http://www.iterationtwo.com/open_source_cairngorm.html" class="wiki">Cairngorm</a> para criar aplicações mais robustas</li>
<li>configurar o <a href="http://www.eclipse.org/" class="wiki">eclipse</a> para utilizar <a href="http://en.wikipedia.org/wiki/Concurrent_Versions_System" class="wiki">CVS</a> ou <a href="http://en.wikipedia.org/wiki/Subversion_%28software%29" class="wiki">SVN</a>, possibilitando o trabalho colaborativo</li>
</ul>
<p>Para mais informações, consulte o site da comunidade <a href="http://www.osflash.org/" class="wiki">OSFlash</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.riapt.org/2007/01/06/optimizar-o-desenvolvimento-em-flash-usando-ferramentas-open-source/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
