15 Junho 2007

Adobe Flash CS3 - Migrando para o ActionScript 3

Migrando para o ActionScript 3

O novo Flash CS3 diferentemente dos anteriores vem com uma linguagem que outro software já vinha utilizando (Adobe Flex), porém, nem mesmo assim alguns desenvolvedores conseguiram migrar com facilidade, a linguagem de programação mudou como nunca, nem mesmo a mudança do ActionScript 1 para o ActionScript 2 (Flash MX 2004) representava tantas novidades. A migração desta vez é realmente significativa tanto em performance quanto em metodologia de desenvolvimento e facilitará muito o entendimento da linguagem agora totalmente renovada.
Neste artigo tentarei passar o que desenvolvedores mais antigos podem estudar para a migração da versão, que está mais poderosa do que nunca.

Display Object Container x MovieClip

Na versão anterior, ActionScript 2, o Flash sempre abusou da classe MovieClip, que era a principal classe para a construção de elementos visuais no Flash. Hoje, devemos pensar um pouco diferente, devemos usar a MovieClip somente quando possuímos frames, uma timeline interna ao objeto. Isso porque a classe MovieClip representa muito mais espaço na memória que um simples Shape, ou mesmo um objeto do tipo Sprite.
Em ActionScript 3, Shape é representado por uma classe, onde esta exibe simplesmente um desenho no Stage, ela não pode conter outros objetos dentro, representa a display object.
Para inserir objetos dentro de outros, assim como é feito com a classe MovieClip em AS2, devemos utilizar um objeto que representa a display object container, que é o caso da classe MovieClip e Sprite. A Sprite significativamente menor que a MovieClip em relação à memória, isso porque ela não contém frames, pode conter outros objetos dentro, mas não possui métodos como o play(), específico para MovieClip.

Undefined x Null

Os objetos que eram criados na ActionScript sempre eram representados por undefined, um tipo de objeto primitivo, porém, associado ao valor de uma variável. Na ActionScript 3 é retornado null ao invés de undefined quando pedimos o tipo string. Exemplo:

ActionScript 2

var software:String;
trace(software);
//retorna undefined
var numero:Number;
trace(numero);
//retorna undefined

ActionScript 3

var software:String;
trace(software);
//retorna null
var numero:Number;
trace(numero);
//retorna NaN (not a number)

Onde ficou o undefined? Temos o resultado undefined quando tipificamos o objeto como sem tipo definido, isso mesmo, qualquer instância:

var software:*;
trace(software);
//retorna undefined

Ou ainda em retornos indefinidos em funções que é representado pela keyword void (não mais Void), exemplo:

private function init():void{
}

Constantes

Constantes são como variáveis, porém, representam algo e mantém seu valor inalterado, por exemplo, PI, da classe Math.
Hoje podemos realmente dizer ao compilador quem é uma constante, não só pela representação textual em caixa alta, mas também pela sua definição:

ActionScript 2
var NUMERO_MINIMO:Number = 1;

ActionScript 3
const NUMERO_MINIMO:Number = 1;

Muito interessante não? Agora usuários de sua constante não mais poderão alterar o valor dela.

Propriedades MovieClip

Seguindo a convenção de nomes, que muitos desenvolvedores adotam, a Adobe retirou os antigos sinais underscore ( _ ) do início das propriedades da classe MovieClip:

import flash.display.MovieClip;

var quadro:Sprite = new Sprite();
quadro.graphics.beginFill(0x990000);
quadro.graphics.drawRect(50, 50, 100, 100);
quadro.graphics.endFill ();
quadro.alpha = 50;
quadro.rotation = 45;

Lembrando que as propriedades se encontram na DisplayObject, não mais em MovieClip, objetos do tipo MovieClip apenas contêm essas propriedades por derivarem da classe Sprite, que por sua vez herda DisplayObjectContainer.

Document class

