Você está na página 1de 112

Action Script e-Learning

Instituto Superior de Engenharia do Porto

Departamento de Engenharia Informtica

Junho de 2003

e-Learning
Action Script

Adrito Fernandes

Pgina I
Action Script e-Learning

Pgina II
Action Script e-Learning

Autor do Projecto:

Adrito dos Santos Curcialeiro Fernandes


Aluno N. 930461

Orientador do Projecto:

Eng. Carlos Miguel Miranda Vaz de Carvalho

Pgina III
Action Script e-Learning

Pgina IV
Action Script e-Learning

e-Learning
Action Script

1. ndice

Pgina V
Action Script e-Learning

Pgina VI
Action Script e-Learning

1.1. ndice Geral

1. ndice
1.1. ndice Geral VII
1.2. ndice de Exemplos VIII
1.3. ndice do Curso XVII

2. Introduo
2.1. Resumo X
2.2. Motivao X
2.3. Metodologia X
2.4. Esquema do Relatrio XI

3. Curso de e-Learning ActionScript


3.1. Introduo X
3.2. e-Learning breve introduo XIV
3.3. ndice do Curso XVII
3.4 Curso de e-Learning XXIII

4. Concluso
4.1. Breve nota do autor 106

5. Glossrio
5.1 Conjunto de termos mais usados 109

6. Referncias
6.1. Referncias mais Relevantes 111

Pgina VII
Action Script e-Learning

1.2. ndice de Exemplos

1.2.1. Exemplo de construo de storyboard 38


1.2.2. Exemplo de utilizao das aces play(), stop() e gotoAndPlay() 43
1.2.3. Exemplo de utilizao dos eventos associados a botes 48
1.2.4. Exemplo de criao de janelas deslizantes 54
1.2.5. Exemplo de como criar variveis de input/output 62
1.2.6. Exemplo de como atribuir um nome a um objecto 65
1.2.7. Exemplo de utilizao da funo loadMovie 67
1.2.8. Exemplo da utilizao de if elsif else while function 72
1.2.9. Exemplo de criao de mecanismos de pr-load 79
1.2.10. Exemplo de criao de um jogo 85
1.2.11. Exemplo de interaco entre o php e o mysql 95
1.2.12. Exemplo de interaco entre o flash e o php 96
1.2.1.3 Exemplo de como inserir correctamente um flash numa pgina101

Pgina VIII
Action Script e-Learning

e-Learning
Action Script

2. Introduo

Pgina IX
Action Script e-Learning

2.1. Resumo

Este trabalho foi realizado no mbito da cadeira de Projecto, do 5 ano do curso de


Engenharia Informtica - Computadores e Sistemas, do Instituto Superior de Engenharia do
Porto durante o segundo semestre do ano lectivo de 2002/2003.
Pretendo com este trabalho apresentar a matria a dar em vrias aulas relativamente a um
curso de e-learning relacionado com ActionScript.
O curso ser divido em lies, sendo cada lio acompanhada por um tutor.
O curso ter como objectivo principal transmitir conhecimentos a alunos que pouca ou
nenhuma formao tenham em ActionScript, ficando no final do curso aptos a desenvolver
solues que envolvam ActionScript em nveis de complexidade de programao elevada
como por exemplo jogos de computador.

2.2. Motivao

O que me levou escolha e realizao deste trabalho foi o facto de eu j ter um vasto
conhecimento nesta rea para alm de tambm se tratar de uma oportunidade para expor as
minhas ideias relativamente ao ActionScript em nveis de programao mais avanados.
Outra razo a possibilidade de se poder utilizar este material para a formao de
colaboradores novos que venham a reforar a equipa de desenvolvimento multimdia que
coordeno actualmente na empresa Multitema Multimdia e Design, S.A.

2.3. Metodologia
Para a realizao deste trabalho foi necessrio a realizar pesquisas na Internet e consultar
manuais de formao em programao FLASH de forma a obter bom material sobre algumas
especificidades que um curso de e-Learning implica. Tambm importante foi o apoio e o
material facultado pelo meu orientador bem como a experincia profissional que eu possuo
nesta rea.

Posso dividir a evoluo do trabalho em trs fases distintas:


- Recolha
Nesta fase procedi recolha de informao relacionada com metodologias de ensino
atravs de e-Learning e diversos exemplos de ActionScript. Para esta recolha contei
com a preciosa ajuda da Macromedia, que contm no seu Site vrios exemplos de
ActionScript e de material que me foi cedido pela Multitema (do qual sou responsvel)
contendo mais exemplos inclusive de PHP que sero apresentados em cada lio do
respectivo curso.
- Anlise
Nesta fase analisei todo o material recolhido por forma a filtrar o que importante e o
que no tem interesse pedaggico.

Pgina X
Action Script e-Learning

Pode-se inserir ainda nesta fase a realizao de um esboo da matria a tratar em cada
aula devidamente distribuda pelas vrias aulas seguindo uma orientao de menor
complexidade at maior complexidade.
- Elaborao
Aps a recolha de material, sua anlise e respectiva planificao, comecei a descrever
cada aula at dar por concludo o curso de e-Learning de ActionScript que descrevo ao
longo das restantes pginas deste relatrio.

2.4 Esquema do Relatrio

O relatrio encontra-se dividido em 3 partes distintas:


1- Introduo, uma pequena explicao sobre o curso
2- ndice do curso
3- O Curso que se divide por 14 aulas.

Pgina XI
Action Script e-Learning

Pgina XII
Action Script e-Learning

e-Learning
Action Script

3. Curso de e-Learning ActionScript

Pgina XIII
Action Script e-Learning

3.1. Introduo

O curso a realizar dever constituir 14 aulas, que devero ser acompanhados por um
orientador responsvel pela anlise dos resultados do formando aps o termo de cada aula.
Sempre que o formando concluir uma aula dever responder a um exerccio e enviar a
resoluo para o orientador. Sempre que o aluno concluir a o exerccio que lhe foi proposto,
cabe ao seu orientador enviar-lhe a password que permitir aceder prxima aula.
Este processo repete-se ate que o aluno tenha concludo a ultima aula do curso.
O sistema dever impedir que o formando possa realizar mais do que uma aula diariamente.
O curso inicia com a inscrio do Formando que recebe uma login e password por forma a
poder aceder a dados sobre o seu orientador (nome, email, ...) e claro a iniciar o curso
comeando pela sua primeira aula.

3.2. e-Learning breve introduo

O que e-Learning?

O e-Learning est a tornar-se na revoluo do ensino para as reas digitais, o futuro do ensino
passa pelo e-Learning.
Na maior parte das vezes, as aulas no deixam de ser a mera exposio de conhecimentos
adquiridos pelos professores que atravs da exposio de acetatos os passam para os alunos,
o papel dos professores tende a ser cada vez mais a orientao, consiste em orientar os
alunos para autonomamente atinjam determinados nveis de conhecimento.
Agora imagine-se que o aluno no necessitava de se deslocar sala de aula, bastando aceder
a uma pgina WEB para poder obter toda a matria que ia ser dada na aula, a nica falta que
poderia sentir para alm do convvio com os colegas, seria a opinio e esclarecimentos do
professor relativamente matria que ia ser dada. Mas se o aluno pudesse obter esse mesmo
feed-back do professor atravs de email passava a usufruir de todas as condies de ter o
mesmo sucesso de aprendizagem da matria que teria se estivesse fisicamente na sala de
aula.
Por ter conscincia disso, A Sociedade actual ter de se adaptar porque o futuro do ensino
passa pela implementao de sistemas de e-Learning, em que os alunos deixam de ter de se
deslocarem sala de aula, para poderem passar a ter as aulas atravs de um terminal de
computador.

Vantagens

As vantagens na utilizao do e-learning so a possibilidade de um acompanhamento


mais personalizado entre o formador e o aluno, pois com a troca de emails entre ambos os
interlocutores, garante-se que todos os alunos tem a possibilidade de exporem as suas
questes e de as verem resolvidas o que muitas vezes no sucedia pela aglutinao da
palavra por parte de alguns alunos em relao ao mais tmidos.
Outra das vantagens ser a de os alunos mais tmidos, face a uma terminal de comutador,
deixarem de ter complexos em exporem os seus problemas e dvidas, porque no sentem

Pgina XIV
Action Script e-Learning

represlias dos colegas, nem se sentem violados por outros ficarem a conhecer as suas
dvidas, pois o dilogo mantm-se estritamente entre o professor e o aluno.
Outra vantagem a possibilidade de os professores no se sentirem limitados na
exposio da matria quer por alguma limitao fsica aparente ou pelo facto de terem
mais ou menos idade que os alunos, como os alunos no tem acesso a imagens visuais
do professor cada um pode imaginar o professor ideal (na eventualidade de no existir
sistemas de vdeo conferencia)
Outra vantagem o tempo, por no ser necessrio o aluno deslocar-se ao instituto de
ensino, um ganho de tempo precioso que pode ser aproveitado para realizar outras
tarefas.
A possibilidade de se estudar a lio hora que for mais conveniente permite que cada
aluno tenha o seu horrio adaptado sua agenda pessoal.
Se todo o sistema de ensino se baseasse no e-learning existia tambm um ganho
significativo na reduo de despesas na construo de edifcios.
Outro ganho era o de se poder centralizar o conhecimento, existindo apenas uma central
que guardasse todo o conhecimento, todos os formadores poderiam aceder a essa base
de dados e trocar informaes teis entre eles obtendo ganhos significativos na aquisio
de conhecimentos.
Tal como os alunos que deixavam de ter necessidade de se deslocar unidade de ensino,
tambm os professores podiam usufruir das mesmas condies dos alunos (ter horrio
medida, no ter a necessidade de se deslocar, ....)

Desvantagens

O aumento do desemprego por deixar de ser necessrio existir alguns cargos.


Reflexo negativo na sociedade em empresas que obtm rendimentos na prestao de
alguns tipo de servios aos institutos de ensino (construo de edifcios).
Sociedade mais fechada, falta de dilogo em sociedade.
Perda de valores de sociedade pela falta de convvio.
Sociedade cada vez mais dependente da tecnologia.
Aumento da obesidade pela falta de realizao de exerccio fsico (como andar).

Concluso

Sabe-se que o futuro ser o e-learning e que apesar das desvantagens que acarreta, cabe
sociedade adaptar-se e encontrar solues para o futuro.

Pgina XV
Action Script e-Learning

Pgina XVI
Action Script e-Learning

3.3. ndice do Curso

AULA I ActionScript - Introduo

1- Introduo 23
2- Flash 5 ActionScript 23
3- Requisitos de aprendizagem 23
4- Flash O explorador de ficheiros 23
5- Flash O Stage 24
6- Flash Definies 24
7- Convenes utilizadas 25
8- Exerccio 25

AULA II ActionScript - Iniciao

1- Introduo 27
2- Eventos no Flash 27
3- Comentrios 30
4- Comandos, argumentos e propriedades 30
5- Instrues 31
6- Sintaxe 31
7- Resumo 32
8- Exerccio 32

AULA III ActionScript - Traando planos

1- Introduo 37
2- Traando planos 37
3- Libraria de Ideias 37
4- Storyboarding 37
5- Construindo ActionScript 38
a. Estilo Top Down 38
b. Estilo Botton Up 38
6- Exemplos 38
7- Resumo 39
8- Exerccio 39

Pgina XVII
Action Script e-Learning

AULA IV ActionScript - Timeline Actions

1- Introduo 41
2- Timeline Paths 41
3- Adicionando aces bsicas Timeline 42
4- Adicionando Labels Timeline 42
5- Exemplos 43
6- Resumo 45
7- Exerccio 45

AULA V ActionScript - Comeando a interactividade

1- Introduo 47
2- Criar um boto 47
3- Interactividade com MoviClips 47
4- Exemplos 48
5- Resumo 50
6- Exerccio 50

AULA VI ActionScript - Truques de navegao

1- Introduo 51
2- Botes invisveis 51
3- Ligar Cenas 52
4- Ligar Labels 52
5- Ligar MovieClips 52
6- Ligar SWFs e Nveis 52
7- Adicionar animaes a botes 52
8- Janelas deslizantes 53
9- Resumo 59
10- Exerccio 59

Pgina XVIII
Action Script e-Learning

AULA VII ActionScript - Variveis

1- Introduo 61
2- Literais e expresses 61
3- Variveis de Input 61
4- Variveis de Output 63
5- Atribuir nomes s variveis 64
6- Variveis numricas 64
7- Variveis booleanas 65
8- Actionscript Objectos, propriedades e mtodos 65
9- Exemplos 67
10- Resumo 68
11- Exerccio 68

AULA VIII ActionScript - Loops

1- Introduo 69
2- Tomada de decises 69
3- if 69
4- elseif 70
5- else 70
6- Action script loops 70
7- Arrays 71
8- Exemplos 71
9- Resumo 74
10- Exerccio 74

AULA IX ActionScript - Interactividade avanada

1- Introduo 75
2- Instanciao 75
3- Classes mtodos, propriedades, comportamentos 76
4- Definio de objectos (Movieclips, objectos no grficos) 77
5- Interactividade Avanada e propriedades dos objectos 78
6- Preloads e Cache 78
7- Exemplos 79
8- Resumo 84
9- Exerccio 84

Pgina XIX
Action Script e-Learning

AULA X ActionScript - ActionScript Modular

1- Introduo 85
2- Conceitos sobre jogos, Exemplo 85
3- Criar os objectos 85
4- Criar o script que coloque todos os objectos nas posies
correctas e que iniciasse todas as variveis que vo ser
utilizadas 86
5- No mesmo frame as funes que correspondem aos mtodos de
cada objecto 88
6- Funes auxiliares 90
7- Motor do jogo 91
8- Variveis e funes que devem ser invocadas sempre que se
entra no frame 91
9- Resumo 91
10- Exerccio 91

AULA XI ActionScript - PHP

1- Introduo 93
2- Interaco entre o Flash e o PHP 93
3- O que o PHP 93
4- Comandos bsicos de PHP 94
5- Exemplos 94
6- Resumo 94
7- Exerccio 94

CAPITULO XII ActionScript troca de informao com Bases de Dados

1- Introduo 95
2- Como utilizar o PHP para trocar informaes com Bases de Dados 95
3- Cuidados a ter com o delay das comunicaes 96
4- Exemplos 96
5- Resumo 99
6- Exerccio 99

Pgina XX
Action Script e-Learning

AULA XIII Action Script Compatibilidade/Conflitos

1. Introduo 101
2. Compatibilidade entre diferentes sistemas operativos e browsers 101
3. Problemas com alguns browsers 102
4. Novos interfaces (Pocket PC) 102
5. Resumo 103
6. Exerccio 103

AULA XIV Fim do curso

1- Notas Finais 105


2- Disponibilizar em PDF o curso 105
3- Entrega de Certificado 105

Pgina XXI
Action Script e-Learning

Pgina XXII
Action Script e-Learning

3.4 Curso de e-Learning

AULA I Action Script - Introduo

