Durante as minhas aulas de Actionscript em ambiente de FLASH, por norma verifico que os formandos têm alguma dificuldade em utilizar algumas das “best practices” mais comuns nomeadamente em relação á criação de Eventos personalizados, no entanto, e assim que conseguem ultrapassar essa barreira, a primeira questão que me colocam é sempre a mesma:
“então e se eu quiser enviar dados pelo meu Event Object, por forma a ……”
Eis que surge então a necessidade de passar o conceito de VO (Value Object) e criação de Classes de Eventos personalizadas.
Como tive hoje que criar alguns ficheiros para exemplificação do Conceito de Classe de Evento Personalizada para envio de dados de uma instância para outra, resolvi partilhar convosco neste Blog os mesmos Ficheiros na esperança que venha ainda a ser útil para alguns dos meus leitores, ou ainda servir de ponto de consulta e esclarecimento de dúvidas para aqueles que durante as aulas não perceberam o conceito. Sendo Assim vamos começar por analisar o pequeno problema que se coloca, e que servirá de “Case Study” para a criação de uma Class de Evento personalizada e do conceito de VO.
PROBLEMA:
- Temos um form onde a pessoa regista o seu nome, idade e situação laboral, e ao clicar num botão registar, pretende-se acrescentar a uma lista (Texto) os dados da pessoa.
RESOLUÇÃO:
- Criar uma Class PessoaVO, que irá servir para armazenar os dados da pessoa que forem inseridos no Form
- Criar uma Class PessoaEvent, que será uma subclass da Class Event, e que servirá para enviar um “Event Object” que incluirá uma instância da Class PessoaVO, com os dados anteriormente adquiridos no Form.
- A Aplicação principal estará á “escuta” da ocorrência do Evento PessoaEvent, e quando este for detectado, receberá pelo “Event Object” uma instância de PessoaVO com os dados da pessoa.
- A Aplicação após receber os dados da pessoa insere e actualiza a TextArea com os registos das pessoas.
Mãos á obra, vamos começar por criar um ficheiro em FLASH, com um form com duas instâncias de TextInputs, para o nome e idade, uma instância de CheckBox para o estado laboral e um botão de registo, ao lado criar uma Textarea para ir acrescentando os Registos, ou seja, qualquer coisa deste género(desculpem mas a designer estava de folga, lol):
Passo seguinte vamos criar a Class PessoaVO, que será uma classe Value Object, e por esse motivo terá somente propriedades, propriedades estas que servirão para guardar os dados do form de registo:
ActionScript | copy code | ? 01
02 package {03
04 public class PessoaVO {
05
06 public var nome:String;
07 public var idade:int;
08 public var empregado:Boolean;
09
10 }11
12 }13
ActionScript | copy code | ? 01
02 package {03 import flash.events.Event;
04 import PessoaVO;05
06 public class PessoaEvent extends Event {
07
08 public static const PESSOA:String = "pessoa";
09 public var dadosPessoa:PessoaVO;
10
11 public function PessoaEvent(type:String, voPessoa:PessoaVO) {
12 super(type);
13 this.dadosPessoa = voPessoa;
14
15 }16
17 public override function clone():Event {
18 return new PessoaEvent(type, dadosPessoa);
19 }20 }21 }22
23
Esta Class começa por fazer o “extends” da Class Event, na linha 9, criamos uma constante do tipo de String que irá identificar o “type” do nosso evento para usar depois como por exemplo usamos o CLICK num MouseEvent, na linha 10 criamos uma instância de PessoaVO, para guardar os dados do form e posteriormente enviar os mesmos pela instância de evento criada. O constructor da Class é bastante simples e terá como parâmetros o “tipo ” de evento criado, e a instância, neste caso, de PessoaVO. na linha seguinte (13), chamamos o constructor da Class “Pai” para passar o tipo de evento criado, aqui não se passa qualquer parâmetro extra pois a Class “Event” não contêm parâmetros adicionais. Na linha 14 atribuímos á instância da class “dadosPessoa” os valores recebidos no parâmetro voPessoaConstructor da Class. Por fim é necessário efectuar o overrride do método clone da class Event, de forma a que esta instância de evento tenha um comportamentos normal de um evento como o “Bubbling” por exemplo, nesta definição retornamos o event criando a instância do novo evento e passando os dados armazenados na instância da PessoaVO. do
Por fim criamos a Document Class do nosso ficheiro:
ActionScript | copy code | ? 01 02 package {03 import flash.display.MovieClip;
04 import flash.events.MouseEvent;
05
06 public class MainEventPessoa extends MovieClip {
07
08 public var pessoa:PessoaVO;
09
10 public function MainEventPessoa() {
11 pessoa = new PessoaVO;12
13 registarBtn.addEventListener(MouseEvent.CLICK, registar);
14 this.addEventListener(PessoaEvent.PESSOA, receberPessoa);
15
16 }17
18 private function receberPessoa(e:PessoaEvent):void {
19 registosTa.appendText("\n------------------\n" +
20 "Nome: " + String(e.dadosPessoa.nome) + "\n" +
21 "Idade: " + String(e.dadosPessoa.idade) + "\n" +
22 "Nome: " + String(e.dadosPessoa.empregado) + "\n");
23 }24
25 private function registar(e:MouseEvent):void {
26 pessoa.nome = nomeTi.text;
27 pessoa.idade = int(idadeTi.text);
28 pessoa.empregado = empregadoCb.selected;
29
30 dispatchEvent(new PessoaEvent("pessoa", pessoa));
31 }32
33 }34
35 }36
Nesta Document Class, começamos por criar uma instância de PessoaVO, onde iremos atribuir os valores dos dados que irão ser preenchidos no FORM, na linha 13, definimos o evento click no botão registar que irá inicializar toda a sequência do script. o Listener do clicar em Registar vai associar os dados dos campos do form ás propriedades da instância de PEssoaVO (pessoa) linhas 26 a 28, na linha 30 “criamos” um evento do tipo PessoaEvent, onde iremos incluir nos parâmetros do constructor, o nosso PessoaVO com o nome “pessoa”. Na linha 14 a nossa Aplicação recebe o evento “PessoaEvent.PESSOA“, e chama o listener das linhas 18 a 22 que irá acrescentar(para os mais esquecidos deverão sempre usar o método appendText da Class TextField, e não o operador ” += ” para concatenar strings) á TextArea os dados que recebeu no “Evento Object” e que acedemos na propriedade “dadosPessoa” deste.
espero que este Post seja esclarecedor para muitos de vós, não hesitem em colocar questões ou sugestões para explicações futuras, deixo aqui tb um ficheiro zip com os ficheiros exemplificando o mini-tutorial.
Continue Reading
Foi anunciado hoje pela Adobe, no GSMA Mobile World Congress em Barcelona, a distribuição do Adobe Flash Lite 3.1 Distributable Player, um novo “run-time” para a plataforma Mobile, permitindo aos actuais developers da Plataforma Flash, poderem desenvolver “RIA´s” com as ultimas tecnologias do Flash Player 3.0.
Esta nova versão a semelhança do seu Homologo de Desktop, permite que o player seja automaticamente actualizado a medida que forem disponibilizadas novas versões, garantindo desta forma que todos os telemóveis actualmente compatíveis (lista de telemóveis compatíveis), tenham sempre a ultima versão do Player.

