Beruflich Dokumente
Kultur Dokumente
Junho de 2003
e-Learning
Action Script
Adrito Fernandes
Pgina I
Action Script e-Learning
Pgina II
Action Script e-Learning
Autor do Projecto:
Orientador do Projecto:
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. 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
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
Pgina VIII
Action Script e-Learning
e-Learning
Action Script
2. Introduo
Pgina IX
Action Script e-Learning
2.1. Resumo
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.
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.
Pgina XI
Action Script e-Learning
Pgina XII
Action Script e-Learning
e-Learning
Action Script
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.
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
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
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
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
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
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
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
1- Introduo 47
2- Criar um boto 47
3- Interactividade com MoviClips 47
4- Exemplos 48
5- Resumo 50
6- Exerccio 50
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
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
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
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
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
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
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
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
Pgina XXI
Action Script e-Learning
Pgina XXII
Action Script e-Learning
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.
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.
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
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
Pgina 25
Action Script e-Learning
Pgina 26
Action Script e-Learning
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
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.
Pgina 27
Action Script e-Learning
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
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
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.
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.
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 {}
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:
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
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
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
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
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
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 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
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
8- Exerccio
Pgina 39
Action Script e-Learning
Pgina 40
Action Script e-Learning
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
Pgina 41
Action Script e-Learning
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 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()
Pgina 43
Action Script e-Learning
Pgina 44
Action Script e-Learning
6- Resumo
Nesta aula foram dados conceitos sobre as aces stop(), play(), gotoAndStop(),
gotoAndPlay(), frames, e labels
7- Exerccio
Pgina 45
Action Script e-Learning
Pgina 46
Action Script e-Learning
2- Criar um boto
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);
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
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.
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.
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.
Pgina 53
Action Script e-Learning
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
Pgina 56
Action Script e-Learning
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
10- A barra que permite janela deslocar-se deve ter os scripts startDrag(); e
stopDrag();
Pgina 58
Action Script e-Learning
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
1- Introduo
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
Pgina 62
Action Script e-Learning
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.
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.
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
Pgina 67
Action Script e-Learning
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
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
If ( condio ) {
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
do{
Aces
a=a+1;
} While (a<10);
contador = 0
while ( contador < 10 ) {
Aces
contador++;
}
A alternativa seria:
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;
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
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.
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
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
Pgina 75
Action Script e-Learning
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.
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.
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.
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
E no frame 3, o script:
gotoAndPlay(2);
Pgina 79
Action Script e-Learning
Pgina 80
Action Script e-Learning
/:time0 = getTimer();
/:loaded0 = _root.getBytesLoaded();
/:total0 = _root.getBytesTotal();
Pgina 81
Action Script e-Learning
/: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
/: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
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.
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
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 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
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 .
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 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
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;
}
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
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.
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>.
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
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.
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
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'];
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:
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
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.
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
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.
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.
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");
}
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
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.
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
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.
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
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
Pgina 109
Action Script e-Learning
Pgina 110
Action Script e-Learning
e-Learning
Action Script
6. Referncias
Pgina 111
Action Script e-Learning
[1] Macromedia
http://www.macromedia.com/
[2] PHP
www.php.net
Pgina 112