Para mim, uma mudança fundamental, aguardava essa implementação desde o Flash MX 2004, onde foram inseridas as classes.
Alterar a classe da root é fundamental pra que você controle o projeto 100% via ActionScript, sem se quer abrir o Flash. Anteriormente não era possível fazer isso, as opções que tínhamos era inserir código no primeiro frame da timeline ou inserir um MovieClip no primeiro frame da aplicação convertendo-o posteriormente em classe, para assim teoricamente substituir a classe do documento principal.

Depths

Antigamente utilizados para manipular o nível de cada objeto visual no stage, agora substituído pela childIndex, mantém um padrão mais fácil para inserção de objetos visuais no palco:

import flash.display.Sprite;
import flash.geom.Matrix;
var matrix:Matrix = new Matrix();
matrix.createGradientBox(100, 100, 0, 50, 50);
var colors = [0x990000, 0xFF0000];
var alphas = [100, 100];
var ratios = [0x00, 0xFF];
var desenho:Sprite = new Sprite();
desenho.graphics.beginGradientFill(GradientType.LINEAR, colors, alphas, ratios, matrix);
desenho.graphics.drawRoundRect(50, 50, 100, 50, 20);
desenho.graphics.endFill();
this.addChild(desenho);

Como vemos, os objeto são criados, porém só estão visíveis a partir do momento que utilizamos o método addChild() para anexa-los a algum objeto.

Event handling

Os tratadores de evento foram incluídos no ActionScript 3 num padrão único, utilizados antigamente somente por componentes do próprio Flash e componentes criados com a classe EventDispatcher. Os quais eram utilizados da seguinte maneira:

import mx.controls.Button;

var adiciona:Button;
var listener:Object = new Object();

listener.click = function(evt:Object):Void {
trace(evt.target);
};

adiciona.addEventListener("click",listener);

Em ActionScript 3 manipulamos todos os eventos da mesma forma, porém cada string pode ser representada por uma constante, como no exemplo abaixo, onde utilizo o enterFrame:

import flash.events.Event;
import flash.display.Sprite;

var objeto:Sprite = new Sprite();
objeto.graphics.beginFill(0x990000);
objeto.graphics.drawRect(50, 50, 50, 50);
objeto.graphics.endFill();
objeto.addEventListener(Event.ENTER_FRAME, _onEnterFrame);

function _onEnterFrame(evt:Event):void {
evt.target.x += 2;
}

this.addChild(objeto);

Finalização

O Flash hoje é totalmente manipulado pela ActionScript, possui uma Orientação a Objetos rígida e está indo para um ponto diferente, onde escalabilidade, manutenção e performance são o ponto diferencial, além de manter o rico apelo visual que o Flash sempre proporcionou. Neste artigo foquei apenas alterações básicas no código, porém o Flash CS3 ActionScript 3 proporciona muito mais que isso, onde entramos no assunto sobre classes, visando maior expansão e reutilização de código… Maiores informações ou mesmo cursos na área podem ser obtidos na ENG, onde ministro treinamentos em todos os módulos da ActionScript 1, 2 e 3, o site é www.eng.com.br.
Espero que tenham aproveitado e aproveitem mais ainda essa ferramenta que hoje é um grande presente para os desenvolvedores para a internet rica, que cresce cada vez mais!

Autor: Leandro Amano

Site: www.leandroamano.com.br
Sobre: Leandro Amano atualmente é desenvolvedor Adobe/Macromedia e desenvolve aplicativos ricos (RIA) desde 2002, Adobe User Group Leader do Flashfor, diretor de criação da Digital Bug e instrutor Adobe/Macromedia na ENG DTP & Multimídia em São Paulo - SP e Curitiba - PR.

Popularidade: 18%

16 Maio 2007

Kuler

É o nome da aplicação RIA e web 2.0 da Adobe que permite criar temas com 5 cores usando conceitos de cor como cores análogas, monocromáticas, triplicidade, complementares, etc. É possível gravar seus próprios temas, ver temas de outros usuários, comentar, tagear os temas, exportar para o Photoshop CS2 e adicionar no swatches. Tem links interessantes para sites sobre teoria de cores, possui um widget que pode ser adicionado no dashboard do mac.
Confira aqui.

Popularidade: 16%

28 Março 2007