1- Introduo
Esta a primeira aula, o aluno ficar a conhecer a ferramenta com que ir trabalhar, o Flash.
Ter o primeiro contacto com algumas das suas funcionalidades como o explorador de
ficheiros, ficar tambm a conhecer o Stage e qual a orientao dos objectos em relao ao
eixo dos xx e yy.
O aluno com a ajuda do orientado far o seu primeiro programa de flash apresentando a
famosa frase Ol Mundo no seu programa de flash.
A aula terminar sem se aprofundar mais, dando liberdade ao aluno para comear a interagir
com a aplicao de desenvolvimento Flash.

2- Flash 5 Action Script

A interactividade emergente que o ActionScript, nomeadamente a partir da verso 5 do Flash


veio trazer, foi uma nova viso forma como se encara o WebDesign.
Actualmente, a linguagem de programao ActionScript j considerada uma linguagem
orientada para objectos totalmente interactiva.
Todas estas mais valias permitidas pelo ActionScript associadas a ficheiros leves,
caracterstica fundamental do FLASH, tornam as aplicaes resultantes totalmente
independentes da mquina e sistema operativo, trazendo uma nova gerao de programas
que conseguem conciliar a animao com a programao ao seu mais alto nvel.
Durante as vrias aulas o aluno ficar apto a conceber solues em flash, comeando por
aprender processos simples de interactividade entre o utilizador e o flash, avanando aula a
aula os seus conhecimentos at aula final em que o aluno desenvolver um jogo, como meio
de aplicar os seus conhecimentos e ficar apto a desenvolver aplicaes em Flash ao nvel dos
melhores programadores a nvel internacional.

3- Requisitos de aprendizagem

Foi considerado que o aluno j deve possuir alguns conhecimentos bsicos de flash, que lhe
permitam identificar os termos: timeline, stage, library, movieclip e tambm j ter algum
conhecimento de HTML e JAVASCRIPT.

4- Flash O explorador de ficheiros

Durante as aulas, pode acontecer que o cdigo desenvolvido fique mais complexo e
movieclips ou scripts se percam no projecto de flash que est a ser criado. Atravs do
explorador de ficheiros todos esses scripts ou movieclips passam a ser detectveis, deixando
de existir motivos para ficarem perdidos dentro do respectivo projecto.
Para se aceder ao explorador de ficheiros, o caminho Window > Movie Explorer.

Pgina 23
Action Script e-Learning

Agora proponho que pratique um pouco criando alguns objectos e veja a reaco do
explorador de ficheiros.

5- Flash O Stage

O stage como designado no flash, representa a janela onde todos os acontecimentos tm


lugar, pode-se equiparar a um teatro, o stage o palco onde os actores actuam.
Uma das caractersticas do stage a possibilidade de se activar uma rgua que permita
identificar a distncia entre um objecto e o canto superior esquerdo do stage. A visualizao
da rgua pode ser activada ou desactivada acedendo ao menu View > Rulers. As medidas
apresentadas representam medidas utilizadas para impresso e design, diferem das medidas
cartesianas utilizadas pela matemtica na medida em que a direco do eixo dos yy no
sentido inverso da direco representada pelas medidas cartesianas:

X
Y
Coordenadas em flash

6- Flash Definies

O flash permite personalizar vrias preferncias, pede-se ao aluno que personalize o seu
ambiente de flash de forma a ficar em sintonia com os exemplos que sero apresentado no
seguimento da formao.
Para isso basta aceder s preferncias em: Flash > Preferences e garantir que as fiquem
iguais seguinte imagem:

Pgina 24
Action Script e-Learning

7- Convenes utilizadas

Para facilitar a compreenso dos exemplos utilizados pode ser que sejam usados diferentes
tipos de letra e cores que diferem das que escrever nas suas aplicaes, isto no implica que
o seu programa no funcione.

8- Exerccio

Agora prope-se a criao de um exemplo em flash que mostre a palavra Ol Mundo

Pgina 25
Action Script e-Learning

Pgina 26
Action Script e-Learning

AULA II Action Script - Iniciao

1- Introduo

Nesta aula ser dada alguma teoria, mas apenas a que considero exclusivamente necessria
para se entender alguns termos que sero utilizados no seguimento do curso.
No final da aula, mostrar-se- o que se consegue apenas com duas linhas de cdigo.
O aluno ficar a conhecer o conceito de Eventos, Comentrios, Comandos, Argumentos,
Propriedades, Instrues e qual a sintaxe a utilizar.

2- Eventos no Flash

Quando se pensa em Action Script pensa-se em interactividade, no fundo trata-se de fazer


acontecer coisas mediante eventos causados pelo utilizador, por exemplo, abrir uma pgina
aps um clique num boto.

Imagine um relgio de cuco, que a cada hora, o cuco sai do relgio e emite um som, imagine
tambm que se pode definir um alarme para que numa determinada hora o relgio comece a
fazer um barulho diferente servindo de despertador.
A estes acontecimentos chamam-se eventos e aos sons produzidos pelo relgio chamam-se
aces.
O ActionScript conhecido como sendo uma linguagem de conduo de eventos.

O que ento um evento no Flash?


Pode ser considerado como algo que acontece externamente, pode ser a presso de um
boto pelo utilizador, ou a presso de uma tecla do teclado. Pode tambm ser considerado
como algo que acontece dentro do flash, como carregar um filme ou mover-se para o prximo
frame, quando o flash desencadeia a aco de mover para o prximo frame ele verificar se
tem instrues associadas a esse evento e se as tiver, executa-as. A isso chama-se um
evento interno pelo facto de ser o flash a gerar esse evento.
Quer se tratem de eventos internos ou externos, o Flash trata-os da mesma forma:
ActionScripts esto preparados para detectar um evento em particular.
Uma vez ocorrido esse evento, uma srie de ActionScripts sero executados.

Aos ActionScripts que so executados aps a ocorrncia de um evento chamam-se de


eventhandler.
Em concluso, sempre que se pretender ter um evento, deve-se ter um evenhandler.
Por exemplo, imagine-se um boto que aguarda que o primam.
O utilizador pressionou o boto EVENTO
O Flash detectou esse evento e executou o ActionScript que lhe estava associado
EVENTHANDLER
O utilizador recebe o resultado.

Este tipo de relao evento/eventhandler fcil de perceber quando se tratam de objectos


simples como botes, no entanto essa relao j no to linear quando se trata de eventos
gerados internamente pelo flash.

Pgina 27
Action Script e-Learning

OK, para quem j tem alguma experincia em programao e novo na utilizao de


linguagens de ActionScript deve estar a perguntar, afinal quais so as vantagens de utilizao
da relao eventos/event handler?
A resposta muito simples, quando se programa em linguagens como por exemplo em
VisualBasic, sabido que so bastante boas na resoluo de problemas em que o cdigo
executado linearmente, primeiro executa-se a linha 1, depois a linha 2 e por ai
sucessivamente.
Infelizmente na vida real, os acontecimentos no sucedem linearmente, por exemplo quando
se vai s compras natural que no se siga a lista de compras linearmente tal como foi
planeada.
Dessa forma, como no se pode esperar que as coisas aconteam pela ordem desejada ter
de se lidar com os acontecimentos pela ordem em que ocorrem.
Nunca se ter a certeza de que o evento A acontecer antes do evento B, ter de se prever
que tanto A ou B podem acontecer em primeiro lugar.
Por esse motivo, ao contrario das linguagens de programao como o VisualBasic que
interpretado sequencialmente, o ActionScript est preparado para dar resposta em tempo real
aos eventos assim que ocorrem.

Aps esta breve introduo ao ActionScript est na altura de se comear a escrever algum
cdigo.
Pode-se ento agregar ActionScript a 3 situaes num movieclip:
A um Keyframe
A um boto do Stage
A um movieclip do Stage

Para comear vamos comear pelo mais fcil dos 3:


Atribuir ActionScript a Keyframes
Para se atribuir um ActionScript a um keyframe, no necessrio ter mais do que um
keyframe, a janela Frame Actions e uma linha de cdigo.
Vamos ento, no nosso filme, seleccionar a primeira frame da Layer 1

Ainda com o frame seleccionado, abrir a janela Frame Actions que pode ser feito atravs de
uma das seguintes hipteses:
Fazendo dois cliques consecutivos no frame (verso 5.0).
Acedendo ao menu Window > Actions.
Ou atravs da tecla de atalho que lhe est associada.

Pgina 28
Action Script e-Learning

Independentemente da forma como se abre a janela de ActionScript o resultado obtido ser


semelhante a:

Esta janela difere de verso para verso do flash, mas em todas elas, do lado esquerdo
encontram-se todos os eventos que podem estar associados a um objecto, bem como todos
os comandos que podem ser utilizados dentro do evento, (condies de IF, funes para
tratamento de Strings, etc). Quando escolhido um comando ou aco de entre uma das
disponveis do lado esquerdo, passado automaticamente para o lado direito da janela com
as vrias possibilidades que lhe so permitidas acontecendo apenas no modo Normal, porque
existe tambm o modo Expert que permite ao programador escrever cdigo livremente sem
obter sugestes do flash, mas isso veremos mais adiante.
Escolhendo ento uma das opes do lado esquerdo, a opo Actions seguida da opo
Movie control e da opo Stop obtm-se a primeira aco associada ao Keyframe
seleccionado.

Pgina 29
Action Script e-Learning

Esta aco uma aco de grande importncia, pois atravs da Aco Stop(); que se vai
poder parar o movie permitindo mostrar botes ficando o movie parado espera por um
evento, que pode ser desencadeado por botes ou por outro tipo de elementos.

3- Comentrios

Como vimos anteriormente, a aco stop(); no difcil de entender, mas existem outras
aces e/ou conjunto de aces que se tornam mais difceis de entender, por esse motivo
necessrio escrever comentrios para descrever melhor o cdigo.
O mtodo para se introduzir comentrios no cdigo semelhante ao do C++, ou seja: // para
comentar uma linha de cdigo ou /* . */ para comentar um pedao de cdigo ou texto.
Para ajudar, no flash o cdigo comentado fica a uma cor diferente da do restante cdigo.
Finalmente fechando a janela de Actionscript pode-se verificar que o frame onde se inseriu o
script ficou com um a pequenino, serve para identificar frames que contenham scripts
associados.

Depois desta primeira experincia com ActionScript, importante rever alguma da


terminologia da programao.
Tal como nas outras linguagens, tambm as instrues de ActionScript devem ser exactas, as
instrues dividem-se em trs grupos bem definidos:
Comandos
Argumentos
Propriedades

4- Comandos, argumentos e propriedades

Os Comandos e Argumentos fazem sentido se os compararmos com quando os nossos pais


nos pedem para limpar o quarto, no no sentido de ordem mas pressupondo uma das
seguintes situaes:
Quando se o nico filho e s existe um quarto para limpar, ento os nossos pais no
necessitam de especificar que quarto devemos limpar.
Mas se existirem vrios quartos e mais irmos, ento necessrio pelo menos
especificarem que quarto para limpar.
No primeiro caso no necessrio adicionar mais informao ao pedido, basta
receber esse simples comando para se limpar o quarto.
No segundo caso, necessrio adicionar informao extra chamando-se a essa
informao extra argumentos.

O comando stop(); que vimos anteriormente no recebe qualquer argumento pois o flash sabe
o que deve fazer apenas com esse comando.

Pgina 30
Action Script e-Learning

Mas se for um comando diferente como por exemplo o comando gotoAndPlay(); j se torna
necessrio passar argumentos para que o flash saiba para que frame deve ir, exemplo:
gotoAndPlay(10); em que o nmero 10 identifica que a frame de destino a 10.
Passando para um nvel de programao mais avanado temos as propriedades, no exemplo
dado anteriormente a propriedade do quarto se est limpo ou se est sujo.
No flash as propriedades esto disponveis no submenu properties da janela das Aces em
que deixando o rato sobre a propriedade desejada algum tempo surge um comentrio que
explica a propriedade e os parmetros que pode receber.
Juntando os comandos, argumentos e as propriedades obtm-se as instrues.

5- Instrues

Existem diferentes tipos de instrues mas todas elas encaixam-se numa das seguintes
categorias:
Faz este comando.
Faz este comando usando este argumento.
Altera esta propriedade de acordo com este argumento.
Se esta instruo verdadeira ento executa esta srie de aces.
Continua a executar este grupo de instrues enquanto for verdadeiro qualquer coisa.

Se ainda nunca programou, ento veja o seguinte exemplo:


Fica a fazer isto
Meter gua no copo
Enquanto o copo no estiver cheio

Meter gua no copo o nmero 2 da lista, o comando pr e o argumento gua no copo.

6- Sintaxe

Uma parte importante em cada linguagem desde a linguagem chinesa, egpcia europeia, a
ordem com que as frases so construdas, a sintaxe, no interessa em que linguagem se fala
mas espera-se ouvir as palavras segundo uma certa ordem para compreender o significado da
frase acabada de ouvir.
Contrariamente s linguagens faladas o ActionScript apenas necessita de satisfazer alguns
requisitos de sintaxe que se podem dividir em trs categorias:
1- Quando comea ou acaba uma aco individual
Cada aco bsica comea numa nova linha e termina com ;
As nicas excepes so os comentrios // e comandos de agrupar aces {}

2- Que parte da aco o comando, o argumento e a propriedade?


// comentrio
x = 10;
stop();
Stop = aco e dentro dos () esto os argumentos.

3- Que linha executar mediante uma certa condio se for aceite ou no e que conjunto
de aces devem ser executadas continuamente at que seja satisfeita uma
determinada condio.

Pgina 31
Action Script e-Learning

7- Resumo

Nesta aula vimos o que so comentrios, comandos e argumentos e vimos como se atribui
uma aco

8- Exerccio

Para que o aluno possa aplicar os conhecimentos adquiridos nesta aula prope-se o
desenvolvimento de um exerccio simples que corresponda a ter um circulo a movimentar-se
no ecr e que pra no keyframe 55 com a aco stop();.

Para ajudar neste primeiro exerccio vo ser explicados todos os passos a realizar:

1. Seleccionar a opo circulo da barra de ferramentas e desenhar um circulo no stage.

Pgina 32
Action Script e-Learning

2. Seleccionar o circulo com o rato e escolher a opo do menu insert > Convert do
symbol que normalmente corresponde tecla de atalho F8.

3. Surge ento uma janela com vrios campos que podem ser escolhidos:

4. Desta janela pode-se escolher o nome que queremos atribuir ao novo smbolo e qual
deve ser o seu comportamento.
Pode ser do tipo Movie Clip quando se pretende ter Movie Clips dentro de
outros movie clips permitindo reutilizar um mesmo movie clip as vezes que se
quiser sem se ter a necessidade de o duplicar.
Pode ser do tipo boto sempre que se pretendam ter botes necessrio que
sejam smbolos com comportamentos de boto.
E grficos quando se tratam de smbolos simples como o caso do circulo a
animar.

Pgina 33
Action Script e-Learning

5. Depois de escolhido o behavior Graphic e feito OK, j temos um novo smbolo no


stage em substituio do circulo que foi desenhado no stage.

