2. Recapitulando
Imagem vectorial: composta por cálculos matemáticos (mais leve e ao ser
redimensionada, não perde qualidade).
Imagem bitmap: formada por pixéis (mais pesada e ao ser redimensionada, perde
qualidade).
www.joaoleal.net Formador: João José Leal 2
3. O que é animação ?
Animação refere-se ao processo segundo o qual, cada fotograma de um filme é
produzido individualmente, podendo ser gerado quer por computação gráfica quer
fotografando uma imagem desenhada quer repetidamente fazendo-se pequenas
mudanças a um modelo (stopmotion), fotografando o resultado. Quando os fotogramas
são ligados entre si e o filme resultante é visto a uma velocidade de 12 ou mais
imagens por segundo (normalmente em animação usam-se as 24 imagens por segundo
embora repetidas duas a duas) , há uma ilusão de movimento contínuo.
Wikipedia
www.joaoleal.net Formador: João José Leal 3
4. Ilusão de movimento
De facto não há qualquer movimento na animação. Trata-se sim de imagens paradas!
Somos nós com a nossa visão e cérebro, que processamos a informação fornecida
por essas imagens, quando apresentadas de uma forma sucessiva, de determinada
maneira que nos causa a ilusão de movimento.
www.joaoleal.net Formador: João José Leal 4
5. Ilusão de movimento
Para perceber como isto acontece temos de entender três fenómenos que
permitem essa ilusão.
- Persistência retiniana da visão
- Fenómeno psicológico “Phi”
- Efeito estroboscópico
www.joaoleal.net Formador: João José Leal 5
6. Persistência retiniana da visão
Sempre que olhamos para uma imagem, esta é
projectada na nossa retina. Quando essa
imagem é-nos “retirada da frente”, essa
projecção permanece por uma fracção de
segundo na retina, “enganando” o nosso
cérebro, que continua a processá-la até se
“apagar” completamente.
www.joaoleal.net Formador: João José Leal 6
9. Fenómeno psicológico “Phi”
(descrito pelo Psicólogo Max Wertheimer num trabalho seu de 1912: Estudos experimentais na observação do
movimento)
O fenómeno Phi ilude movimento ao observador, quando lhe são exibidas duas
imagens sucessivamente (por exemplo uma bola em abaixo e outra acima num
ecrã). O observador normalmente dirá que houve um movimento entre as duas
bolas (no espaço entre ambas) e nos extremos do ecrã (na posição da primeira
bola e depois da segunda).
O observador dirá que viu a bola a saltitar.
Exemplo:
www.joaoleal.net Formador: João José Leal 9
10. Efeito estroboscópico
Com a invenção da película de cinema e da projecção de imagens em movimento, para
não vermos as imagens a passar rapidamente à nossa frente deslizando no ecrã
(criando apenas um mesclado de riscos) houve necessidade de criar um mecanismo que
nos fizesse apenas ver as imagens quando estas estão na posição certa no meio do
ecrã.
Recorreu-se assim ao efeito estroboscópico, esse efeito é conseguido através da
alternância entre a iluminação com uma luz intensa e o bloqueamento dessa luz com um
diafragma, fazendo coincidir a frequência da iluminação com a do movimento, cada
feixe de luz ilumina a mesma fase do movimento.
www.joaoleal.net Formador: João José Leal 10
11. Flash
O Flash é uma aplicação multimédia que permite criar desde simples
animações até aplicações complexas com a capacidade de articular elementos de
naturezas distintas como texto, imagem, som e vídeo, adicionando ainda todo o
potencial de interacção com o utilizador.
O Flash utiliza como imagens nativas imagens vectoriais, que são
constituídas por um conjunto de pontos (designados nodes, ou nós) que definem
segmentos.
www.joaoleal.net Formador: João José Leal 11
13. Toolbar (Barra de Ferramentas)
www.joaoleal.net Formador: João José Leal 13
14. Timeline
Organiza e distribui conteúdo de um filme segmentando esta informação por layers
(camadas) e frames (quadros). Os principais componentes do timeline são os layers,
os frames e a playhead (Agulha/ponto de reprodução), que identifica o momento actual
de reprodução.
www.joaoleal.net Formador: João José Leal 14
15. Selector Worplace
Modos de visualização da área de trabalho.
www.joaoleal.net Formador: João José Leal 15
18. Stage (Palco)
Área rectangular onde se coloca todo o conteúdo gráfico do filme. A composição no
stage corresponde ao resultado final do filme Flash que será visualizado numa janela
ou na janela do browser.
www.joaoleal.net Formador: João José Leal 18
19. Painéis
Área de painéis personalizável que pode conter qualquer painel do menu
Window. Ficam dispostos em separadores.
www.joaoleal.net Formador: João José Leal 19
20. Properties
Este painel é contextual, exibe os atributos mais comuns do elemento
activo, esteja no Stage (Palco) ou Timeline (Linha do tempo). Dependendo do
elemento seleccionado exibe informação e configurações do documento, texto,
símbolo, forma, bitmap, vídeo, grupo, frame ou ferramenta actual.
www.joaoleal.net Formador: João José Leal 20
21. Library (Biblioteca)
Armazena e organiza qualquer componente a integrar no documento
(símbolos do Flash ou bitmaps, sons e vídeos externos).
www.joaoleal.net Formador: João José Leal 21
22. Formatos de Ficheiros no Flash
O Flash usa vários formatos de ficheiro com funções específicas para a
aplicação:
.FLA Ficheiros de trabalho que correspondem ao projecto propriamente dito. São editáveis a
partir da aplicação principal e que não estão prontos a ser reproduzidos até serem
compilados.
.SWF Ficheiros resultantes da compilação de um ficheiro FLA. Podem conter simples animações
ou aplicações interactivas complexas. São reproduzidos através do FlashPlayer.
www.joaoleal.net Formador: João José Leal 22
23. .FLV e .F4V Ficheiros de vídeo reprodutíveis através do FlashPlayer. Contrariamente aos
ficheiros SWF, são apenas vídeos e não têm interacção.
.AS Ficheiros com código ActionScript interactivo usado para controlar aplicações do
Flash.
www.joaoleal.net Formador: João José Leal 23
24. Funcionamento dos Ficheiros Flash
As aplicações desenvolvidas em Flash podem ser filmes, aplicações
interactivas a funcionar de forma autónoma (através de ficheiros executáveis) ou
então nas aplicações para a web.
Qualquer aplicação Flash para a web resulta num ficheiro SWF que terá
que ser embebido numa página HTML (processo feito através da opção Publish –
Publicar).
www.joaoleal.net Formador: João José Leal 24
25. Funcionamento dos Ficheiros Flash
1 2 3
Publicar
Criar um Embeber
um
ficheiro em pág.
ficheiro
.fla HTML
.swf
4
Pedido HTTP
Browser Servidor
Web Resposta HTTP Web
Flash <HTML>
Player <HEAD>
<TITLE>Título</TITLE>
Plugin </HEAD>
<BODY>
<EMBED src="teste.swf"></EMBED>
</BODY>
</HTML>
www.joaoleal.net Formador: João José Leal 25
26. Importar ficheiros externos
O Flash CS4, CS5 e CS6 permite importar elementos de outras aplicações e com
naturezas distintas; é possível importar ficheiros do Freehand e do Fireworks
(PNG) preservando as propriedades destes formatos.
• Adobe Illustrador (.ai) • Flash Player 6/7 (.swf)
• Adobe Photoshop (.psd) • Windows Metafile (.wmf)
• Autocad DXF (.dxf) • MacPaint (.pntg) 2
• Bitmap (.bmp) • PICT (.pct, .pic) 1
• EWM (.emf) 3 • Quicktime Image (.qtif) 2
• Freehand (.fh7 até .fh11) • Silicon Graphics Image (.sgi) 2
• FutureSplashPlayer (.spl) • TGA (.tga) 2
• GIF e Gif animado (.gif) • TIFF (.tif) 2
• JPEG (.jpg) 1 Apenas em Macintosh ou como bitmap com o Quicktime instalado
2 Com o Quicktime 4 ou superior instalado
3 Apenas em Windows
www.joaoleal.net Formador: João José Leal 26
27. ActionScript
ActionScript (AS) é o termo que designa a linguagem subjacente à
programação no Flash.
O Flash combina várias expressões que mais não são do que um conjunto de
instruções (linha de código) com maior ou menor complexidade e a que
damos o nome de Scripts.
Estas instruções definem o comportamento do filme e de toda a acção
inerente. As linhas de código pertencem a uma determinada sintaxe,
obedecendo assim a regras formais que, por sua vez, irão validar o
processamento da informação.
www.joaoleal.net Formador: João José Leal 27
28. A sintaxe e os recursos do AS têm muitas semelhanças com a linguagem
JavaScript. Porém, existem algumas diferenças, tais como:
• Não existe um suporte pleno no AS no que diz respeito aos objectos
intrínsecos do JavaScript;
• Os objectos Document, Window e Anchor, específicos dos browsers não
são suportados pelo AS;
• A execução da acção eval no AS incide apenas nas referências de
variáveis.
www.joaoleal.net Formador: João José Leal 28
29. O ActionScript é a linguagem de programação dos ambientes de
tempo de execução Adobe® Flash® Player e Adobe® AIR™.
Ele permite interactividade, manipulação de dados e muito mais
no conteúdo e nos aplicativos do Flash, Flex e AIR.
www.joaoleal.net Formador: João José Leal 29
30. O ActionScript é executado com a AVM (ActionScript Virtual
Machine), que faz parte do Flash Player e do AIR.
O código do ActionScript em geral é compilado no formato de
código de bytes (um tipo de linguagem de programação escrita e entendida
por computadores) por um compilador, como o criado no Adobe® Flash®
CS4 Professional ou no Adobe® Flex™Builder™ou como o disponível
no Adobe® Flex™SDK. O código de bytes é incorporado aos arquivos
SWF, que são executados pelo Flash Player e pelo AIR.
www.joaoleal.net Formador: João José Leal 30
31. O que é o Action Script 3.0?
O AS 3.0 nasceu da necessidade de conseguir ter uma melhor
performance nas aplicações e animações flash.
Era necessário implementar alterações de raiz no AS 2.0 para que
este pudesse ter a performance do actual AS 3.0, por isso foi preferível
quase que criar a linguagem de novo. A linguagem AS 3.0 é literalmente
tratada à parte da AS 2.0 pela runtime do flash player, pelo que logo aí se
pode concluir que são mesmo diferentes a nível de código e de
performance.
www.joaoleal.net Formador: João José Leal 31
32. O AS 3.0 oferece um modelo de programação robusto familiar a
quem tenha conhecimento básico de programação orientada a objectos.
Alguns dos recursos principais do AS 3.0 que foram aprimorados em relação
à versão anterior incluem:
• Uma nova ActionScript Virtual Machine, chamada AVM2, que usa um
novo conjunto de instruções de código de bytes e fornece aprimoramentos de
desempenho significativos;
• Uma base de código de compilador moderna que executa optimizações
mais avançadas do que as versões anteriores do compilador;
www.joaoleal.net Formador: João José Leal 32
33. • Uma API (Interface de programação de aplicativo) expandida e aprimorada,
com controle de baixo nível de objectos e um autêntico modelo orientado a
objectos;
• Uma API XML baseada na especificação de linguagem ECMAScript para
XML (E4X) (ECMA-357 edição 2) E4X é a extensão de linguagem para
ECMAScript que adiciona XML como um tipo de dados nativo da
linguagem;
• Um modelo de evento baseado na Especificação de eventos DOM
(Document Object Model) nível 3.
www.joaoleal.net Formador: João José Leal 33
34. Pontos Fortes do Action Script 3.0
O grande ponto forte do AS 3.0 é que este é essencialmente focado
em Programação Orientada a Objectos, e esta sua vertente torna tudo muito
mais simples, rápido e organizado.
Para os programadores AS 2.0 as coisas não serão muito fáceis,
muito pelo facto de à primeira vista muitas coisas possam ser
compreendidas e interpretadas como no AS 2.0.
www.joaoleal.net Formador: João José Leal 34
35. Problemas (???) do Action Script 3.0
Um dos grandes problemas que se apresentam ao
programar em AS 3.0 é a impossibilidade de programar usando AS 3.0
e AS 2.0 mutuamente pois são tratados de forma diferente pelo Flash Player.
Uma grande diferença do AS3 é que este exige obrigatoriamente/es-
tritamente a declaração de variáveis, argumentos, funções e os seus valores
devolvidos, mesmo que a função não devolva nada ou devolva o argumento
nulo.
www.joaoleal.net Formador: João José Leal 35
36. Na versão AS 2.0 esta declaração era opcional, pelo que uma
simples função:
function olaMundo() {}
funcionava€exactamente€igual€a€
function olaMundo():void {}
No AS 3.0, o primeiro método foi eliminado, pelo que todas as
funções, argumentos e valores devolvidos (return's) têm que ser
devidamente declarados.
www.joaoleal.net Formador: João José Leal 36
37. Uma clássica estrutura de Objectos e da sua Linguagem Orientada, é
que podemos ter um objecto Principal (Collection), e depois as suas
categorias internas (Classes), que por si são um conjunto de código.
Vejamos com o seguinte exemplo:
www.joaoleal.net Formador: João José Leal 37
38. Transportes como objecto principal, dentro dele podemos ter
Carro, Avião, Moto e Autocarro e dentro de cada um destes temos os seus
procedimentos, imaginemos:
Transportes
-> Carro -> Levo 5 pessoas
-> Avião -> Levo 350 pessoas
-> Moto -> Levo 2 Pessoas
-> Autocarro -> Levo 50 Pessoas
www.joaoleal.net Formador: João José Leal 38
39. O processo de dividir o código por pequenas instâncias chama-se
"Encapsulation", que é uma das imagens de marca do AS 3.0.
Poderemos ainda ter uma cadeia, no exemplo do carro:
Transporte -> Carro -> Bancos da frente -> 2 Pessoas
-> Bancos de trás -> 3 Pessoas
Este processo chama-se inheritance, que é o processo de podermos
implementar/extender uma das classes base, neste caso extendemos a class
Carro do Objecto Transporte.
www.joaoleal.net Formador: João José Leal 39
40. O melhor destes aspectos do AS3 é que o código tem
uma facilidade enorme de ser interpretado, bem como reutilizado e
partilhado.
A nível do seu "core" o Action Script é baseado na linguagem
ECMA-262 mais conhecida como ECMAScript que cresceu com o
sucesso da sua linguagem mais conhecida, o Javascript.
www.joaoleal.net Formador: João José Leal 40
41. O AS2 foi estabilizado durante bastante tempo, mas a
crescente necessidade de melhorar e acompanhar as tendências do
mercado e programadores, o AS3 foi reescrito do nada,
contando com uma enorme possibilidade de expansão e quase "infinitas"
características que acompanham as muitas linguagens de
programação, temos por exemplo actualmente o suporte nativo a
objectos e cenas 3D no futuro Flash Player 10, isto praticamente só
possível devido à migração do AS2 para o AS3 do seu motor. Esta grande
alteração do AS3 acrescenta inúmero pontos novos, mas as suas bases
mantêm-se intactas.
www.joaoleal.net Formador: João José Leal 41
42. Bases da Linguagem
De€forma€geral€o€AS3€é€executado€de€Cima€para€Baixo€e€linearmente€
da€esquerda€para€a€direita:
passo€1€->€passo€2€->€passo€3
passo€4€->€passo€5
passo€6
www.joaoleal.net Formador: João José Leal 42
43. Existem alguns argumentos que podem alterar esta ordem, mas as
bases de execução são estas, esses elementos podem ser por exemplo a
chamada de um passo diferente da ordem de execução, imaginemos:
passo€1€->€passo€2€(chama€passo€6)€->€passo€3
passo€4€->€passo€5
passo€6€(termina€passo€6)€->€passo€7
Neste€caso€a€ordem€seria
passo€1€->€passo€2€->€(passo€6)€->€passo€3
passo€4€->€passo€5
Isto em si não é difícil de entender, o passo 2 chama o passo 6 e
interrompe a execução normal, só depois de o passo 6 executado é que a
execução prossegue para o passo 3.
www.joaoleal.net Formador: João José Leal 43
44. Uso do ponto e vírgula (semicolon) “;”
O uso oficial do ; serve para executar mais que uma instrução numa
linha e também para indicar o final de uma linha de código.
Esta indicação no final da linha, ao contrário do que se pensa não é
obrigatória a sua inserção no final de cada linha, visto que não é disparado
qualquer erro, mas por uma questão de organização e por facilidade de
compreensão de outras linguagens.
www.joaoleal.net Formador: João José Leal 44
45. Uso do Trace
O trace como em muitas linguagens é muito útil no caso de debug,
para obtermos valores de determinadas variáveis e funções. Este trace()
coloca no painel output do flash o valor que lhe indicar-mos, no caso de
trace("olá Mundo") aparecerá no painel de debug olá Mundo. Notem que
no caso do Flex, necessitam de ter o plugin com o debugger instalado, caso
contrário não conseguirão fazer o devido debug.
www.joaoleal.net Formador: João José Leal 45
46. Variáveis e tipos de dados
As variáveis AS3, tais como as variáveis de outras linguagens de
programação são usadas para guardar valores. As variáveis devem ser
identificadas como únicas e que não interfiram com os elementos da
própria linguagem em si.
Como por exemplo:
minhaVariavel1 = 1;
variav2 = 2;
Um erro:
var = 2;
Este erro acontece porque o var é explicitamente usado pela
linguagem de programação para, curiosamente, declarar variáveis.
www.joaoleal.net Formador: João José Leal 46