Como irá Funcionar?
Essencialmente o primeiro passo será desenvolver a aplicação com o Flash CS4, e Device Central CS4, com os seguintes updates:
- Get Adobe AIR 1.5 update for Flash CS4 Professional
- Get Flash Lite 3.1 update for Device Central CS4
Segundo passo, empacotar o SWF da aplicação num package que incluirá para além da aplicação um icon, a metadata e um verificador de versão do player, criando uns pacotes de instalação compatíveis com smartphones com o windows mobile 5.0 e 6.0, além de todos os telemóveis Nokia com o sistema S60.
O terceiro passo, será distribuir pela web nos mais variados portais dedicados a smartphones para atingir um público de milhões de utilizadores.
ultimo passo, instalar nos telemoveis e disfrutar da capacidade de interacção e riqueza de conteúdos multimédia a partir do smartphone e que até hoje só era possivel em Pc´s.
Para acelerar o desenvolvimento de “Rich Mobile Content”, a Adobe e a Nokia anunciaram o investimento de $100 000 000, para reforçar o Projecto “OPEN SCREEN PROJECT“, o qual ja falei em posts anteriores, e que permitirá aos developers de FLASH obterem financiamentos e ajuda na distribuição das suas aplicações.
de realçar também que existe a partir de hoje um concurso para developers no valor de $100 000, e que está aberto para inscrições, por isso acho que todos devem tentar a sua chance.
Bons Mobile Desenolvimentos e não se esquecam que estão alguns milhares de Dolares a vossa espera.
Continue Reading
A Adobe na sequência da estratégia que tem vindo a seguir, associou mais uma framework a Plataforma Flash, sem sombra de dúvida, cada vez mais a tecnologia desenvolvida pela Adobe gira em redor do FLASH PLAYER, e por consequência da ADOBE FLASH PLATFORM.
Depois do Thermo se transformar em FLASH CATALYST, foi a vez da plataforma COCOMO, se transformar em FLASH COLLABORATION SERVICE, para aqueles que desconhecem, é uma plataforma que se utiliza como serviço, permitindo a qualquer developer de FLEX, possa desenvolver ou acrescentar as sua “Rich Internet Aplications”, capacidades de “Social Networking“, tal como, videoconferência, partilha de ficheiros, etc…, ou seja, utilizar muitas das capacidades que tem na suite Acrobat.com.
Esta plataforma é composta por um conjunto de componentes(Classes) do Flex Builder, e por uma infraestrutura de Hosting da própria Adobe, permitindo desenvolver aplicações de colaboração ,”multi-user”, com comunicação em tempo real, sem qualquer limitação de desenvolvimento, manutenção e escalabilidade, pois o serviço mantido integralmente pela propria Adobe.
Algumas das características do FLASH COLLABORATION SERVICE:
- Voip
- WebCam
- Chat
- Quadros “multi-user”
- partilha de ficheiros em tempo real
- Gestão de utilizadores
- Gestão de permissões de utilizadores
- “Data-Messaging”
Para iniciarem a desenvolver e utilizar este serviço, ainda em versão Beta, basta para isso registar no Portal de Developer e iniciar a desenvolver, para qualquer dúvida que tenham podem visitar os forums de discussão do serviço, ou ainda visitar o site do Nigel Pegg.
Continue Reading
Quando falamos em realidade aumentada, referimo-nos a um sistema que combina elementos virtuais com elementos reais, criando interactividade entre ambos e com processamento em tempo real.
Actualmente o Japonês SAQOOSHA, desenvolveu uma Library em AS3, denominada por FLARToolKit, desenvolvida a partir de uma outra library de realidade aumentada desenvolvida em C, ARToolKit, oferecendo deste modo a capacidade aos developers de FLASH de criarem aplicações no âmbito da Realidade Aumentada, e que poderão ser aproveitadas nas mais diversas áreas, desde publicidade, engenharia, entretenimento, etc…
Sem dúvida uma grande mais valia, principalmente quando aliada as novas capacidades 3D do Flash Player 10, ou a outras frameworks como Papervision 3D.
Deixo aqui um vídeo demonstrativo, destas capacidades e daquilo que se poderá fazer no futuro em Realidade Aumentada, quanto a mim, espero que o curso que irei frequentar de Papervision 3D me comece a dar outras perspectivas de desenvolvimento de aplicações na Plataforma FLASH.
Continue Reading
Irá decorrer no próximo mês de Março dias 2 e 3 , um curso de Papervision 3D apresentado pelo excepcional Seb Lee-Delisle , e que irá ocorrer em Brighton, até aqui nada de especial, a não ser adivinhem??
Pois é vou estar presente no curso, quero desde já deixar aqui o meu agradecimento à FLAG – Lisboa, centro de formação onde actualmente dou formação e que desde logo se disponibilizou para patrocinar a minha ida ao curso, por esse motivo preparem-se para mais cedo ou mais tarde haver por aqui um ou outro curso ou workshop Papervision 3D.
Em relação ao curso espero ser desta que me iniciarei no Papervision 3D a serio, nada como conhecer e aprender com os melhores, claro sem desprezar a excelente apresentação que o Nelson Batista efectuou num workshop da nossa comunidade riaPT.
Além de ser aliciante ir brincar e conhecer a framework, acho que conhecer o Seb Lee-Delisle será de certeza também muito interessante não escondo que admiro o se trabalho essencialmente no que se refere a motores de jogos de partículas em FLASH, sem sombra de dúvida um dos melhores artistas nesta área.
bem termino perguntando se há alguém que queira fazer companhia???? fico a espera, lol
Continue Reading
Vou recomeçar os meus posts com a recomendação de dois livros de Actionscript, ambos virados para aqueles que como eu adoram a Matemática, e gostam de criar animação e interactividade usando princípios básicos da Matemática e da Física.
O primeiro livro – Flash and Math Applets: Learn by Example , Programming in ActionScript 3 for Mathematics and Science Teaching and Learning – é escrito por dois professores de Matemática (Douglas Ensley and Barbara Kaskosz), responsáveis pelo site – FLASH & MATH - e claramente dedicado ao ensino das ciências e tecnologias com recurso ao FLASH CS3 e CS4, incluindo um capitulo com as novas funcionalidades 3D do Flash Player 10.
Este livro é claramente direccionado a “Iniciados” em AS3 e um excelente recurso para qualquer pessoa que esteja interessada em programar em AS3.

O Segundo Livro é para um publico mais avançado e já com um bom conhecimento de AS3 : AdvancED ActionScript 3.0 Animation, foi escrito por Keith Peters um bem conhecido “GURU” da plataforma FLASH, e é um complemento de um outro seu livro Foundation ActionScript 3.0 Animation: Making Things Move, sem dúvida duas referências imprescindíveis para aqueles que pretendem dominar o AS3, essencialmente no desenvolvimento de interacção, jogos, etc… usando as mais variadas teorias da Física e Matemática.
Espero que sejam referências úteis, eu já os tenho na minha prateleira do escritório.