6. Note-se que para animar objectos necessrio que sejam smbolos de outra forma a
animao no acontecer.

7. Agora necessrio criar alguns frames, para isso basta seleccionar o frame 40 e
inserir um novo Keyframe que pode ser feito atravs da tecla de atalho F6.

8. Agora necessrio seleccionar o frame 1 e no menu seleccionar insert > creat motion
tweening

Pgina 34
Action Script e-Learning

9. a opo Create Motion Tween que d instrues ao flash para converter o


contedo da layer seleccionada entre keyframes em animao, que corresponde a
uma transformao de smbolos entre os keyframes. Essa transformao pode ser
uma simples translao no espao. Para exemplificar, seleccione-se o ultimo
keyframe, na posio 40 e desloque-se o circulo. Se agora se testar j temos
animao, para testar seleccione a opo control > Play

10. S falta inserir a aco stop(); no keyframe 40 para terminar o exemplo de outra
forma quando se exportasse o projecto a animao ficaria em loop.

Pgina 35
Action Script e-Learning

Pgina 36
Action Script e-Learning

AULA III Action Script - Traando planos


1- Introduo

Nesta aula vamos rever a importncia que h na elaborao de um bom storyboard


(planificao no papel do que ser a aplicao final).
A regra principal que se no funcionar no papel ento tambm no vai funcionar no
computador.
Dada a diferena entre esta aula e aulas mais prticas, no ser exigido muito esforo ao
aluno, sendo a aula bastante sintetizada.

2- Traando planos

Como o Flash mais do que uma linguagem de programao necessrio planificar no papel
antes de se comear a programar, tal como nos filmes existe um guio tambm no flash deve
existir um storyboard. Em primeiro lugar deve-se traar um esboo do que se pretende,
mesmo que se tratem apenas de alguns riscos, esta fase tem uma importncia redobrada
porque, para alm de servir de orientao para o storyboard final serve tambm para expor
ideias perante o cliente que est a financiar o projecto.
Para facilitar a elaborao do primeiro esboo importante possuir j um conjunto de
exemplos de partida Libraria de ideias.

3- Libraria de ideias

Possuir um conjunto de exemplos de partida para a elaborao de um esboo do que ser o


sotryboard final o sucesso de muitas empresas, ganhando tempo na elaborao desses
esboos e reutilizando trabalho j desenvolvido permite poupar custos e libertar meios
humanos para o desenvolvimento dos projectos depois de adjudicados pelas empresas que os
pretendem.
Quando a libraria reduzida deve-se comear por desenvolver projectos mais simples e
gradualmente ir aumentando o grau de complexidade da oferta de servios. Deve-se guardar
desde o primeiro dia todo o trabalho que se venha a desenvolver, pois ser a partir desse
trabalho, de projectos concludos e de projectos que no passaram da fase de storyboarding
que a libraria de ideias ser enriquecida.

4- Storyboarding

Depois de um primeiro esboo necessrio aprofundar mais as ideias, ento que se passa
para a fase de Storyboarding.
O Storyboard deve constituir um meio de comunicao que permita transmitir as ideias que se
tem para o projecto a desenvolver, entre a equipa que ir desenvolver o projecto e o cliente
final.
Consultando vrios livros relacionados com multimdia consegue-se encontrar diferentes tipos
de normas para realizar esses storyboards mas a verdade que tratando-se de uma rea que
tanto serve para desenvolver solues mais vocacionadas para a animao, como solues
mais vocacionadas para a programao, no existe nenhum modelo que seja considerado o
ideal e as empresas sejam levadas a criar os seus prprios modelos.

Do meu ponto de vista qualquer que seja o modelo escolhido deve satisfazer sempre os
seguintes requisitos:

Pgina 37
Action Script e-Learning

Existir uma descrio detalhada em forma de rvore, a hierarquia de cada menu.


Existir uma maquete em suporte digital do design que se pretende para cada menu.
No caso de animao deve existir em papel ou suporte digital um desenho dos
acontecimentos que ocorreram em cada keyframe.

S depois de feitas todas as alteraes que se considerem necessrias que se passa para a
fase seguinte ao Storyboard que a elaborao das artes finais.
nesta fase de cada projecto que pode haver uma distino clara entre as pessoas que
concebem o sotryboard, as pessoas que criam as maquetes/artes finais e as pessoas que iro
passar essas artes finais para uma linguagem de programao multimdia, neste caso, o
FLASH.

5- Construindo ActionScript

Estilo Top down


O estilo de programao Top Down designado por mtodo funcional, pois executa o
cdigo linha a linha at chegar soluo final, ou seja, no conhece a soluo final
enquanto no terminar o cdigo que est a executar. Pode-se representar o cdigo nos
diferentes nveis em forma de rvore que se ramifica em funo das escolhas tomadas.

Estilo Botton Up
O estilo de programao Botton Up baseia-se em encontrar uma soluo a partir dos
resultados obtidos e das pistas disponveis, pode-se comparar ao trabalho que um
detective tem de realizar para solucionar um crime, devido complexidade de se entender
este estilo de programao o curso incidir apenas sobre o estilo Top Down.

6- Exemplos

Um storyboard pode ser to simples como o seguinte exemplo:

Entrada do Site, atravs de uma curta animao em flash.


Menu inicial
Imagem escolhida pelo cliente, ilustrada em flash, com algum movimento.
Quem Somos
o O que a empresa ( pgina com breve texto referente empresa )
o Conselho de Fundadores ( pagina com o nome dos fundadores e links )
o Objectivos ( pgina com breve texto referente aos objectivos/misso)
o Instalaes ( fotografias das instalaes e localizao )
Actividades
o A decorrer ( pgina com breve texto referente s actividades em curso )
o Decorridas ( pgina com breve texto referente s actividades decorridas )
Programas
o reas de actuao ( pgina com texto referente as reas em que actua e programas
de actuao )
Contactos ( 1 pagina com os contactos dos vrios departamentos, com diferentes emails )

Neste exemplo, define-se em traos gerais que pginas vai ter o site e que informao ir
constar em cada uma dessas pginas.
Desta forma consegue-se passar a ideia que se tem para o site a qualquer pessoa, tanto ao
cliente como a algum outro colaborador que ir intervir na elaborao do projecto.

Pgina 38
Action Script e-Learning

7- Resumo

Como vimos nas explicaes anteriores, o processo de storyboarding de extrema


importncia, quer para transmitir a ideia que se tem do projecto, que para nossa prpria
orientao durante a elaborao da aplicao.
importante tambm, manter actualizada uma libraria de ideias que trar vantagens a longo
prazo.

8- Exerccio

Para treinar um pouco, prope-se a elaborao de um storyboard que represente de uma


forma clara e sucinta, todos os passos que decorreram desde o inicio desta aula at ao seu
termo.

Pgina 39
Action Script e-Learning

Pgina 40
Action Script e-Learning

AULA IV ActionScript - Timeline Actions


1- Introduo

Nesta aula sero apresentados os scripts que se podem atribuir timeline. Timeline significa
espao de tempo, se comparamos a uma fita de um filme, sabemos que a fita constituda por
milhares de imagens e quando vistas a uma determinada velocidade do a sensao de
movimento, agora suponhamos que era possvel parar o filme num determinado ponto e que
s recomearia quando se executasse uma determinada aco, essas aces so os
exemplos que vamos ver de seguida e a fita a nossa timeline.
O aluno ficar tambm a conhecer o conceito de Labels.

2- Timeline Paths

Sabendo que a timeline representa o espao de tempo em que ocorrem as animaes,


interessa saber que cada uma dessas animaes pode ser a representao de um objecto que
tambm tem a sua prpria timeline, assim podemos ter no mesmo programa a timeline
principal e as diferentes timelines de cada objecto, parece um pouco confuso, mas se
imaginarmos como esto organizadas as pastas do nosso computador sabemos que existe a
raiz que pode ser c: e as pastas umas dentro das outras, no flash sucede o mesmo, existe a
raiz que o programa e que tem automaticamente uma timeline e cada objecto que pertena
ao programa como se de uma pasta se tratasse.
A raiz pode ser representada por root ou por / e os objectos que so usados no programa
apenas se forem do tipo movie clips e se tiverem um nome atribudo por exemplo: exemplo
podem ser representados por: _root.exemplo ou por /exemplo.
Ento o que so as Paths? as Paths aparecem na janela do stage de forma a identificar o
caminho at timeline que est em modo de edio, permitindo regressar facilmente
timeline anterior ou mesmo raiz.

Pgina 41
Action Script e-Learning

3- Adicionando aces bsicas Timeline

A timeline pode ter vrias aces associadas desde play() a aces mais complexas.
As 3 primeiras aces da janela de aces so:
Go to
Play
Stop

A aco Play() Permite retomar a execuo de um movie aps uma condio de paragem
criada atravs da aco stop().
Portanto a aco stop() permite parar a execuo de um movie e a aco play() permite
retomar a execuo desse movie.
Mas, podem estar a pensar, e se o movie parar como pode recomear? A aco stop() limita-
se a parar a execuo do filme frame a frame, ou seja, se uma animao estava a correr pra,
mas os eventos do flash continuam activos, o que permite que se no frame onde foi executada
a aco stop() existir um boto que desencadeie a aco play(), essa aco executada.

Outra aco que pode ser adicionada timeline a aco de salto Go to(), esta aco permite
reencaminhar a execuo das animaes para rumos diferentes, como se por exemplo se uma
linha de comboio que tivesse vrias sadas e fosse mudando de rumo durante o percurso do
comboio. Esta aco bastante til para a criao de menus, imagine-se um menu com duas
opes, Quando se clicar na opo 1 vai-se para o frame 5, e clicando-se na opo 2 vai-se
para o frame 10, desta forma s se passa pelo frame 5 quando se escolhe a primeira opo.
Para se utilizar a aco Goto necessrio que essa aco seja completada com stop() ou
play(), derivando assim 2 aces que so nomeadamente:
GotoAndPlay()
GotoAndStop()

A primeira permite realizar saltos sem parar a execuo da timeline.


A segunda permite realizar saltos mas parando a execuo da timeline.

4- Adicionando Labels Timeline

A possibilidade de se adicionar Labels Timeline pode ser muito til, a aco Go to, como
vimos anteriormente permite saltar da posio actual da timeline para o frame passado
parmetro, GotoAndPlay(10), no entanto ficamos um pouco limitados se for necessrio alterar
a durao das animaes, o que implica ter de se alterar em todos os scripts o nmero do
frame passado por parmetro para as aces de Salto, por forma a evitar este trabalho
forado e dando mais flexibilidade ao flash pode ser atribuda uma label a um determinado
frame, para que da prxima vez que for necessrio inserir uma aco de salto em vez de se
passar como parmetro o nmero do frame passa-se a label (nome que identifica a frame).

Pgina 42
Action Script e-Learning

5- Exemplos

O prximo exemplo mostra como se pode utilizar as aces play(), stop() e gotoAndPlay()

1- No frame 1 inserir um boto e um texto, na timeline inserir o script stop();

Pgina 43
Action Script e-Learning

2. No Boto do frame 1 inserir inserir o script gotoAndPlay(10);

3. No frame 10 inserir um keyframe, boto e um texto, na timeline inserir o script stop();

Pgina 44
Action Script e-Learning

4. No Boto do frame 10 inserir inserir o script gotoAndPlay(1);

6- Resumo

Nesta aula foram dados conceitos sobre as aces stop(), play(), gotoAndStop(),
gotoAndPlay(), frames, e labels

7- Exerccio

Prope-se o desenvolvimento de uma animao que comece no frame 1 e salte do frame 10


para o frame 5, mas utilizando labels.

Pgina 45
Action Script e-Learning

Pgina 46
Action Script e-Learning

AULA V ActionScript - Comeando a interactividade


1- Introduo

Nesta aula vo ser transmitidas as informaes necessrias para se comear a programar em


ActionScript, vai-se falar de botes e como associar eventos a botes ou a movieclips.
Relembrando aulas anteriores, um objecto pode ser do tipo boto, movieclip ou grfico, um
objecto do tipo grfico usado para insero de imagens estticas na root ou dentro de um
movieclip, um objecto do tipo boto, como o prprio nome indica serve para criar botes que
permitem captar eventos tpicos dos botes e um objecto do tipo MovieClip serve tanto para
inserir programas completos dentro do flash como simples animaes.

2- Criar um boto

Para se criar um boto deve-se fazer:


Desenhar um circulo e convert-lo para smbolo do tipo boto, clicar duas vezes seguidas
em cima do smbolo para o editar.
Verificar se a timeline deixou de ter frames numerados para passar a ter apenas quatro
frames com as designaes de Up, Over, Down, Hit.
Seleccionar o frame Over e inserir um keyframe, o mesmo para o frame Down e Hit.
Agora temos o circulo duplicado em cada keyframe, o frame Up deve conter o smbolo que
vai aparecer por defeito, o frame Over deve conter o smbolo que vai aparecer quando o
rato se sobrepor a ele, o frame Down deve conter o smbolo que vai aparecer quando se
clica sobre o boto e o frame Hit deve conter o smbolo que representa a rea de aco
que vai detectar se o cursor do rato est sobre o boto.
Agora sai-se do modo de edio do Boto, com o boto feito vamos lhe atribuir uma
aco, para isso com o boto seleccionado chama-se a janela das aces, insere-se a
aco pretendida, por exemplo: gotoAndStop(1);
A aco que foi atribuda ao boto deve estar inserida dentro de um evento, normalmente
o flash escreve logo o cdigo necessrio para que a aco funcione correctamente, se o
flash no inserisse esse cdigo seria necessrio em vez de se escrever simplesmente
gotoAndStop(1); seria necessrio escrever:
on (release){
gotoAndStop(1);
}
Uma noo importante a ter que a { deve estar sempre na linha do evento que a chama
porque se o script fosse escrito da seguinte forma:
on (release)
{
gotoAndStop(1);
}
no iria funcionar.

3- Interactividade com MovieClips

Uma das particularidades novas nas ultimas verses do flash a de permitir adicionar eventos
tambm a movieclips
O processo de se adicionar um evento a um Movieclip igual ao de se adicionar um evento a
um boto, no entanto os eventos que se podem atribuir a um Movieclip podem ser muito mais
complexos que os dos botes. Por exemplo, imagine-se um movie com vrias animaes,

Pgina 47
Action Script e-Learning

obviamente iro demorar algum tempo a carregar o que sempre desagradvel e pode levar o
utilizador a distrair-se e quando d conta j a animao comeou a correr, para evitar que
isso acontea e de forma a garantir que o utilizador v a animao toda, basta ter um boto de
comear que s depois de pressionado que a animao comea, esse boto pode aparecer
depois do movie ter sido todo carregado.
Como se pretende que o utilizador clique em qualquer regio do ecr para continuar pode-se
fazer um boto do tamanho do stage, mas desagradavelmente iria ficar sempre visvel o cursor
que aparece sempre que passa por cima de um boto, para dar a volta a esse problema o
ideal era ter um movieclip que permitisse comportar-se como um boto sem alterar o cursor do
rato.
Para se atribuir ento o script ao MovieClip, o cdigo seria:
onclipEvent(mouseDown){
// qualquer coisa
}
Como se verifica, os eventos so captados de forma diferente da dos botes, num boto basta
escrever onRelease enquanto que num movieclip tem de se escrever
onClipEvent(mouseDown).
Agora aconselha-se a ver os restantes eventos que podem ser atribudos a um movieclip.

4- Exemplos

Vou agora exemplificar a utilizao dos eventos que se podem associar a botes e a
movieclips para fazer um jogo muito simples, o jogo consiste em ter uma pista de automveis,
uma linha de partida e uma linha de chegada, assim que o rato clicar no boto comear tem de
percorrer a pista sem que o cursor do rato saia da sua rea e s termina quando chegar
linha de chegada e clicar no boto terminar.
1- Deve-se desenhar uma linha com alguma espessura e convert-la para boto
2- Deve-se inserir um boto na linha de partida
3- Deve-se inserir um boto na linha de chegada
4- Deve-se inserir uma label chamada start, outra chamada perdeu e outra chamada
ganhou.
5- No frame 1 insere-se uma aco de stop();
6- No boto de inicio do jogo insere-se a aco gotoAndStop(start);

Pgina 48
Action Script e-Learning

7- Nos frames a que do acesso a label start deve-se atribuir ao boto que representa
a pista a aco: gotoAndStop(Perdeu);

8- E no boto da meta insere-se a aco gotoAndStop(Ganhou)

9- Uma particularidade importante a de que os eventos captados pelos botes


diferem entre si, o boto de inicio, capta o evento Release, que chamado quando
se clica com o rato sobre o boto. O Boto que representa a pista, capta o evento
RollOut que chamado quando o rato sai da sua superfcie. O boto de fim, capta
o evento RollOver que chamado quando o rato passa por cima do boto.

10- Agora, prope-se ao utilizador que ponha em prtica este exemplo.

Pgina 49
Action Script e-Learning

5- Resumo

Nesta aula ficou-se a saber como captar os eventos que o rato desencadeia sobre botes e
sobre Movieclips, ficou-se tambm a saber como se pode apenas com pouco cdigo e travs
da captao dos eventos do rato, fazer um jogo simples.
Tambm se ficou a saber como atribuir labels aos frames de forma a facilitar a navegabilidade
entre frames.

6- Exerccio

Prope-se que o aluno altere o exerccio anterior e em vez dos botes de inicio e fim utilize
MovieClips.

Pgina 50
Action Script e-Learning

AULA VI ActionScript - Truques de navegao


1- Introduo

Para completar os conhecimentos adquiridos at agora e para desvendar alguns dos segredos
que alguns sites escondem, vou apresentar alguns truques que se podem utilizar para criar
efeitos interessantes.

2- Botes invisveis

Um dos truques trata-se de criar botes invisveis que podem ser facilmente colocados sobre
objectos animados permitindo mascarar todo o tipo de objectos e/ou imagens.
Para se criar um boto invisvel o processo igual ao de criar um boto normal, a diferena
que para se obter um boto invisvel deve-se apagar todos os objectos dos frame Up, Over e
Down, mantendo-se apenas o objecto no frame hit.

Depois de criado o boto pode-se visualizar no stage que o boto mudou de aparncia, para
um azul transparente.

Pgina 51
Action Script e-Learning

3- Ligar Cenas

Por defeito quando se cria um programa em flash tem-se logo disponvel uma timeline e uma
Cena que aparece com a designao de scene, no entanto o flash est preparado para ter
vrias cenas com essa possibilidade, pode-se separar por vrias cenas os links que partem de
um menu, no fundo cada cena comporta-se como se de um novo programa se tratasse, com a
particularidade de que se um objecto existir em vrias cenas carregado apenas uma vez
contrariamente a se tivesse vrios programas independentes entre si.

4- Ligar Labels

Outra caracterstica do flash a de permitir ter vrias labels, como vimos anteriormente
facilitam a criao de links dentro do flash as labels podem estar dispersas por vrias cenas
que o flash consegue detect-las na mesma.

5- Ligar MovieClips

Os movieclips podem ser sobrepostos uns aos outros, o que est frente ficar frente dos
outros, desta forma podem-se sobrepor animaes umas s outras.

6- Ligar SWFs e Nveis

Para alm de se poder organizar o programa de flash atravs de cenas, labels e com
movieclips, tambm se podem ter vrios swfs j compilados e em tempo real carreg-los para
um determinado nvel como se fossem layers.
O movie que chama o swf externo situa-se sempre no nvel 0, o swf pode ser carregado para o
nvel que se quiser. Convm saber que sempre que se carrega um swf para um nvel os outros
swfs que possam ter sido carregados para a memria e o movie principal no param a sua
execuo, continuam a correm em background e se tiverem botes eles continuam a
funcionar, assim conveniente no sobrepor movies a botes.
Para se carregar o swf o comando que se deve utilizar loadMovieNum(nome do swf, 1) o
segundo parmetro o nvel. Tambm se pode utilizar o comando loadMovie(nome no
movie,nome do swf), outra forma de se carregar um swf que permite substituir um
movieclip que j exista no stage pelo swf.

7- Adicionar animaes a botes

Criar botes animados no complicado, simplesmente possuem movieclips nos frames up,
Over e Down. Uma sugesto, no insiram animaes no frame hit a menos que queiram criar
confuso.

Pgina 52
Action Script e-Learning

8- Janelas deslizantes

Como j devem ter visto em alguns sites de flash, existem janelas que se podem deslocar
dentro de um programa de flash ora no muito complicado conseguir essa proeza.

Vou ento explicar como se podem criar janelas deslizantes:

1- Deve-se criar um novo movie, basta ter 800x600 pixels.

Pgina 53
Action Script e-Learning

2- Depois, Cria-se um movieclip que ser a nossa janela, o Design fica


responsabilidade de cada um. Acrescenta-se tambm no frame 1 a aco stop();

3- Editar o movieclip da janela e criar um segundo keyframe no frame 2 igual ao do


frame 1.

Pgina 54
Action Script e-Learning

4- Criar uma segunda layer com o nome de cones e criar 2 cones que representem a
opo de minimizar a janela e a opo de fechar a janela. Criar tambm outro cone
que represente a opo de maximizar que deve ser colocado na layer cones na frame
2, naturalmente na segunda frame a janela deve ter uma aparncia de minimizada.

5- Depois de criados todos os objectos, apenas falta atribuir nomes labels e criar
botes invisveis sobre os cones. Para isso criam-se keyframes nos 3 primeiros
frames com a aco de stop() em cada um deles (sim no 3 primeiros frames, o ultimo
ir apontar para nada, pois ser o frame que chamado pelo boto de fechar janela).
Ao primeiro keyframe d-se o nome label de full.

Pgina 55
Action Script e-Learning

6- Ao segundo keyframe o nome de small

Pgina 56
Action Script e-Learning

7- E ao terceiro o nome de blank.

8- Depois Criam-se 3 botes invisveis que devem ser colocados numa layer frente das
restantes. O boto de fechar a janela deve ter o script gotoAndStop(close);

Pgina 57
Action Script e-Learning

9- O boto de minimizar a janela deve ter o script gotoAndStop(small);

10- A barra que permite janela deslocar-se deve ter os scripts startDrag(); e
stopDrag();

Pgina 58
Action Script e-Learning

11- No segundo keyFrame, a nica alterao a fazer no script do boto de maximizar


que deve ter o script gotoAndStop(full);

12- E tudo, se testar j tem uma janela deslizante.

9- Resumo

Nesta aula ficou a saber construir botes invisveis que podem ser aplicados a vrias
situaes, como por exemplo construo de janelas deslizantes como se viu no ultimo
exemplo.
Os conhecimentos adquiridos nesta aula vo ser bastante teis no futuro, pois a utilizao de
botes invisveis o que mais se utiliza hoje em dia na construo de Sites.

10- Exerccio

Prope-se ao Aluno que complete o exemplo anterior de forma a que a sua janela se
assemelhe o mais possvel s janelas das outras aplicaes, com Titulo, texto, botes de
fechar, maximizar, restaurar e minimizar.

Pgina 59
Action Script e-Learning

Pgina 60
Action Script e-Learning

AULA VII ActionScript - Variveis

1- Introduo

As variveis no flash so tratadas da mesma forma que noutras linguagem de programao,


existem vrios tipos de variveis: numricas, de caracteres e booleanas.
As variveis numricas tanto podem representar nmeros inteiros (27 ou 15), como nmeros
com casas decimais (3,142).
As variveis de caracteres podem representar qualquer tipo de caracter e no tem limite
definido, por exemplo: Sham, Hello, a1b2c3.
As variveis booleanas apenas representam 2 estados, true ou false.
Quando se torna necessrio guardar estes diferentes tipos de dados, em algumas linguagens
de programao e necessrio definir o seu tipo antes de as utilizar, em ActionScript tal no
necessrio pois trata-se de uma linguagem untyped, o que representa que no necessrio
especificar o tipo de dados que a varivel vai guardar, para alem disso as variveis em
ActionScript podem guardar diferentes tipos de dados em momentos diferentes.

2- Literais e expresses

O mtodo mais simples para se atribuir um valor a uma varivel atravs do sinal (=).
O mtodo mais simples para se especificar o que se pretende guardar atravs da utilizao
de valores literais.
Ento, quando se pretender guardar um nome numa varivel em ActionScript chamada
meunome faz-se da seguinte forma: meunome="aderito";
Neste caso "aderito" trata-se de um literal do tipo caracteres pois encontra-se entre duas
aspas.
Se em alternativa se pretendesse guardar um literal inteiro bastava fazer: minhaidade=27;
Depois de o flash interpretar estas duas linhas de cdigo as variveis poderiam ser utilizadas
para substituir os valores que guardaram, por exemplo se fosse escrita a seguinte linha de
cdigo:
resultado=minhaidade - 10;
A varivel resultado passava a conter o valor 17 que o resultado da operao 27-10.
A esta ultima operao d-se o nome de expresso pois trata-se de outra forma de atribuir
valores a variveis.
importante realar que a gesto dos tipos de variveis so da responsabilidade do
programador pois se a=2 e b=3 ento a+b=5 mas se a="fa" e b="ca" ento a+b="faca" e se
a="fa" e b=3 ento a+b="fa3".
importante saber de que tipo so as variveis, para evitar misturas convm que as variveis
numricas se mantenham sempre numricas e vice-versa.

3- Variveis de Input

Ate agora apenas se explicaram quais os tipos de variveis existentes e como lhes atribuir
valores, vamos ento exemplificar com um exemplo como podem ser realmente teis em para
isso vamos guardar caracteres.

Pgina 61
Action Script e-Learning

Vai ter de se criar um campo de input, obvio que se queremos guardar um valor que o
utilizador insira ter de existir um campo de input, para isso selecciona-se o cone de texto

E cria-se uma caixa de texto no stage

Pgina 62
Action Script e-Learning

Depois necessrio alterar o tipo de texto de static para input

Atribui-se lhe um nome

E pronto, j temos uma varivel chamada nome que guarda os valores que o utilizador venha
a inserir.

4- Variveis de output

Para se criar uma varivel de output o processo igual ao de criar uma varivel de input em
que a nica diferena reside em que no tipo de varivel, em vez de ser input dever ser
dynamic, crie ento uma varivel de output com o nome resultado.

Pgina 63
Action Script e-Learning

Agora se no flash se acrescentar um boto com o script resultado = nome + "ww" vai
acontecer que o valor inserido vai aparecer no campo de output com os caracteres "ww"
acrescentados.

5- Atribuir nomes s variveis


O nome que se pode dar a uma varivel pode ser o que se entender desde que no colida
com alguns nomes que so reservados.
Os nomes que esto reservados ao flash e que no podem ser utilizados como variveis so:
break, continue, delete, else, for, function, if, in new, on, return, this, typeof, var, void, while e
with.
Tambm os smbolos:
{}, ;, () no podem ser usados como variveis.
Tambm convm no preceder nenhuma varivel com // ou com /* pois so indicadores de
comentrio e as variveis no so interpretadas.
Tambm os operadores so reservados, +-/* os espaos tambm no dever ser usados, deve-
se optar por _ para substituir os espaos numa varivel.
E por ultimo uma varivel no pode ser precedida de dgitos.
Resumindo so representaes correctas de variveis:
Vaca
Menu8
Label7c
Off
So representaes incorrectas
On
Label 7
6cmenu
My-toys
Uma nota importante que o flash case sensitive, ou seja, os comandos se no forem
escritos correctamente em letras maisculas e minsculas no funcionam, mas relativamente
as variveis j no e case sensitive.

6- Variveis numricas

Para se utilizarem variveis numricas basta que o valor atribudo varivel seja um valor
numrico, mas caso se pretenda criar uma varivel de input que s receba valores numricos
necessrio fazer algo mais.
Se analisarmos a janela das propriedades de um campo de texto do tipo input, conseguimos
detectar um conjunto de botes que permitem embeber no documento final de flash, fontes e
conforme se activam esses botes, d-se ordem ao flash para embeber apenas caracteres
numricos, texto, smbolos ou todos.
Portanto quando se pretender um campo de input que apenas receba valores numricos, s
se deve seleccionar o boto de embeber caracteres numricos.

Pgina 64
Action Script e-Learning

7- Variveis booleanas

Tal como para se utilizarem variveis numricas basta que o valor atribudo varivel seja um
valor numrico, tambm para se utilizarem variveis booleanas basta atribuir o valor true ou
false varivel.

8- Actionscript Objectos, propriedades e mtodos

Tal como nas linguagens de mais alto nvel a utilizao do conceito de objectos continua a ser
mais usada, tambm o flash permite lidar com objectos.
Quando se pensa em variveis como representaes reais como por exemplo chocolates
ento uma caixa de chocolates pode ser considerada um objecto.
Os objectos providenciam meios para guardar e manipular valores.
No flash existem vrios tipos de objectos mas provavelmente o objecto movieclip que mais
facilmente entendido, assim vou comear por explicar o comportamento, propriedades e
mtodos desse tipo de objecto.

Pgina 65
Action Script e-Learning

Se no frame 1 inserirmos a aco a.play(); ento o objecto a recebe o mtodo play(); que lhe
diz para iniciar a sua execuo.

Tal como existe o mtodo play(); existem muitos outros mtodos que podem ser objectos na
janela das aces Action frame.
Sendo um objecto tambm dispe de propriedades que servem para obter e/ou alterar
algumas caractersticas do objecto, uma das caractersticas mais interessante a de se obter
a localizao do objecto em relao ao stage sob o formato x/y. Mais adiante veremos as
vantagens em manipular esta propriedade dos objectos.
Se pensarmos em grande, importa dizer que um objecto do tipo movieclip pode ser um swf
externo que carregado em tempo de execuo e que pode ter vrios movieclips dentro de
movieclips infinitamente, ora isso muito interessante, imagine-se que se tem um documento
de flash swf que se chama relogio.swf, nem se faz a menor ideia como foi programado
apenas se sabe que um relgio que mostra as horas, caso no esteja protegido ( possvel
proteger os swfs de forma a no poderem ser importados para outras aplicaes de flash),
pode ser utilizado na nossa aplicao de flash, exemplificando:

Pgina 66
Action Script e-Learning

9- Exemplos

Deve-se criar um objecto do tipo movie clip e atribuir-lhe um nome, por exemplo relgio

No frame 1 insere-se o seguinte cdigo: loadMovie(relogio.swf, relogio);

Pgina 67
Action Script e-Learning

E o resultado obtido ser:

10- Resumo

Nesta aula deram-se conceitos sobre Literais e expresses, explicaram-se quais os diferentes
tipos de variveis de Input/Output que podem ser utilizados no flash, explicou-se como atribuir
nomes s variveis e qual a diferena entre variveis numricas, variveis booleanas e strings.
Por ltimo, explicou-se o conceito de Objectos e quais as suas propriedades e mtodos.

11- Exerccio

Prope-se a criao de um movieclip que corresponda a uma janela, tal como se vio na aula
anterior, e um novo movie clip que atravs do script loadMovie(janela.swf, janela1); e
loadMovie(janela.swf, janela2); substitua 2 moviclips pelo mesmo janela.swf.
Pretende-se com este exerccio que explicar a possibilidade de se reutilizar o mesmo
movieclip externo vrias vezes dentro de outro movieclip.

Pgina 68
Action Script e-Learning

AULA VIII ActionScript - Loops

1- Introduo

Neste ponto de aprendizagem, j conseguimos que o flash realize instrues bsicas, saltar
entre frames, controlar aces dos botes, mas ainda no lhe conseguimos dar instrues que
o faa agir de uma forma inteligente. Na aula anterior aprenderam-se conceitos bsicos de
manipulao de variveis, nesta aula vo ser dados conceitos de loop e da utilizao de
variveis para a tomada de decises provocando com que as apresentaes de flash ajam de
uma forma inteligente e que tenham comportamentos mais convincentes.

2- Tomada de decises

Em termos de tomada de decises, o flash limita-se a um comando, o if. Este comando, pode
ser complementado com else e elsif para lhe conferir mais funcionalidade.
Antes de comear a explicar a estrutura if-elsif-else, vejamos como se tomam as decises na
vida real.
Eu vou hoje ao Concerto de Rock se no estiver a chover
mais provvel pensar-se assim:
Se eu tiver dinheiro suficiente e no estiver a chover, vou hoje ao concerto de Rock
Agora a deciso j no baseada apenas na condio de no estar a chover, mas tambm na
condio de ter dinheiro suficiente.
Para se converter estas duas condies para o flash de uma forma que ele consiga entender,
necessrio seguir uma determinada simbologia, como se de uma nova linguagem se
tratasse.
Escrevendo de uma forma simplista, o que se pretende que o flash entenda:
If (No est a chover) and (tenho dinheiro suficiente)
{Vou ao concerto}

3- if

Ento as simbologias a seguir so:


Todas as condies devem comear com o comando if.
Logo aps o comando if deve vir entre ( parntesis ) a condio.
No final do parntesis deve abrir-se uma chaveta {.
Na linha de baixo deve vir as aces a realizar caso a condio seja satisfeita.
No fim das aces a realizar deve-se fechar a chaveta }.

If ( condio ) {
Aces
}

No exemplo anterior, se existissem duas variveis, esta_chover e tenho_dinheiro em que


eram inicializadas a 0 e sem em algum ponto do programa fossem actualizadas, caso
estivesse a chover a varivel esta_chover ficava com o valor 1 e se tivesse dinheiro suficiente
a varivel tenho_dinheiro ficava com o valor 1, ento a condio seria escrita da seguinte
forma:
If (esta_chover == 0) and (tenho_dinheiro == 1) {
Aces
}

Pgina 69
Action Script e-Learning

4- elseif

Se os clculos que o flash teria de fazer em cada condio fossem bastante demorados ento,
podia-se separar as condies em dois ifs, em que o segundo s era testado se o primeiro
fosse verdadeiro. Nesse caso o cdigo ficaria:

If (esta_chover == 1) {
Aces
}elseif (tenho_dinheiro == 1){
Aces
}

5- else

Para alm do elsif, tambm se pode utilizar o comando else para executar aces sempre
que a condio de if no for satisfeita com sucesso.
A principal diferena ente o else e o elseif, que s se pode usar um comando de else por
cada condio de if, enquanto que o comando elseif pode ser usado quantas vezes for
necessrio, desde que esteja aps uma condio de if e antes de alguma instruo de else.
Por exemplo:

If (esta_chover == 1) {
Aces
}elseif (tenho_dinheiro == 1){
Aces
}else{
Aces
}

6- ActionScript loops

Um ActionScript loop existe no entre frames diferentes mas no prprio frame que contm
cdigo que lhe permite entrar em loop sem que saia desse frame.
Convm advertir, que se for criado um ActionScript que num nico frame contenha cdigo que
mova um objecto no stage de um lado para outro, o resultado que se iria obter no seria
equivalente ao deslocamento continuo desse objecto, mas apenas a um salto da posio
inicial at posio final obtida aps completar o loop. Isto deve-se ao facto de que o flash
apenas actualiza os objectos do stage quando muda de frame.
Portanto, a utilizao de ActionScript loops bastante til quando se pretende realizar clculos
que necessitem de um tempo de resposta muito rpido.
Como se realizam ento esses loops?
Tal como para as condies existe uma simbologia prpria, tambm para se escrever cdigo
para a realizao de loops necessrio respeitar uma determinada simbologia.
O comando que permite dizer ao flash que vai comear uma condio de loop o while, que
pode funcionar isoladamente, exemplo:

While (a<10){
Aces
a=a+1;
}

Pgina 70
Action Script e-Learning

Ou ento, pode ser usado da seguinte forma:

do{
Aces
a=a+1;
} While (a<10);

A diferena da primeira para a segunda forma de se escrever as condies de loop, que a


primeira condio de loop primeiro verifica se verdadeira e s depois executa as aces,
enquanto que na segunda primeiro so executadas as aces, pelo menos uma vez e s
depois testada a condio de loop.
Deve-se tomar as devidas precaues de forma a evitar criar condies de loop interminveis,
pois o resultado levaria a aplicao a bloquear.
Outro comando que permite criar condies de loop o comando for, este comando til,
sempre que se pretendam escrever condies de loop que terminem aps se terminar uma
sequncia de valores, em vez de se ter mais duas linhas de cdigo, que seriam necessrias
utilizando o comando while, recorrendo ao comando for conseguem-se evitar essas duas
linhas de cdigo, exemplo:

contador = 0
while ( contador < 10 ) {
Aces
contador++;
}

A alternativa seria:

for ( contador = 0; contador < 10; contador++ ){


Aces
}

7- Arrays

Um Array uma varivel que contm uma sequncia numrica para localizaes de memria.
Em cada uma dessas localizaes de memria, podem ser guardados diversos tipos de
dados, na prtica uma varivel do tipo Array assemelha-se a um armrio com gavetas, a
varivel identifica o armrio e cada localizao de memria corresponde a cada gaveta que
contm dados armazenados.
A sintaxe de uma varivel do tipo Array variavel[posio de memria], por exemplo se
quisermos guardar um valor na posio de memria 1 da varivel numeros faramos da
seguinte forma:

numeros[1] = 4;

Ao valor correspondente posio de memria do Array costuma-se dar a designao de


offset.
Sempre que se atribui um valor a uma posio de memria do Array, o flash cria essa entrada,
portanto se existir uma varivel que lhe tenham sido atribudos valores para a posio 1 e 4,
s essas posies de memria que foram criadas, no existe a posio de memria 2 e 3.

Pgina 71
Action Script e-Learning

Caso se pretenda definir prior todas as posies de memria que se pretendam, ento deve-
se utilizar o comando new Array(nmero de entradas), por exemplo:
numeros = new Array(5); // Foram criadas 6 entradas no array numeros, sim 6
entradas porque o zero tambm conta no flash.
Tambm se podem passar valores automaticamente para a varivel a criar da seguinte forma:
numeros = new Array(1, 6, 4, 6);
nomes = new Array(casa, carro, moblia);
numeros = new Array(); // Neste caso, apenas se define que a varivel vai ser do tipo
Array.

8- Exemplos

Vou exemplificar a utilizao dos conceitos anteriores atravs da construo de um exerccio


que tem como finalidade calcular o factorial de um nmero.
Relembrando o que o factorial de uma nmero, corresponde a multiplicar esse nmero pelo
seu correspondente anterior sucessivamente at chegar ao valor 1.
Por exemplo, para calcular o factorial de 4 deve-se fazer os seguintes clculos:

4 * 3 * 2 * 1 = 24

Para escrever um script simples que calcule o factorial de um nmero vou recorrer
recorrncia, ou seja, vou chamar consecutivamente uma funo enviando-lhe todos os valores
que vo ser calculados, e ela me devolver o resultado do ultimo valor a multiplicar pelo
anterior. Os valores seriam passados da seguinte forma:
1- O resultado ser: 4 * B, em que B = Calcula (41)
2- O resultado de B ser: 3 * C, em que C = Calcula (3-1)
3- O resultado de C ser: 2 * D, em que D = Calcula(2-1)
4- O resultado de D ser: 1
5- Logo o resultado de C ser 2 * 1 = 2
6- O resultado de B ser 3 * 2 = 6
7- O resultado final ser 4 * 6 = 24

Estas vo ser todas as iteraes que a funo que vou escrever vai realizar, e o processo
ilustrado anteriormente chama-se recorrncia, em que se pode verificar que utilizei sempre a
mesma designao Calcula.

Um outro conceito novo que vou utilizar o recurso a funes, vou criar uma funo chamada
factorial que recebe como parmetro um valor que vai ser guardado na varivel numero.

A funo pode ser escrita da seguinte forma:

function factorial(numero){
if(numero > 0){
return numero * factorial(numero 1);
}
else
{
return 1;
}
}

Pgina 72
Action Script e-Learning

Para alm da funo vou criar uma varivel de input denominada de numero e uma varivel
de output denominada de res.
Por fim, crio um boto que vai conter o script:

on (release) {
res = factorial(numero);

function factorial(numero){
if(numero > 0){
return numero * factorial(numero 1);
}
else
{
return 1;
}
}
}

Se no quisesse recorrer a recursividade, a funo teria de ser escrita de outra forma, por
exemplo:

on (release) {
res = factorial(numero);

function factorial(numero){
res = 1;
while(numero > 0){
res = res * numero;
numero = numero1;
}
return res;
}
}

Pgina 73
Action Script e-Learning

9- Resumo

Nesta aula foi dado um passo importante na clarificao entre o flash e a programao em
ActionScript, foram dados conceitos importantes sobre a utilizao de condies e sobre a
utilizao de mecanismos de loop. Testou-se o primeiro exemplo de programao de alto
nvel.

10- Exerccio

Pretende-se que o aluno escreva uma aplicao que dado um nmero, consiga determinar se
esse nmero ou no um nmero primo, ou seja, se apenas divisvel por ele prprio e pela
unidade (1).

Pgina 74
Action Script e-Learning

AULA IX ActionScript - Interactividade avanada


1- Introduo

Nesta aula vo ser explicados conceitos sobre classes, como manipular de objectos e qual a
importncia de se criar mecanismos de pr carregamento de pginas.
Como j vimos em aulas anteriores, todo o conceito do flash gira volta de objectos, quer
sejam movieclips, botes ou grficos, vimos tambm que cada um desses objectos possui
propriedades e mtodos, vimos tambm que em alguns casos tivemos de atribuir um nome
aos movieclips de forma a os podermos manipular, a esse nome chama-se instanciao.

2- Instanciao

Quando se comea a aprender na escola a ler e a escrever, primeiro aprendem-se as palavras


e gradualmente vai-se passando para os conceitos de verbos e de gramtica, com o flash
acontece o mesmo, instancias so apenas mais um passo num processo de aprendizagem
que vai ficando cada vez mais complexo. No flash, quase tudo pode ser alterado, chamando-
se a esse modelo de modelo orientado para objectos.
Como que o flash funciona?
Considerando os objectos elementares como grficos, botes e movieclips, que aps serem
instanciados com nomes que os representem, passam a poder ser totalmente manipulados
atravs de ActionScript, pois passaram a ter uma referencia que os identifica, a sua instancia.
Sabendo que objectos do tipo botes e grficos no podem ser instanciados a menos que se
altere o seu tipo de comportamento para movieclip d-nos a sensao que o mais importante
a instanciao, mas no totalmente verdade. Na realidade todos os movieclips tm nomes
instanciados, mesmo que no lhe tenhamos atribudo um.
O flash atribui nomes automaticamente comeando em instance1, ... a instancen. Se
experimentarmos criar 3 movieclips e chamar o debuger, consegue-se visualizar que cada
movieclip tem o seu nome instanciado.

Pgina 75
Action Script e-Learning

OK, ento se o processo de se instanciar um nome aos objectos no o mais importante, o


que ?
o facto de se saber que o que se est a controlar um movieclip, ou seja, um objecto.
Sempre que existirem objectos similares, podem ser agrupados em classes.

3- Classes mtodos, propriedades, comportamentos

Uma classe corresponde a um termo de programao que descreve um template para um


objecto, corresponde a descrever uma lista de coisas que todos os objectos pertencentes a
essa classe conseguem fazer.
Uma classe chamada planta deve corresponder a um template que deve ter:
O nome da planta
A altura da planta
A cor da flor
O ms em que a flor desabrocha
O tipo de solo para a planta

Um objecto em particular do tipo planta deve ter como caractersticas todas as propriedades
descritas na classe, por exemplo: roseira, 10cm, vermelha, Maio, normal.
No flash cada classe tem trs categorias que nos interessam:
Mtodos
Propriedades
Comportamentos

Os mtodos so instrues que se podem passar aos objectos de uma determinada classe
de algo que se pretende que eles venham a realizar.
J se sabe o que esperar quando se invoca o mtodo nome_da_instancia.play(); trata-se de
um mtodo que s se pode invocar a um objecto do tipo movieclip, no pode ser usado em
botes nem em grficos, neste caso o mtodo a invocar chama-se play().
J Som.setVolume(100); e numero_de_letras=frase.length; tratam-se de mtodos que s
podem ser invocados a objectos de certas classes. No primeiro caso o mtodo setVolume
serve para alterar o volume do som de um objecto pertencente classe chamada som, no
segundo caso trata-se de obter o nmero de caracteres de um objecto pertencente classe
string.

Como se pode constatar pelos exemplos anteriores, a invocao de mtodos processa-se


sempre da mesma forma, nome_da_instancia.<mtodo><argumentos>;
A nica complicao no meio disto tudo, que para se poder invocar alguns mtodos em
alguns movieclips, necessrio escrever o caminho at ao objecto.
Relembrando as paths dadas nas primeiras aulas, alguns movieclips para poderem invocar
mtodos de outros movieclips que estejam fora da rvore geneolgica a comear no movieclip
que pretende invocar o mtodo, torna-se necessrio escrever o caminho todo at ao movieclip
pretendido, exemplo: root.nome_do_movieclip.metodo.
Resumindo: path.nome_da_instancia.<mtodo><argumentos>

As propriedades so pedaos de informao que juntos definem tudo o que pretendemos


saber sobre um membro da classe. Relembrando a classe planta, era composta por 5 valores,
em programao as propriedades podem dar mais informaes para alm daquelas que foram
criadas na classe. Uma propriedade pode representar um determinado valor de um objecto ou
pode representar algo que pretendemos que o objecto realize.

Pgina 76
Action Script e-Learning

Por exemplo, se definirmos uma classe denominada sprite, podendo ter como propriedades, o
nome, a posio no eixo dos xx, yy, a velocidade e direco sobre o eixo dos xx e yy, se o
sprite atingiu outro e o nome do outro sprite que foi atingido, podemos obter facilmente os
valores dessas propriedades, atribuindo-os a variveis e/ou escrever outras propriedades que
alterem esses valores.
O flash possui uma lista de propriedades que se podem obter e/ou manipular acedendo
janela das Properties -> Actions. Importa referir que a maior parte dessas propriedades s
podem ser usadas em objectos do tipo movieclip.

Os Comportamentos correspondem forma como os objectos realizam determinadas


aces, no flash todos os objectos da mesma classe possuem o mesmo tipo de
comportamentos o que torna o processo de programao bastante simplificado, pois espera-
se que um objecto do tipo movieclip se comporte como um filme, com frames, que corra a x
frames por segundo etc...

No muito mais a dizer sobre os comportamentos, excepto se pretendermos animar um


objecto do tipo grfico, face s suas caractersticas, a nica forma a de alterar o seu tipo de
comportamento de boto para movieclip.

4- Definio de objectos (Movieclips, objectos no grficos)

Um objecto em flash corresponde a uma classe que foi inicializada para incluir uma srie de
propriedades que a torna nica.

Pgina 77
Action Script e-Learning

Por exemplo, enquanto um movieclip se encontra na libraria de objectos, apesar de ser uma
classe no possui quaisquer propriedades, mas assim que arrastado para o stage, so lhe
atribudas automaticamente uma srie de propriedades (ganha logo as propriedades
correspondentes classe sprite, posio x, y), o mais importante o nome da instancia que
no se sabe qual at se lhe atribuir um nome, enquanto no se atribuir uma instancia ao
objecto, no se pode invocar os seus mtodos, portanto instancias so diferentes de objectos,
importante ter essa noo bem presente.
Para alm dos objectos que j foram apresentados anteriormente, existem outro tipo de
objectos, objectos que podem ser criados atravs de ActionScript, a esses objectos costumam
chamar-se objectos no grficos.
Objectos no grficos podem ser por exemplo:
letras = new Array(10);
som = new Sound();

Ambos os comandos seguem a mesma regra, um objecto passa a existir assim que lhe for
atribudo um nome.
Agora que j se adquiriram conhecimentos sobre classes, objectos, propriedades, mtodos e
comportamentos, pode-se comear a criar realmente bom material.

5- Interactividade Avanada e propriedades dos objectos

Podemos usar todo o conhecimento adquirido sobre a estrutura do flash de forma a ter
controlo directo sobre o que acontece no interior do flash atravs de ActionScript. J no
necessrio preocuparmos com tween animations porque tudo pode ser feito atravs de
cdigo com garantias de um controlo mais elevado usado ActionScript.
Comeando por exemplificar o poder deste mtodo vejamos com dois exemplos, preloads e
cache.

6- Preloads e Cache

A maior parte dos iniciantes gosta de ter preloads nos seus sites, mas na maior parte das
vezes confundem o preload com um intro, inserindo os preloads dentro de intros pesados
levando muitas vezes o utilizador a no esperar pelo boto de skip intro e a abandonar o site.
Ento o ideal ter um intro que enquanto decorre, o flash vai carregando o menu do site.
Mas o que acontece se o utilizador clicar no boto de skip intro, ou porque no lhe apetece
visualizar o intro, ou porque j o viu anteriormente e o menu ainda no ter carregado?
para evitar que isso acontea que deve existir o preload, mas no menu principal e que
informe do progresso do carregamento desse mesmo menu.
Desta forma, evita-se fazer preload do intro e do menu, tornando o preload demorado,
consegue-se que durante o intro o menu v carregando para a cache e caso o utilizador clique
no boto de skip intro antes do menu estar totalmente carregado em cache, entra em
funcionamento o preload.

Como na maior parte das vezes os designers no conseguem manipular formas de fazer
preload de objectos no flash gradualmente, optam por fazer um site em que apenas o menu
principal feito em flash e cada link redirecciona para uma janela em html ou flash, o que
torna as coisas um pouco confusas.
Para dar a volta a esta questo o truque muito simples:
Deve-se criar um menu bastante leve, apenas com objectos que representem a zona dos
menus e da informao, esses objectos devem ser do tipo movieclips.

Pgina 78
Action Script e-Learning

Depois insere-se nessa pgina um prload para garantir que todo o flash carregado em
cache e todos os scripts vo funcionar nos respetivos stios.
E por fim faz-se o load de cada movie para os respectivos locais.

7- Exemplos

Um dos processos mais simples de se programar um mecanismo de prload numa pgina,


por exemplo ter uma animao a dizer a carregar, aguarde ..... e um keyframe no frame 1,2 e
3 respectivamente.
Na timeline, no keyFrame 2 coloca-se o script:

ifFrameLoaded (<nmero mximo de frames>){


gotoAndPlay(4);
}

E no frame 3, o script:

gotoAndPlay(2);

Pgina 79
Action Script e-Learning

Outro processo mais profissional, atravs da utilizao de processos de loading com


informao ao utilizador da percentagem de elementos carregados estimando o tempo que
falta para terminar de carregar o resto da pgina.

Pgina 80
Action Script e-Learning

Por exemplo, se na frame 1 tiver-mos o script

/:time0 = getTimer();
/:loaded0 = _root.getBytesLoaded();
/:total0 = _root.getBytesTotal();

Passamos a ter nessas 3 variveis respectivamente o tempo de inicio da aplicao de flash na


varivel time0, a varivel loaded0 vai sendo actualizada constantemente com o numero de
bytes j lidos para a cache e a varivel total0 vai conter o numero total de bytes que vo ser
necessrios carregar para cache, quando a varivel loaded0 for igual varivel total0, a
aplicao de flash j est toda em cache e pode prosseguir com as restantes animaes.

Pgina 81
Action Script e-Learning

No frame 2 pomos o script:

/:iteration = number(/:iteration)+1;

Esta varivel vai contar o numero de loops que j decorreram, para que atravs dessa varivel
e do tempo j decorrido se possa estimar o restante tempo que falta para carregar o resto do
movie.

Pgina 82
Action Script e-Learning

No Frame 3 que vai ser necessrio inserir o maior conjunto de scripts:

/:timer1 = getTimer();
/:loaded1 = _root.getBytesLoaded();
/:loaded2 = int(number(/:loaded1)/1000);
/:timesum = number(/:time1)-number(/:time0);
/:loadsum = number(/:loaded1)-number(/:loaded0);
/:avtimesum = number(/:timesum)/number(/:iteration);
/:avloadsum = number(/:loadsum)/number(/:iteration);
/:conectionspeed = int((number(/:avloadsum)/number(/:avtimesum))*10)/10;
/:percent = int((_root.getBytesLoaded()/_root.getBytesTotal())*100);
setproperty(_root.loadbar,_yscale,number(/:percent));
setproperty(_root.loadbar2,_xscale,number(/:percent));
/:timerleft = (int((number(/:total)-
number(/:loaded1))/number(/:connectionspeed)/100))/10;
if(_root.getBytesLoaded()==_root.getBytesTotal()){
_root.gotoAndPlay(site);
}else{
gotoAndPlay(loop);
}

Todas estas linhas de cdigo servem para actualizar o valor das variveis identificadas por /:
que podem ser utilizadas como se desejar.

Pgina 83
Action Script e-Learning

E por fim, na frame 5 pe-se por exemplo o script gotoAndPlay(20); para avanar para as
animaes propriamente ditas.

8- Resumo

Nesta aula deram-se conceitos sobre instanciao, objectos, mtodos, propriedades e como
manipular a cache programando mecanismos de prload.

9- Exerccio

Pretende-se que o aluno crie uma nova scene numa das aplicaes j desenvolvida em aulas
anteriores e que programe um mecanismo de prload nessa scene.

Pgina 84
Action Script e-Learning

AULA X ActionScript ActionScript Modular, processos de


clonagem, teoria dos jogos
1- Introduo

Nesta aula vou apresentar um exemplo em veremos o flash a funcionar em todo o seu
potencial, vou explicar como se podem criar objectos que tenham comportamentos diferentes
simultaneamente no mesmo espao de tempo e que ao mesmo tempo o utilizador tenha
controlo absoluto sobre um desses objectos. O exemplo que vou usar para exemplificar todos
os passos necessrios para o efeito, ser o da realizao de um jogo que consiste em ter
vrias naves inimigas e uma nave que possa ser controlada pelo utilizador.
Durante a explicao de cada passo a realizar para a concepo do jogo ir permitir ao aluno
ficar a conhecer mais algumas caractersticas do flash para manipulao de objectos.
O exemplo vai ser enviado ao aluno por email, para que o possa testar e melhor compreender
todo o processo.

2- Conceitos sobre jogos, Exemplo:

Existem vrios conceitos sobre esta matria, mas vou explicar apenas o necessrio para se
compreender como se vai realizar o jogo.
Praticamente vo existir dois grandes comportamentos no jogo, aqueles que so
desencadeados pela aco do utilizador e aqueles que so desencadeados automaticamente
pelo sistema.
Relativamente aos acontecimentos que vo ser desencadeados pelo utilizador temos a
mudana de posio da nave boa e o disparo de balas, relativamente aos acontecimentos
desencadeados pelo sistema temos a mudana de posio de cada nave inimiga e o disparo
de balas.
Podemos partir do pressuposto de que se o utilizador mover o rato, a nave boa deve mover-se
sobre o eixo dos xx na medida correspondente ao deslocamento do rato e se o utilizador clicar
no rato deve ser criado um objecto bala boa.
Quando a bala boa criada, deve ter como propriedades a sua posio no eixo dos xx yy e a
qual a prxima aco que deve realizar.
O mesmo se passa em relao a cada nave inimiga, quando o sistema as cria pela primeira
vez deve-lhes atribuir propriedades correspondentes sua posio no eixo dos xx yy e qual a
prxima aco a desempenhar.
Tudo isto muito interessante, mas como fazer com que cada nave e balas interajam ao
mesmo tempo?
O processo muito simples, imagine-se que cada aco acontece num determinado espao
de tempo, a bala e as naves alteram as suas posies simultaneamente, criando nesse
mesmo momento a sua prxima aco a realizar que pode ser mover ou morrer ou criar um
novo objecto.
Pode estar a parecer um pouco confuso, ser mais fcil comear a visualizar-se algo.

3- Criar os objectos

Vamos comear por criar os actores do nosso filme


A nave boa
A nave inimiga
A bala boa
A bala inimiga

Pgina 85
Action Script e-Learning

4- Criar o script que coloque todos os objectos nas posies correctas e que iniciasse
todas as variveis que vo ser utilizadas:
// inimigo = 3,2,1
// bala = 5

var obj_num;
var objectos_number;
var number_objectos;
var n_obj_inimigos;

Esta funo vai permitir que a funo Initialize() s seja executada uma vez
if (!initialized) {
Initialize();
initialized = true;
}

Esta funo vai inicializar as variveis e criar as naves inimigas


function Initialize () {
n_obj_inimigos = 0;
obj_num = 0;
objectos_number = [];
// num + tipo + accao
number_objectos = 0;
// A funo cria_inimigo vai criar uma nave inimiga e pe-na na posio
cria_inimigo(30, 50);
x/y relativamente ao stage, passada por parmetro
cria_inimigo(100, 50);
cria_inimigo(170, 50);
cria_inimigo(240, 50);
}

Esta funo vai criar uma bala boa, nesta funo vai-se ver pela primeira vez que todos os
objectos devem ter uma instancia e essa instancia deve ser guardada num repositrio de
objectos. Neste caso o repositrio trata-se de um vector que por cada objecto deve guardar 3
valores, o primeiro valor deve corresponder a um nmero nico, para isso uso uma varivel
obj_num que por cada objecto criado incrementada um valor.
Deve existir uma varivel que guarde o nmero de objectos que j foram criados e esto
guardados no repositrio de objectos, trata-se da varivel number_objectos, essa varivel
que vai permitir evitar que se guardem objectos no vector objectos_number em posies onde
j existam outros objectos.

Define-se tambm que todas as balas boas devem ter a instancia igual a b1, b2, b5, ..., bn
Para isso, atribui-se a uma varivel auxiliar o nome que se pretende utilizar para identificar o
objecto bala que vai ser criado, chamei-lhe name.
Portanto se fizer name=b+obj_num; a varivel name poder ficar com o valor b7 por
exemplo.
Depois vou duplicar o movieclip que corresponde ao objecto bala e que lhe atribui uma
instancia chamada b, o mtodo que vou utilizar para esse efeito o mtodo
duplicateMovieClip(<nome da instancia a criar>, <Numero do objecto>).

Pgina 86
Action Script e-Learning

Ento, atravs do cdigo b.duplicateMovieClip(name,obj_num); vou obter um novo movieclip,


colonado a partir do movieclip b e dou-lhe o nome passado por parmetro na varivel
name, bem como um identificador nico passado pela varivel obj_num.

Depois de criar o objecto, necessito de criar uma varivel que possa manipular as
propriedades desse objecto, ento para criar essa varivel o flash fornece a funo eval(),
fazendo var newPiece = eval(name); corresponde a criar uma varivel chamada newPiece que
instancia com o objecto chamado b7 se for esse o valor da varivel name.
Depois de ter a varivel newPiece j posso invocar os mtodos do objecto e alterar as suas
propriedades.
As propriedades que me interessam alterar, so a posio da bala relativamente ao eixo dos
xx e yy e como eu quero criar a bala a partir da posio actual da nave boa, tenho de atribuir
as propriedades do objecto nave bala, para isso fao newPiece._x = nave._x e newPiece._y
= nave._y-10 .

Como vimos em lies anteriores, a propriedade _x e _y correspondem a propriedades de


movieclips que nos do a posio do movieclip em relao ao stage.
Depois de criar a bala e de a colocar na posio correcta, s falta guardar esse novo objecto
no repositrio de objectos, para isso uso o cdigo:
objectos_number[number_objectos*3]=obj_num; para guardar o numero do objecto.
objectos_number[number_objectos*3+1]=5; para guardar o tipo de objecto.
objectos_number[number_objectos*3+2]=1; para guardar qual deve ser a prxima aco que
o objecto deve realizar.
O valor 5 passado como segundo parmetro corresponde a dizer ao sistema quando estiver a
percorrer o repositrio de objectos, que o objecto uma bala, cada tipo de objecto tem o seu
nmero prprio.
O valor 1 passado como terceiro parmetro corresponde aco que o objecto deve realizar
quando o motor do sistema as pretender realizar, cada objecto pode ter a sua linguagem
prpria, neste caso o valor 1 corresponde a dizer que a bala deve deslocar-se na posio
vertical ascendente um determinado nmero de pixels.
// Bala = 5
function cria_bala () {
obj_num++;
number_objectos++;
var name = "b"+obj_num;
b.duplicateMovieClip(name, obj_num);
var newPiece = eval(name);
newPiece._x = nave._x;
newPiece._y = nave._y-10;
newPiece.PieceNumber = obj_num;
objectos_number[number_objectos*3] = obj_num;
objectos_number[number_objectos*3+1] = 5;
objectos_number[number_objectos*3+2] = 1;
}

Esta funo vai criar uma bala inimiga, todo o processo semelhante ao usado para criar a
bala boa, vejamos que as diferenas apenas se baseiam no nome das instancia para o objecto
bala inimiga que bala_inimiga e o nmero que identifica o tipo de objecto que 6.
// Bala inimiga = 6
function cria_bala_inimiga (inimigo) {
obj_num++;
number_objectos++;
var name = "bala_inimiga"+obj_num;
bala_inimiga.duplicateMovieClip(name, obj_num);
var newPiece = eval(name);
newPiece._x = inimigo._x;
newPiece._y = inimigo._y;
newPiece.PieceNumber = obj_num;

Pgina 87
Action Script e-Learning

objectos_number[number_objectos*3] = obj_num;
objectos_number[number_objectos*3+1] = 6;
objectos_number[number_objectos*3+2] = 1;
}

Esta funo vai criar uma nave inimiga.


// inimigo = 3
function cria_inimigo (x, y) {
n_obj_inimigos++;
obj_num++;
number_objectos++;
var name = "inimigo"+obj_num;
inimigo.duplicateMovieClip(name, obj_num);
var newPiece = eval(name);
newPiece._x = x;
newPiece._y = y;
newPiece.PieceNumber = obj_num;
objectos_number[number_objectos*3] = obj_num;
objectos_number[number_objectos*3+1] = 3;
objectos_number[number_objectos*3+2] = 1;
}

5- No mesmo frame as funes que correspondem aos mtodos de cada objecto


Esta funo vai executar os mtodos do objecto bala inimiga e devolver um valor que identifica
a aco a executar da prxima vez.
O valor j passado por parmetro corresponde ao identificador para o objecto, que permite
saber a sua posio automaticamente do repositrio de objectos.
Uma funo nova a funo check_perigo() que vai tentar saber se a bala acertou ou no na
nave boa.
function f_bala_inimiga (j) {
// 1 - Desce
// 2 - Desaparece
var name = "bala_inimiga"+objectos_number[j*3];
var newPiece = eval(name);
newPiece._y = newPiece._y+20;
if (newPiece._y>500) {
return -1;
}
if (newPiece._y>435) {
return check_perigo(newPiece._x);
}
return 0;
}

Esta funo vai executar os mtodos do objecto bala boa tal como a funo anterior para as
balas inimigas.
function f_bala (j) {
// 1 - Sobe
// 2 - Desaparece
var name = "b"+objectos_number[j*3];
var newPiece = eval(name);
newPiece._y = newPiece._y-20;
if (newPiece._y<20) {
return -1;
}
if (newPiece._y<100) {
return check_colisao(j, newPiece._x);
}
return 0;
}

Esta funo recebe dois identificadores para dois objectos e vai tentar calcular se esses
objectos colidiram ou no, se sim devolve um valor se no devolver 0. Esta funo apenas se
aplica bala boa em conjunto com as naves inimigas.
function check_colisao (j, x) {
for (l=1; l<=number_objectos && l<>j; l++) {
if (objectos_number[l*3+1]<=3) {

Pgina 88
Action Script e-Learning

var name = "inimigo"+objectos_number[l*3];


var newPiece = eval(name);
if (newPiece._x-x<15 && newPiece._x-x>-15) {
objectos_number[l*3+1] = objectos_number[l*3+1]-1;
objectos_number[l*3+2] = objectos_number[l*3+2]+10;
return -1;
}
}
}
return 0;
}

Esta funo vai tentar calcular se alguma bala inimiga acertou na nave boa, se sim executa o
mtodo play() do objecto instanciado pelo nome vidas que corresponde a um movieclip que
vai decrementando o nmero de vidas e quando chegar a zero o jogo acaba com uma
mensagem de perdeu. Simultaneamente para dar a sensao de exploso, tambm se
invoca o mtodo gotoAndPlay(6) da instancia nave, o que provoca um efeito de flash.
function check_perigo (x) {
if (nave._x-x<15 && nave._x-x>-15) {
// levou um tiro
nave.gotoAndPlay(6);
vidas.play();
return -1;
}
return 0;
}

Esta funo contm os mtodos de cada nave inimiga, desde levar um tiro a mover-se a criar
aleatoriamente uma bala atravs da funo random(), no necessrio explicar o resto da
funo, muito idntica s funes anteriores.
function f_inimigo (j) {
if (objectos_number[j*3+1]<=0) {
n_obj_inimigos--;
if (n_obj_inimigos<=0) {
gotoAndPlay (3);
}
return -1;
}
// Morre
var name = "inimigo"+objectos_number[j*3];
var newPiece = eval(name);
var numero = random(20);
if (numero == 3) {
cria_bala_inimiga(newPiece);
}
if (objectos_number[j*3+2]>10) {
// esta a mover e levou um tiro
newPiece.gotoAndPlay(6);
objectos_number[j*3+2] = objectos_number[j*3+2]-10;
}
// Desloca para a direita
if (objectos_number[j*3+2] == 1) {
if (newPiece._x+20<620) {
newPiece._x = newPiece._x+20;
} else {
objectos_number[j*3+2] = 2;
}
}
// Desloca para a esquerda
if (objectos_number[j*3+2] == 2) {
if (newPiece._x-20>20) {
newPiece._x = newPiece._x-20;
} else {
objectos_number[j*3+2] = 1;
}
}
return 0;
}

Esta funo executada quando o utilizador clica com o rato.


function Click () {

Pgina 89
Action Script e-Learning

cria_bala();
}

6- Funes auxiliares
Para simplificar o cdigo criaram-se algumas funes auxiliares que ajuda a compreender
todas as linhas de cdigo.
As aces so Aco() que invoca os mtodos do objecto passado por parmetro e devolve
a prxima aco desse objecto.
function Accao (j) {
if (objectos_number[j*3+1] == 5) {
return f_bala(j);
}
// Bala boa
if (objectos_number[j*3+1] == 6) {
return f_bala_inimiga(j);
}
// Bala inimiga
if (objectos_number[j*3+1]<=3) {
return f_inimigo(j);
}
return 0;
// inimigo
}

Delete() que remove um objecto atravs do mtodo removeMovieClip(), til para remover
naves inimigas que tenham sido atingidas e balas que j no interessem.
function Delete (x) {
// Remove bala
if (objectos_number[x*3+1] == 5) {
var name = "b"+objectos_number[x*3];
var newPiece = eval(name);
newPiece.removeMovieClip();
}
// Remove bala inimiga
if (objectos_number[x*3+1] == 6) {
var name = "bala_inimiga"+objectos_number[x*3];
var newPiece = eval(name);
newPiece.removeMovieClip();
}
// Remove inimigo
if (objectos_number[x*3+1] == 0) {
var name = "inimigo"+objectos_number[x*3];
var newPiece = eval(name);
newPiece.removeMovieClip();
}
remove(x);
}

Para alm de se removerem os objectos do stage, tambm necessrio remover o seu registo
do repositrio de objectos, o que faz a prxima funo.
function remove (Pos) {
posicao = Pos;
for (j=Pos; j<=number_objectos-1; j++) {
objectos_number[j*3] = objectos_number[j*3+3];
objectos_number[j*3+1] = objectos_number[j*3+4];
objectos_number[j*3+2] = objectos_number[j*3+5];
}
objectos_number[j*3] = "null";
objectos_number[j*3+1] = "null";
objectos_number[j*3+2] = "null";
number_objectos--;
}

Pgina 90
Action Script e-Learning

7- Motor do jogo
A funo mais importante esta, a funo que faz com que tudo funcione e, como se pode
constatar so apenas 4 linhas de cdigo.
Esta aco est constantemente em loop, quanto mais rpido melhor, ela invoca os mtodos
de todos os objectos e s depois que feito o refresh ao ecr passando para o frame
seguinte, desta forma, sempre que o ecr actualizado todos os objectos j foram
actualizados o que d a sensao de que todos se movem ao mesmo tempo.
function Accoes () {
for (j=1; j<=number_objectos; j++) {
if (Accao(j) == -1) {
Delete(j);
}
}
}

8- Variveis e funes que devem ser invocadas sempre que se entra no frame
Para que tudo funcione, necessrio que sempre que o flash entra neste frame execute a
funo Accoes() e actualize as variveis pos_x e mouseh e actualize a posio do objecto
nave em relao aos valores lidos pela varivel mouseh correspondente posio do rato em
relao ao eixo dos xx
pos_x = getProperty("/cenario", _x);
mouseh = getProperty("/cenario", _x);
setProperty ("/nave", _x, mouseh);
Accoes();

9- Resumo

No final desta aula o aluno j adquiriu todos os conhecimentos necessrios para desenvolver
boas solues em flash.
Atravs da manipulao de objectos em tempo real, torna-se possvel manipular o flash em
tempo de execuo, sem ser necessrio recompilar o projecto.

10- Exerccio

Pretende-se que o aluno com base no exemplo do jogo anterior, faa o seu prprio jogo em
que vrios objectos sejam criados por ActionScript atravs da clonagem de MovieClips e que
ambos se movam simultaneamente.

Pgina 91
Action Script e-Learning

Pgina 92
Action Script e-Learning

AULA XI ActionScript - PHP


1- Introduo

Actualmente o futuro dos Sites, passa pelo dinamismo e por manter a informao
constantemente actualizada, para isso existem vrias linguagens de programao que
permitem gerar pginas HTML a partir de contedos retirados de Bases de Dados. De entre
todas as linguagens, as mais conhecidas so o ASP da Microsoft, JSP, XML e PHP. A que vou
utilizar para explicar as potencialidade que o flash tem na construo de contedos dinmicos,
vai ser o PHP devido sua compatibilidade entre vrios sistemas operativos e por no ter
custos de licenas.
Como conhecido, a maioria dos sites que podem ser actualizados a partir de bases de
dados, tem de apresentar as pginas em HTML ficando algo limitadas em termos de
animao. Ora isso j no tem de ser verdade, o flash j dispe de todas as ferramentas
necessrias, para que os seus contedos possam tambm ser actualizados a partir de bases
de dados, que se tratem de contedos de texto ou imagem.

2- Interaco entre o Flash e o PHP

Como que se actualiza ento um pedao de texto no flash, aps ter sido compilado?
O processo simples e nico, o flash dispe de um mtodo que lhe permite enviar e receber
valores de variveis atravs de POST ou GET.
Quando se chama uma pgina HTML atravs do mtodo POST, todos os valores contidos nas
variveis do flash, so passadas para essa pgina, e todos os valores dessa pgina podem
ser passados para o flash. Desta forma, conseguem-se passar valores e receber valores,
tudo o que necessrio para tornar os contedos do flash, actualizveis aps a sua
compilao.

3- O que o PHP

Antes de avanar mais convm transmitir alguns conhecimentos bsicos de PHP para que
mais facilmente se possa tirar o total partido das suas potencialidades.
Um pgina de php equivalente uma pgina HTML apenas difere na extenso .php que
permite ao servidor web chamar o plugin correspondente que ir interpretar todos os
comandos de php que estejam embebidos no ficheiro.
Para que o servidor saiba distingir os comandos de php do resto da pgina, necessrio que
esses comandos estejam inseridos na pgina entre dois comandos especiais que do a
indicao de comeo de cdigo php e de fim de cdigo php. Esses comandos so
respectivamente <?php para dar indicao de inicio de cdigo php e ?> para dar a indicao
de fim de cdigo php.
Portanto, se tivermos uma pgina HTML e lhe pretendamos adicionar comandos de php, teria
de se alterar a extenso do ficheiro para .php e inserir o cdigo php da seguinte forma:
<html>
<body>
.....
<?php
// instrues de php
?>
</body>
</html>

Pgina 93
Action Script e-Learning

As instrues de php podem ser inseridas em qualquer regio da pgina, no tem de ficar
dentro das tags <body> </body>.

4- Comandos bsicos de PHP

De entre todos os comandos do php, aquele que mais interessa o que permite escrever
dados na pgina, esse comando echo qualquer coisa;
Todos os comandos de php devem terminar com ponto e virgula ; .
O comando php permite escrever na pgina a string que lhe dada por parmetro, ou os
valores contidos em variveis, por exemplo:
$a=texto;
echo $a;
Mais uma novidade, as variveis so definidas com o caracter $, sempre que se pretenda
utilizar uma varivel, deve comear por $.
Tal como vimos na definio de variveis para o ActionScript, tambm o php no necessita
que se definam os tipos de variveis, pode-se perfeitamente atribuir o que se quiser a uma
varivel, desde nmeros, caracteres a objectos sem que se tenha de definir o tipo de varivel.
Relativamente ao php pouco mais ser necessrio abordar para se comear a criar pginas
em flash que interajam com o php.

5- Exemplos

Se quisermos ter uma pgina que envie uma string para uma pgina de flash, bastaria fazer:
No flash ter uma varivel chamada nome.
Criar um boto no flash que executasse o script: loadVariables("nomes.php", "/", "POST");
Em que a pgina nomes.php teria apenas o seguinte cdigo:
&nome=<?php echo Meu nome; ?>
O &nome corresponde varivel que enviada da pgina de php para o flash e Meu nome
a string que passada como parmetro. Portanto, o flash vai receber uma varivel chamada
nome como o valor Meu nome, como o flash j dispe de uma varivel com esse nome,
ento essa varivel instanciada com a varivel passada por parmetro.
Por outro lado, se essa varivel j contivesse algum valor, aps a chamada da funo
loadVariables, o php receberia o valor da varivel que podia utilizar bastando por exemplo
fazer echo $nome;.
Como vimos muito fcil enviar valores do flash para o php e vice versa.
Na prxima aula ser dado um exemplo da passagem de parmetros entre o flash e o PHP

6- Resumo

Nesta aula deram-se conceitos bsicos sobre linguagens de programao dinmicas, no caso
concreto do PHP, deram-se ainda algumas luzes sobre a passagem de valores entre o flash e
o PHP

7- Exerccio

Prope-se que o aluno escreva em PHP uma funo que calcule o factorial de um nmero,
esse nmero dado como parmetro ao abrir a respectiva pgina, por exemplo:

http://localhost/factorial.php?numero=4

Pgina 94
Action Script e-Learning

CAPITULO XII ActionScript troca de informao com Bases


de Dados
1- Introduo

Vimos na aula anterior como transferir valores entre o flash e uma pgina de php e vice-versa,
mas essa troca de informao s realmente til de o objectivo for o de actualizar pginas de
flash com dados dinmicos, que estejam em constante actualizao. Estou a falar por exemplo
num site de comrcio electrnico em que o preo dos produtos pode mudar a qualquer
momento, a soluo para um site desse gnero, actualmente, passa por criar pginas em
tempo real, que podem ser por exemplo em php, caso se pretendesse que o site fosse em
flash, sempre que necessitasse de se alterar os preos dos produtos tinha de se gerar
novamente os swfs, mas com a possibilidade de troca de informaes entre o flash e uma
pgina de php isso j no verdade, pode-se ter um site de comrcio electrnico totalmente
desenvolvido em flash e sempre que o preo dos produtos se altera numa base de dados,
tambm eles se alteram na pgina.

2- Como utilizar o PHP para trocar informaes com Bases de Dados

A troca de informaes entre o php e o flash, como vimos anteriormente feita de uma forma
muito simples, basta escrever na pgina a varivel que vai ser actualizada e o respectivo
parmetro &variavel=parmetro. Todo o trabalho de obter os valores da base de dados
realizado pelo php, para exemplificar esse processo, vou recorrer a exemplos com bases de
dados MySql.
Considerando que j existe uma base de dados mysql e uma tabela de nomes com o campo
ID e o campo nome.

SITE
BD
nome PHP FLASH

Para se criar uma pgina php que leia valores de uma base de dados MYSQL, basta ter uma
pgina com o seguinte cdigo:

<?php
$hostname_t = "127.0.0.1:3306";
$database_t = "nome_da_base_de_dados";
$username_t = "root";
$password_t = "password";
$t = mysql_pconnect($hostname_t, $username_t, $password_t) or
die(mysql_error());
mysql_select_db($database_t, $t);
$query_Recordset1 = "SELECT * FROM nome";

Pgina 95
Action Script e-Learning

$Recordset1 = mysql_query($query_Recordset1, $t) or die(mysql_error());


$row_Recordset1 = mysql_fetch_assoc($Recordset1);
$totalRows_Recordset1 = mysql_num_rows($Recordset1);
?>
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<?php echo $row_Recordset1['Nome']; ?>
</body>
</html>
<?php mysql_free_result($Recordset1); ?>

Para se passar o valor obtido pela varivel Nome para o flash, como se viu em aulas
anteriores basta escrever echo &nome=$row_Recordset1['Nome'];

3- Cuidados a ter com o delay das comunicaes

No meio deste processo todo existe um factor que pode pr em causa o bom funcionamento
das comunicaes entre o flash e as bases de dados, trata-se nomeadamente do delay das
comunicaes.
Para evitar que o programa de flash mostre uma pgina antes de ter recebido os valores da
base de dados, tem de se garantir que essa pgina s aparece depois do flash receber todos
os valores da pgina de php. Para isso deve-se iniciar uma varivel com um valor 0 e que
ficar em loop at que o php lhe envie essa varivel com o valor 1 junto com os valores das
outras variveis, a melhor forma de se entender o processo atravs de exemplos

4- Exemplos

Vou exemplificar como receber um texto que esteja dum ficheiro de texto.

Primeiro vou criar um ficheiro de texto onde vou escrever o seguinte cdigo:

&texto=bla bla bla


&fim=1

o & representa uma varivel, a varivel texto ser usada pela aplicao de flash para
apresentar o texto passado por parmetro que neste caso bla bla bla e a varivel fim
devolve o valor 1 para que o flash saiba que j recebeu todos os valores que tinha a receber.

Pgina 96
Action Script e-Learning

Depois de escrever o cdigo indicado em cima, grava-se esse ficheiro com o nome texto.txt
para a mesma pasta onde ser guardado o ficheiro compilado .swf

Depois cria-se um ficheiro em flash, pode-se lhe dar o nome de browser e criam-se keyframes
nas frames 1,2,3,4 e 5

Na primeira frame inicia-se a varivel fim com o valor 0

Na segunda frame chama-se a funo interna do flash chamada:


loadVariables (<nome do ficheiro>,<destino>,<mtodo>)

Pgina 97
Action Script e-Learning

atravs desta funo que podem ser passados os valores das variveis do flash para uma
outra pgina ou dessa pgina para o flash.

Na frame 4 verifica-se se j se receberam os valores das variveis e enquanto no se


receberem fica em loop.

Por fim atribui-se nossa varivel o valor recebido por parmetro identificado pela varivel
texto.

Pelo exemplo anterior constata-se que muito fcil enviar valores entre o flash e uma pgina
de texto, se em vez da pgina de texto texto.txt fosse um pgina de php o processo era
exactamente o mesmo, apenas se teria de ter o cuidado de que o php para enviar valores para
o flash deveria fazer echo &nome_da_varivel=.$valor_pretendido;
Simultaneamente todas as variveis que estivessem na aplicao de flash ficariam disponveis
no flash, por exemplo, a varivel $fim no php j teria o valor 0 que foi anteriormente
instanciado no flash.

Pgina 98
Action Script e-Learning

5- Resumo

Nesta aula foram dados conceitos de PHP e como fcil enviar valores entre o flash e o PHP
e vice-versa.
A partir de agora s por a imaginao a funcionar em que tudo possvel, o aluno j possui
conhecimentos para construir um site todo em flash, mesmo que os textos sejam actualizados
dinmicamente.

6- Exerccio

Para testar os conhecimentos adquiridos, prope-se ao aluno que escreva uma soluo que
permita mostrar numa pgina de flash, os valores que constem numa base de dados, por
exemplo mysql.
Para facilitar prope-se que seja criada uma tabela em mysql de nomes com o campo ID do
tipo autonumber e o campo nome do tipo blob que quer dizer binrio.
O layout da aplicao de flash fica ao critrio do aluno.

Pgina 99
Action Script e-Learning

Pgina 100
Action Script e-Learning

AULA XIII Action Script Compatibilidade/Conflitos


1- Breve introduo

Nesta aula, a matria a apresentar ser um pouco mais ligeira e genrica, pois o aluno j
adquiriu todos os conhecimentos de base para desenvolver qualquer soluo em flash, sero
apresentados alguns pontos de carcter genrico e falar-se- sobre as novas plataformas de
comunicao via internet.

2- Compatibilidade entre diferentes sistemas operativos e browsers

Como se sabe, existem aplicaes que s so compatveis com Windows 98 outras com
Windows NT outras com sistemas Linux e outras com sistemas Macintosh. Relativamente ao
Flash ActionScript, a compatibilidade entre sistemas operativos est partida garantida, basta
compilar a aplicao para swf e abrir esse swf num Web browser. necessrio no entanto que
o browser tenha instalado o respectivo plugin para poder mostrar a aplicao de flash.

Para garantir que os browsers que no disponham desse plugin, o possam instalar
automaticamente, convm indicar na pgina o endereo onde a instalao do plugin est
disponvel.

Normalmente custuma-se usar dois processos em conjunto para garantir que a instalao
feita.

O primeiro que na pgina de html esteja um flash onde seja indicado o endereo
onde o plugin pode ser encontrado:

<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#v
ersion=6,0,29,0" width="100%" height="100%">
<param name="movie" value="site.swf">
<param name=quality value=high>
<embed src="site.swf" width="100%" height="100%" quality=high
pluginspage="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_
Version=ShockwaveFlash" type="application/x-shockwave-flash"></embed>
</object>

O segundo passo a dar fazer uma pgina de index.html que tenha apenas um flash
que chame outra pgina, e a mesma pgina de html tenha um script feito em
JavaScript que abra outra pgina ao fim de 5 segundos. Desta forma, se o browser
no tiver o plugin do flash instalado, no consegue abrir a pgina indicada pelo flash,
logo, ao fim de 5 segundos vai chamar outra pgina que ser a verso sem flash.

No entanto, apesar das tcnicas indicadas em cima, podem existir browsers que tenham
instalados plugins de verses anteriores quela que necessria para que a aplicao de
flash corra na perfeio. Nesses casos necessrio que no flash se detecte a verso do
plugin e ento decidir se ou no necessrio instalar uma verso mais recente.

O script que permite detectar a verso do flash :

Pgina 101
Action Script e-Learning

_root.versao = getVersion().split(",",1);
if(string(_root.versao) == "WIN 6" || string(_root.versao) == "MAC 6"){
getURL("site.html");
}
else{
getURL("noFlash.html");
}

3- Problemas com alguns browsers

Em relao utilizao do flash em browsers que possuam o plugin instalado, no so


conhecidos problemas, no entanto o mesmo j no acontece quando se pretende criar
interactividade entre o flash e bases de dados.
O processo de passagem de parmetro feito atravs da funo:
loadVariables (<nome do ficheiro>,<destino>,<mtodo>), por exemplo:
loadVariables (texto.php,/,post);

Este processo funciona para a maioria dos browsers, mas foi detectado que se o broser fr o
Nestacape, ento em vez de o mtodo ser post dever ser get o que obriga ou a ter duas
verses uma para o Netscape e outra para os outros browsers ou ento acrescentar algo ao
script que permita identificar qual o browser que est a suportar a aplicao de flash antes de
invocar a funo loadVariabels

4- Novos interfaces (Pocket PC)

Cada vez mais o acesso Internet deixa de ser obrigatrio ser feito atravs de um PC, j
existem inmeras solues que permitem navegar em pginas Web, desde os Pocket PCs,
Web TV.
Face a estes novos meios de comunicao, torna-se necessrio adaptar os contedos j
existentes na Internet para as plataformas tradicionais para estas novas plataformas. O
mesmo acontece relativamente ao Flash, dado j existirem plugins do flash para estas
plataformas.
Os cuidados a ter no so muitos, passam mais pelo aspecto da pgina e pelo peso da
mesma, ou seja, em vez de se ter uma cran 800x600 ou 1024x768 passa a ter um ecr
320x400 que mais alto que largo, isto implica que o design das aplicaes seja feito de
forma a ser compatvel com estes novos meios de comunicao.

Pgina 102
Action Script e-Learning

Outro aspecto a ter em considerao a questo da largura de banda que muito inferior em
sistemas wirless relativamente aos sistemas de cabo, logo convm no ter pginas muitos
pesadas, um pouco como regressar s origens da Internet em que tudo era mais lento do
que actualmente.

Alguns exemplos de plataformas:

5- Resumo

Cada vez mais a Internet vai-se tornar num mundo novo e necessrio estar atento a todos os
novos meios de comunicao, o flash pode dar uma ajuda em s necessrio ter
preocupaes ao nvel do design.

7- Exerccio a resolver

Prope-se ao aluno que escreva uma aplicao em flash que permita reconhecer
o browser e a verso do plugin instalado, caso no detecte o plugin do flash,
dever abrir automaticamente a pgina onde o plugin pode ser encontrado.

Pgina 103
Action Script e-Learning

Pgina 104
Action Script e-Learning

AULA XIV Fim do curso


1- Notas Finais

No fim do curso cabe ao orientador fazer a avaliao final e atribuir uma nota ao aluno, pode
ser sugerido a realizao de um exerccio final ou no, essa deciso ser tomada pela
entidade responsvel pela viabilizao do curso.

2- Disponibilizar em PDF o curso

Tambm deve ser disponibilizado o curso ao aluno para que mais tarde possa recorrer a esse
documento de forma a esclarecer alguma duvida pontual que venha a surgir.

3- Entrega de Certificado

Dever ser entregue tambm um certificado ao aluno, desta vez em mos, que permita ao
aluno, perante o mercado de trabalho, apresentar um documento que confirme os
conhecimentos por este adquiridos.

Pgina 105
Action Script e-Learning

e-Learning
Action Script

4. Concluso

Pgina 106
Action Script e-Learning

4.1. Breve nota do autor

Depois de um aluno percorrer todas as aulas dadas tal como foram descritas neste relatrio,
fica apto a desenvolver qualquer tipo de soluo em flash, independentemente da dificuldade
que possam ter, ficando apenas mais ou menos limitado dependendo das capacidades
criativas de cada um.
Existem mais alguns pormenores que no foram abordados neste relatrio, mas so aspectos
to especficos que considero que devam ser explorados pelos alunos que desejem
especializar-se em alguma matria relativa Internet, como por exemplo, manipulao de
base de dados em ambiente Web, neste caso haveria muito por falar, desde a utilizao de
bases de dados Mysql a bases de dados SqlServer e Oracle.

Pgina 107
Action Script e-Learning

e-Learning
Action Script

5. Glossrio
Pgina 108
Action Script e-Learning

5.1 Conjunto de termos mais usados

FLA Este o termo utilizado para descrever o


ficheiro que criado pelo utilizador durante o
desenvolvimento de uma aplicao em flash.

Flash Flash um plug-in e um ambiente de


desenvolvimento Web criado pela Macromedia.
O ficheiro desenvolvidos em Flash combinam
animao, som e interaco tirando vantajem
de um formato baseado em desenho vectorial
minimizando assim o tamanho dos ficheiros.

Html Hiper Text Markup Language. Formato no qual


se programam as pginas Web. capaz de dar
formato a texto, acrescentar vnculos a outras
pginas, chamar imagens, sons e outros
complementos. Editvel com um editor de
textos ou software especfico.

Jpg arquivo de imagem comprimido, pode ser


editado em qualquer editor de imagens.

Plugin Um plug considerado um third-party software


que permite ao browser mostrar um
determinado contedo multimdia.

.SWF ShockWave para Flash, representa o ficheiro


final compilado do flash que pode ser
visualizado que no browser que no flashplayer.

Action Representa uma instruo de ActionScript


exolada.

ActionScript Representa a linguagem de programao usada


pelo flash, trata-se de um desdobramento da
linguagem j conhecida javascript.

Argumento Iformo passada por parmetro necessria


para que uma determinada aco possa realizar
a tarefa que lhe foi destinada.

Behavior Representa um comportamento de algo.

Texto dinmico Represeenta o texto que pode ser alterado pelo


utilizador ou pelo sistema operativo sem ser
necessrio recompilar a aplicao de flash

Pgina 109
Action Script e-Learning

Evento Representa um qualquer acontecimento

Inteiro Representa um conjunmto de nmeros naturais


de 0 a infinito

JavaScript Linguagem baseada em script criada pela


Netscape e pela Sun MicroSystem

Sintaxe Estrutura de uma linguagem que tambm


aplicada linguagem humana.

.PHP arquivos de pginas Web dinmicas. , por sua


vez, uma linguagem de programao que
permite transladar para a Web contedo
armazenado em bases de dados.

MYSQL Servidor de base de dados nativo para linux.

.txt arquivo de texto que se abre com qualquer


editor de texto.

Pgina 110
Action Script e-Learning

e-Learning
Action Script

6. Referncias
Pgina 111
Action Script e-Learning

6.1. Referncias mais Relevantes

[1] Macromedia
http://www.macromedia.com/
[2] PHP
www.php.net

Pgina 112