Lançamento: Adobe Creative Suite 3

Adobe C3 Web Standard
Web Standard:

Adobe® Dreamweaver® CS3, Flash® CS3 Professional, Fireworks® CS3 e Contribute® CS3.
US$ 999,00


Adobe C3 Web Premium
Web Premium:

Adobe® Photoshop® CS3 Extended, Illustrator® CS3, Flash® CS3 Professional, Dreamweaver® CS3, Fireworks® CS3, Acrobat® 8 Professional e Contribute® CS3.
US$1,599


Adobe C3 Master Collection
Master Collection

Adobe InDesign® CS3, Photoshop® CS3 Extended, Illustrator® CS3, Acrobat® 8 Professional, Flash® CS3 Professional, Dreamweaver® CS3, Fireworks® CS3, Contribute® CS3, After Effects® CS3 Professional, Premiere® Pro CS3, Soundbooth™ CS3, OnLocation™ CS3, Ultra® CS3, Bridge CS3 e Device Central CS3.
US$2,499

Popularidade: 5%

21 Março 2007

Aplicações RIA no desktop

Esta parece ser a nova aposta da Adobe. A nova tecnologia se chama Adobe Apollo. Ainda está em desenvolvimento, mas já dá para ver como funcionará na prática:
Vídeo de demonstração de como eBay está sendo desenvolvido com o Apollo

No showcase, também tem uma aplicação com o Apollo:
Finetube Desktop
Com essa aplicação você pode ouvir músicas online, playlists criadas por outros usuários.

Para acessar o showcase do Apollo, clique aqui.

Não vi ainda como funciona a linguagem, mas parece muito com as aplicações desenvolvidas com RIA, usando Flash ou Flex. Porém, roda localmente na sua máquina (independente do sistema operacional, é o que promete a Adobe - pelo menos para Mac e PC).

Popularidade: 5%

Acompanhe o lançamento Adobe Creative Suite 3

A Adobe disponibilizará no seu site um webcast do evento de lançamento do Adobe Creative Suite 3.
Será dia 27/03/2007 às 15:30hs (horário local) em Nova York, horário de Brasília: 16:30hs.

Link para página do convite

Popularidade: 6%

2 Março 2007

Adobe lançará versão online do Photoshop

A Adobe planeja lançar a versão online do software Photoshop em 6 meses. Será uma versão gratuita com direito a banners publicitários.

Leia mais:
Adobe take Photoshop online - CNET
Adobe Photoshop Going Online: Death to Online Photo Editors?

Popularidade: 4%

23 Fevereiro 2007

Adobe Magazine

Adobe Magazine
Vale a pena se inscrever para receber a Adobe Magazine, revista digital gratuita da Adobe em formato .pdf(Inglês): http://www.adobemagazine.com/

Popularidade: 5%

Flash 9 ActionScript 3.0 Preview

Pessoal a Adobe também lançou o Flash Professional 9 ActionScript 3.0 Preview, trata-se de uma v ersão beta do Flash para o pessoal já ir testando a nova versão do ActionScript.
Para saber mais informações e baixar, clique abaixo:
http://labs.adobe.com/technologies/flash9as3preview/

Apesar de usarem o nome Flash 9 na versão de testes e nome real do novo Flash será Flash CS3 Professional, para ver um screanshot do programa, clique no thumbnail abaixo:
Flash CS3 Professional

Popularidade: 7%

Adobe Photoshop CS3 beta

Photoshop CS3 beta Pessoal a Adobe disponibilizou a versão beta do Photoshop CS3, ficou muito interessante, os links de acesso as ferramentas ficaram facilitados e o design melhorou bastante, creio que está seja uma das primeiras grandes mudanças significativas desde as últimas versões, o produto pode ser usado em fase trial por 3 dias ou pode ser registrado.
Para saber mais informações e fazer o download, acesse:
http://labs.adobe.com/technologies/photoshopcs3/

Para ver um screanshot do programa, clique no thumbnail abaixo:
Screanshot Photoshop CS3 beta

Popularidade: 5%

Fechar
E-mail It