Jogo Interactivo de Matemática (Cálculo de operações)

Transcrição

Jogo Interactivo de Matemática (Cálculo de operações)
Ana Alexandra Nunes da Silva
Francisco Josué Mendes Gonçalves
Jogo Interactivo de Matemática
(Cálculo de operações)
Engenharia Informática
Setembro 2008
-
Jogo Interactivo de Matemática
(Cálculo de operações)
Relatório da Disciplina de Projecto
Engenharia Informática
Escola Superior de Tecnologia e de Gestão
Ana Silva, Francisco Gonçalves
Setembro 2008
-
A Escola Superior de Tecnologia e Gestão não se responsabiliza pelas opiniões expressas
neste relatório.
- iii -
Certifico que li este relatório e que, na minha opinião, é adequado no seu
conteúdo e forma como demonstrador do trabalho desenvolvido no
âmbito da disciplina de Projecto.
___________________________________________
Prof. Luísa Augusta Vara Miranda
Orientadora
Certifico que li este relatório e que, na minha opinião, é adequado no seu
conteúdo e forma como demonstrador do trabalho desenvolvido no
âmbito da disciplina de Projecto.
___________________________________________
Prof. Maria João Tinoco Varanda Pereira Co-Orientadora
Certifico que li este relatório e que, na minha opinião, é adequado no seu
conteúdo e forma como demonstrador do trabalho desenvolvido no
âmbito da disciplina de Projecto.
___________________________________________
<Nome do Arguente>
Aceite para avaliação da disciplina de Projecto
- iv -
Arguente
Agradecimentos
Da mesma forma, a realização deste trabalho não seria possível sem a colaboração de algumas
pessoas, às quais nos cabe agradecer:
 À Prof. Luísa Miranda pelos seus ensinamentos e colaboração, bem como pela
paciência que teve connosco.
 À Prof. Maria João Varanda pelos seus ensinamentos e colaboração.
 Aos Pais e familiares pela compreensão e dedicação, apesar das muitas horas passadas
à frente do computador.
 Às muitas pessoas que fazem manuais e os distribuem livremente, dando assim
possibilidade de outros poderem aprender e evoluir.
-v-
Conteúdo
1
Introdução ..................................................................................................................... 1
2
Objectivos ...................................................................................................................... 2
3
Conteúdos Utilizados..................................................................................................... 3
4
3.1
Programa do 3.º Ano do 1º Ciclo do Ensino Básico................................................... 3
3.2
Programa do 4.º Ano do 1º Ciclo do Ensino Básico................................................... 4
Software Utilizado ......................................................................................................... 5
4.1 Macromedia Flash Profissional 8 .............................................................................. 5
4.1.1 Ferramentas de desenho ..................................................................................... 6
4.1.2 TimeLine – Linha Temporal............................................................................... 7
4.1.3 Símbolos ............................................................................................................ 8
4.1.4 Acções ............................................................................................................... 8
5
4.2
Piano ........................................................................................................................ 9
4.3
Audacity ..................................................................................................................10
4.4
Adobe Photoshop CS2 .............................................................................................10
Estrutura e Funcionamento do Site .............................................................................12
5.1 Página Principal .......................................................................................................12
5.1.1 Página Principal em HTML ...............................................................................12
5.1.2 Página Principal em Flash .................................................................................12
5.1.2.1 Como foi implementada .................................................................................13
5.2 Jogo das Operações .................................................................................................14
5.2.1 Descrição do Jogo .............................................................................................14
5.2.2 Competências ....................................................................................................16
5.2.3 Como foi implementado ....................................................................................16
5.3 Jogo do Dinheiro .....................................................................................................17
5.3.1 Descrição do Jogo .............................................................................................17
5.3.2 Competências ....................................................................................................18
5.3.3 Como foi implementado ....................................................................................18
5.4 Jogo dos Múltiplos...................................................................................................19
5.4.1 Descrição do Jogo .............................................................................................19
5.4.2 Competências ....................................................................................................21
- vi -
5.4.3
Como foi implementado ....................................................................................21
5.5 Jogo das Fracções ....................................................................................................22
5.5.1 Descrição do Jogo .............................................................................................22
5.5.2 Competências ....................................................................................................23
5.5.3 Como foi implementado ....................................................................................23
5.6 Jogo da Ordenação...................................................................................................24
5.6.1 Descrição do Jogo .............................................................................................24
5.6.2 Competências ....................................................................................................26
5.6.3 Como foi implementado ....................................................................................27
5.7 Jogo das Horas.........................................................................................................27
5.7.1 Descrição do Jogo .............................................................................................27
5.7.2 Competências ....................................................................................................29
5.7.3 Como foi implementado ....................................................................................29
6
Teste ao Software .........................................................................................................31
7
Conclusões ....................................................................................................................32
Bibliografia .........................................................................................................................33
A Código ActionScript .....................................................................................................34
A.1 Jogo das Operações .................................................................................................34
A.1.1 Página Inicial ....................................................................................................34
A.1.1.1 Botão “Menu” ................................................................................................34
A.1.1.2 Botão “Nível 1” .............................................................................................34
A.1.1.3 Botão “Nível 2” .............................................................................................34
A.1.2 Nível 1 ..............................................................................................................35
A.1.2.1 Camada de acções ..........................................................................................35
A.1.2.2 Botão “Operação seguinte” ............................................................................40
A.1.2.3 Botão “Início” ................................................................................................40
A.1.3 Nível 2 ..............................................................................................................41
A.1.3.1 Camada de acções ..........................................................................................41
A.1.3.2 Botão “Limpar”..............................................................................................44
A.1.3.3 Botão “Operação seguinte” ............................................................................45
A.1.3.4 Botão “Início” ................................................................................................45
A.1.3.5 Clipe de filme “pisca1” ..................................................................................46
A.1.3.6 Clipe de filme “pisca2” ..................................................................................46
A.1.3.7 Botão “Verifica se acertaste”..........................................................................47
A.2 Jogo do Dinheiro .....................................................................................................49
A.2.1 Página Inicial ....................................................................................................49
A.2.1.1 Botão “Iniciar” ...............................................................................................49
A.2.1.2 Botão “Menu” ................................................................................................49
A.2.2 Página dos Problemas ........................................................................................50
A.2.2.1 Camada de acções ..........................................................................................50
A.2.2.2 Botão “Início” ................................................................................................54
A.2.2.3 Botão “Corrigir” ............................................................................................54
- vii -
A.2.2.4
A.2.2.5
A.2.2.6
A.2.2.7
A.2.2.8
A.2.2.9
A.2.2.10
A.2.2.11
A.2.2.12
A.2.2.13
A.2.2.14
A.2.2.15
A.2.2.16
A.2.2.17
A.2.2.18
A.2.2.19
A.2.2.20
A.2.2.21
Botão “Verifica se acertaste”..........................................................................55
Botão “Problema seguinte” ............................................................................55
Botão “Problema anterior” .............................................................................56
Clipe de filme “Nota de 500 €” ......................................................................56
Clipe de filme “Nota de 200 €” ......................................................................57
Clipe de filme “Nota de 100 €” ......................................................................57
Clipe de filme “Nota de 50 €” .....................................................................58
Clipe de filme “Nota de 20 €” .....................................................................58
Clipe de filme “Nota de 10 €” .....................................................................59
Clipe de filme “Nota de 5 €” .......................................................................59
Clipe de filme “Moeda de 2 €” ....................................................................60
Clipe de filme “Moeda de 1 €” ....................................................................60
Clipe de filme “Moeda de 50 cent.” ............................................................61
Clipe de filme “Moeda de 20 cent.” ............................................................61
Clipe de filme “Moeda de 10 cent.” ............................................................62
Clipe de filme “Moeda de 5 cent.” ..............................................................62
Clipe de filme “Moeda de 2 cent.” ..............................................................63
Clipe de filme “Moeda de 1 cent.” ..............................................................63
A.3 Jogo dos Múltiplos...................................................................................................64
A.3.1 Página Inicial ....................................................................................................64
A.3.1.1 Botão “Iniciar” ...............................................................................................64
A.3.1.2 Botão “Menu” ................................................................................................64
A.3.2 Página das perguntas .........................................................................................64
A.3.2.1 Camada de acções ..........................................................................................64
A.3.2.2 Botão “Início” ................................................................................................67
A.3.2.3 Botão “Verdadeiro”........................................................................................67
A.3.2.4 Botão “Falso” ................................................................................................68
A.3.2.5 Botão “Seguinte” ...........................................................................................69
A.4 Jogo das Fracções ....................................................................................................70
A.4.1 Página Inicial ....................................................................................................70
A.4.1.1 Botão “Menu” ................................................................................................70
A.4.1.2 Botão “Fácil” .................................................................................................70
A.4.1.3 Botão “Médio” ...............................................................................................70
A.4.1.4 Botão “Difícil” ...............................................................................................70
A.4.2 Fácil ..................................................................................................................71
A.4.2.1 Camada de acções ..........................................................................................71
A.4.2.2 Botão “Início” ................................................................................................73
A.4.2.3 Clipe de filme “pisca1” ..................................................................................73
A.4.2.4 Clipe de filme “pisca2” ..................................................................................73
A.4.2.5 Clipe de filme “Corrigir” ................................................................................74
A.4.2.6 Botão “1,2,3,4,5,6,7,8,9,0” .............................................................................74
A.4.2.7 Clipe de filme “” .........................................................................................75
A.4.2.8 Clipe de filme “” ........................................................................................76
A.4.3 Médio................................................................................................................77
A.4.3.1 Camada de acções ..........................................................................................77
A.4.3.2 Botão “Início” ................................................................................................81
A.4.3.3 Clipe de filme “pisca1” ..................................................................................81
A.4.3.4 Clipe de filme “pisca2” ..................................................................................81
A.4.3.5 Clipe de filme “Corrigir” ................................................................................82
- viii -
A.4.3.6 Botão “1,2,3,4,5,6,7,8,9,0” .............................................................................82
A.4.3.7 Clipe de filme “” .........................................................................................82
A.4.3.8 Clipe de filme “” ........................................................................................84
A.4.4 Difícil................................................................................................................86
A.4.4.1 Camada de acções ..........................................................................................86
A.4.4.2 Botão “Início” ................................................................................................89
A.4.4.3 Clipe de filme “pisca1” ..................................................................................89
A.4.4.4 Clipe de filme “pisca2” ..................................................................................90
A.4.4.5 Clipe de filme “Corrigir” ................................................................................90
A.4.4.6 Botão “1,2,3,4,5,6,7,8,9,0” .............................................................................90
A.4.4.7 Clipe de filme “” .........................................................................................91
A.4.4.8 Clipe de filme “” ........................................................................................92
A.5 Jogo da Ordenação...................................................................................................94
A.5.1 Página Inicial ....................................................................................................94
A.5.1.1 Botão “Menu” ................................................................................................94
A.5.1.2 Botão da parte 1 “Nível 1” .............................................................................94
A.5.1.3 Botão da parte 1 “Nível 2” .............................................................................94
A.5.1.4 Botão da parte 2 “Nível 1” .............................................................................94
A.5.1.5 Botão da parte 2 “Nível 2” .............................................................................95
A.5.2 Parte 1 Nível 1 ..................................................................................................95
A.5.2.1 Camada de acções ..........................................................................................95
A.5.2.2 Botão “Início” .............................................................................................. 123
A.5.2.3 Botão “Seguinte” ......................................................................................... 123
A.5.3 Parte 1 Nível 2 ................................................................................................ 123
A.5.4 Parte 2 Nível 1 ................................................................................................ 124
A.5.4.1 Camada de acções ........................................................................................ 124
A.5.4.2 Botão “Início” .............................................................................................. 159
A.5.4.3 Botão “Seguinte” ......................................................................................... 159
A.5.5 Parte 2 Nível 2 ................................................................................................ 160
A.6 Jogo das Horas....................................................................................................... 160
A.6.1 Página Inicial .................................................................................................. 160
A.6.1.1 Botão “Menu” .............................................................................................. 160
A.6.1.2 Botão “Nível 1” ........................................................................................... 160
A.6.1.3 Botão “Nível 2” ........................................................................................... 160
A.6.2 Nível 1 ............................................................................................................ 161
A.6.2.1 Camada de acções ........................................................................................ 161
A.6.2.2 Clipe de filme “relógio digital 1” ................................................................. 168
A.6.2.3 Clipe de filme “relógio digital 2” ................................................................. 169
A.6.2.4 Clipe de filme “relógio digital 3” ................................................................. 170
A.6.2.5 Clipe de filme “relógio digital 4” ................................................................. 171
A.6.2.6 Botão “Início” .............................................................................................. 172
A.6.2.7 Botão “Seguinte” ......................................................................................... 172
A.6.3 Nível 2 ............................................................................................................ 172
A.6.3.1 Camada de acções ........................................................................................ 172
A.6.3.2 Caixa de selecção (comboBox) .................................................................... 179
A.6.3.3 Botão “Verifica” .......................................................................................... 179
A.6.3.4 Botão “Início” .............................................................................................. 180
A.6.3.5 Botão “Seguinte” ......................................................................................... 180
- ix -
A.7 Página Principal ..................................................................................................... 181
A.7.1 Camada de acções ........................................................................................... 181
A.7.2 Botão “1º e 2º ano”.......................................................................................... 181
A.7.3 Botão “3º e 4º ano”.......................................................................................... 182
A.7.4 Botão “Operações” .......................................................................................... 182
A.7.5 Botão “Dinheiro” ............................................................................................ 183
A.7.6 Botão “Múltiplos” ........................................................................................... 183
A.7.7 Botão “Fracções” ............................................................................................ 184
A.7.8 Botão “Ordenação” ......................................................................................... 184
A.7.9 Botão “Horas” ................................................................................................. 185
A.7.10 Clipe de filme “Com/Sem Som” ................................................................... 185
-x-
Lista de Figuras
Figura .1 - Macromedia Flash Profissional 8 ......................................................................... 6
Figura .2 - Barra de Ferramentas do Macromedia Flash. ....................................................... 7
Figura .3 - Linha do tempo. .................................................................................................. 7
Figura .4 - Janela de converter símbolos. .............................................................................. 8
Figura .5 - Janela do Piano.................................................................................................... 9
Figura .6 - Janela do Audacity. ............................................................................................10
Figura .7 - Janela do Adobe Photoshop CS2. .......................................................................11
Figura .8 - Fundo do site. .....................................................................................................12
Figura .9 - Ecrã da página inicial do jogo em Flash. .............................................................13
Figura .10 - Ecrã inicial do jogo das Operações. ..................................................................14
Figura .11 - Ecrã do início do jogo com uma resposta certa. ................................................15
Figura .12 - Ecrã do fim do jogo no “Nível 1”. ....................................................................15
Figura .13 - Ecrã do jogo no “Nível 2” com exemplo de uma resposta certa.........................16
Figura .14 - Ecrã inicial do jogo do Dinheiro. ......................................................................17
Figura .15 - Ecrã do jogo á medida que vai sendo jogado. ....................................................18
Figura .16 - Ecrã inicial do jogo dos Múltiplos. ...................................................................20
Figura .17 - Ecrã do jogo á medida que vai sendo jogado. ....................................................20
Figura .18 - Ecrã final do jogo dos Múltiplos. ......................................................................21
Figura .19 - Ecrã inicial do jogo das Fracções. .....................................................................22
Figura .20 - Ecrã do jogo no nível “Fácil” com animação do jogo em si. ..............................23
Figura .21 - Ecrã inicial do jogo da Ordenação. ...................................................................25
Figura .22 - Ecrã do jogo á medida que o utilizador vai jogando. .........................................25
Figura .23 - Ecrã final do jogo no “Nível 1” da “Parte 1”. ....................................................26
Figura .24 - Ecrã do jogo na “Parte 2” no “Nível 2” mostrando o processo do jogo. .............26
Figura .25 - Ecrã inicial do jogo das Horas. .........................................................................28
Figura .26 - Ecrã do jogo no “Nível 1” mostrando como acertou..........................................28
Figura .27 - Ecrã do jogo no “Nível 2”.................................................................................29
- xi -
CAPÍTULO 1. Introdução
Capítulo 1
1 Introdução
O projecto teve como objectivo construir um jogo/site interactivo, inteligente e evolutivo
dedicado ao ensino e aprendizagem da matemática para alunos do 3º e 4º ano do 1º Ciclo do
Ensino Básico, com especial destaque para conteúdos relacionados com números e operações.
A aplicação deve evoluir dinamicamente e com complexidade crescente, face aos
conhecimentos demonstrados pelos utilizadores e disponibilizar formas de avaliação de
conhecimentos.
No desenvolvimento de software educativo a interface gráfica, a forma como os conteúdos
são expostos e o grau de interactividade são factores críticos de sucesso para o
desenvolvimento cognitivo de um público-alvo. A aplicação será então orientada para
utilizadores com características próprias, crianças, muito dependentes do ambiente e dos
recursos que têm à sua disposição e muito exigentes em termos de experimentação e
manipulação dos meios que utilizam. Assim sendo, este tipo de projecto não constitui apenas
um desafio tecnológico, mas também um projecto com preocupações pedagógicas.
As grandes finalidades do ensino da Matemática no Ensino Básico que devem estar sempre
presentes ao longo dos quatros anos do 1º ciclo são desenvolver a capacidade de raciocínio,
de comunicação e de resolução de problemas, neste projecto teve-se estes critérios em conta
durante a sua implementação.
A resolução de problemas coloca os alunos numa atitude activa de aprendizagem quer dandolhes a possibilidade de descoberta de novos conceitos, quer à construção de possíveis
respostas aos problemas levantados.
As crianças interessam-se por jogos com problemas práticos que se relacionam com a sua
vida na escola, com o seu universo familiar ou com a comunidade. Estes problemas ajudam as
crianças a raciocinar e a tornar mais fácil a interacção com os mesmos.
Em relação ao desenvolvimento do projecto, começou-se por recolher bibliografia sobre as
características específicas de software educativo, realizar a modelação do sistema, aprender a
trabalhar com o software Macromedia Flash fazendo vários exercícios para a criação,
manipulação e movimentação de objectos de forma a se estar preparado para poder
implementar os jogos com qualidade. Por último, realizaram-se testes para validar o sistema
relativamente à forma como funciona, aos desenhos, cores e sons usados.
1
CAPÍTULO 2. Objectivos
Capítulo 2
2 Objectivos
O objectivo deste projecto é construir um jogo/site interactivo, inteligente e evolutivo
desenvolvido em linguagem Flash.
Os jogos devem ser dedicados ao ensino de aprendizagem da matemática para os alunos do 3º
e 4º ano do 1º Ciclo do Ensino Básico mas de forma engraçada e mais compreensiva para as
crianças.
A aplicação deve evoluir dinamicamente e com complexidade crescente, face aos
conhecimentos demonstrados pelos utilizadores e disponibilizar formas de avaliação de
conhecimentos.
O jogo deverá focalizar-se em situações problemáticas que envolvam os alunos em estratégias
de exploração e descoberta.
Só há aprendizagem quando as crianças reagem dinamicamente a uma questão que levante o
seu interesse e responda à sua curiosidade, teve-se isso em conta, tendo como objectivo no
desenvolvimento dos jogos, manifestar a curiosidade para resolução de problemas simples e
práticos do dia-a-dia.
Com os jogos tenta-se favorecer as crianças no desenvolvimento da memória, na agilidade de
raciocínio, no gosto pelo desafio e na capacidade de aceitar e seguir uma regra.
Como o cálculo mental tem muita importância no 1º Ciclo teve-se esse objectivo em conta ao
longo do projecto levando as crianças a utilizá-lo na maioria dos jogos.
Como objectivos pedagógicos para o jogo/site interactivo também se teve em conta:
 Estudar as relações entre números e operadores matemáticos (somas, diferenças,
subtracções e produtos).
 Aprofundar os conhecimentos e capacidade de lidar com problemas do dia-a-dia que
englobam dinheiro, compras e vendas.
 Desenvolver a capacidade de ordenar números por ordem crescente e decrescente.
 Reconhecer a equivalência entre partes de uma unidade de um objecto e o quociente
de dois números (fracções).
 Identificar e consultar as horas.
2
CAPÍTULO 3. Conteúdos Utilizados
Capítulo 3
3 Conteúdos Utilizados
Para a realização deste projecto teve-se em consideração o programa e as competências do 1º
Ciclo do Ensino Básico relativamente ao 3º e 4º ano da área curricular de Matemática, para os
números e operações.
De seguida serão apresentados os programas e competências específicas.
3.1 Programa do 3.º Ano do 1º Ciclo do Ensino Básico




















Ler e escrever os números ordinais até 30.º.
Ordenar números inteiros em sequências crescentes e decrescentes.
Ler e escrever números.
Utilizar a numeração romana para representar números (até MM).
Explorar situações que levem à descoberta de números decimais.
Ler e escrever números decimais (com um máximo de 2 algarismos à direita da
vírgula).
Numa recta graduada, dado o número correspondente a um ponto, atribuir o número
correspondente a outros pontos.
Estabelecer relações de ordem entre números e utilizar a simbologia >, <, =.
Relacionar dezena, centena, milhar, décima e centésima com a unidade e entre si.
Explorar e usar regularidades e padrões na adição, subtracção e multiplicação.
Decompor os números em somas, diferenças e produtos.
Fazer a composição de dois operadores numéricos.
Estimar ordens de grandeza de um resultado antes de efectuar o cálculo.
Procurar estratégias diferentes para efectuar um cálculo (utilizando, espontaneamente,
as propriedades das operações).
Explicitar oralmente e representar por escrito os passos seguidos ao efectuar cálculos.
Construir e memorizar as tabuadas da multiplicação por 6, 7, 8 e 9.
Reconhecer o múltiplo de um número natural.
Utilizar subtracções sucessivas para a repartição de quantidades.
Descobrir a existência de resto em certas repartições.
Explorar situações que envolvam a divisão (subtracções sucessivas, adições e
produtos).
3
CAPÍTULO 3. Conteúdos Utilizados
 Utilizar o sinal “:” na representação de quocientes (representação horizontal a: b).
 Utilizar a notação 1/3 ×, 1/5 × e 1/10 × para representar o inverso de 3 ×, 5 ×, 10 ×.
 Reconhecer a equivalência entre:
: 2 e 1/2 ×;
: 3 e 1/3 ×;
: 4 e 1/4 ×;
: 5 e 1/5 ×.
 Explorar situações que levem a reconhecer que a operação inversa da multiplicação é a
divisão.
 Reconhecer a equivalência entre 1/10 ×, 0,1 × e : 10.
 Descobrir a regra para calcular o produto de um número por 0,1.
 Descobrir a regra para calcular o produto de um número por 100 e por 1000.
3.2 Programa do 4.º Ano do 1º Ciclo do Ensino Básico


















Ler e escrever os números ordinais até ao 50.º.
Ler e escrever os números ordinais 100.º e 1000.º.
Identificar ordens e classes da milésima ao milhão.
Ler e escrever números.
Ordenar números em sequências crescentes e decrescentes.
Estabelecer relações de ordem entre números e utilizar a simbologia <, >, =.
Representar números decimais numa recta graduada (até à décima).
Numa recta graduada, dado o número correspondente a um ponto, atribuir o número
correspondente a outro ponto.
Fazer a composição de operadores numéricos.
Utilizar tabelas de duas entradas da multiplicação para a divisão.
Estimar a ordem de grandeza de um resultado antes de efectuar o cálculo.
Procurar estratégias diferentes para efectuar um cálculo.
Explicitar oralmente e representar por escrito os passos seguidos ao efectuar cálculos.
Reconhecer múltiplos de um número natural.
Reconhecer a equivalência entre:
× 0,01 e : 100
× 0,001 e : 1000
Descobrir a regra para calcular o quociente de um número por 100 e 1000.
Descobrir a regra para calcular o produto de um número por 0,01 e 0,001.
Reconhecer a equivalência entre:
: 0,1 e ×10
: 0,01 e ×100
: 0,001 e ×1000
4
CAPÍTULO 4. Software Utilizado
Capítulo 4
4 Software Utilizado
Neste capítulo são abordadas as tecnologias que foram necessárias ao desenvolvimento do
projecto.
4.1 Macromedia Flash Profissional 8
O Macromedia Flash desenvolvido em 1996 pelo Shockware Flash é uma ferramenta de
edição de imagens vectoriais com animação, som e interactividade.
Depois de trabalhado o Flash expandiu para além de simples animações, também para uma
ferramenta de desenvolvimento de aplicações completas. Isso graças aos avanços na
linguagem ActionScript, que é a linguagem de programação utilizada em aplicações de
arquivos flashes que são gerados em extensão “.swf” (de Shockware Flash File).
É a tecnologia mais utilizada no Web que permite a criação de animações vectoriais e o uso
de gráficos vectoriais permite demorar pouco tempo para serem carregados.
Os gráficos vectoriais, nos quais uma imagem é representada a partir de linhas ou vectores
que possuem determinadas propriedades. A qualidade deste tipo de gráficos não depende do
zoom ou do tipo de resolução com o qual se olha para o gráfico.
Uma vantagem do desenho vectorial é que o tamanho do ficheiro não depende do tamanho
dos objectos e uma desvantagem é que não permite representar imagens fotográficas.
O Macromedia Flash passou a designar-se Adobe Flash a partir de 2005 e suporta vídeo, som,
imagem e animação vectorial.
O editor é composto por:
 Timeline – Linha temporal onde decorre a acção, é dividida em quadros (frames) e em
camadas (layers).
 Tools – Ferramentas de desenho, visualização, cor e opções.
 Bibliotecas – Objectos do flash (Simbols, clips).
 Properties – Painel de alteração das propriedades.
 Color Mixer – Alteração da cor.
 Actions (ActionScript), components (Componentes), Behavior (ActionScript).
5
CAPÍTULO 4. Software Utilizado
Figura .1 - Macromedia Flash Profissional 8
No Flash é possível dividir os filmes em cenas, em que cada cena pode conter os seus
próprios objectos ou personagens, e automaticamente são colocados em ordem, podendo
também ser chamadas através de botões ou através de acções colocadas directamente nas
frames (quadros).
O Flash também possui vários tipos de animação, sendo elas: quadro a quadro, interpolação
de movimento e de forma. A animação quadro a quadro consiste em alterar os objectos
(actores) no palco usando a linha temporal. A animação interpolação de movimento permite
criar animações através da interpolação dos quadros chave (KeyFrames) ao contrário da
animação quadro a quadro não é necessário desenhar todas as frames da animação. Na
animação de forma as camadas (Layers) tem um papel fundamental para organizar os objectos
e para a sobreposição e usa-se um percurso desenhado na camada guia para fazer deslocar um
determinado objecto.
4.1.1 Ferramentas de desenho
A área de ferramentas é composta por botões de desenho e manipulação dos desenhos feitos
na área de desenho do Flash. Quando se posiciona a ponta do rato sobre uma ferramenta ela
mostra o nome da ferramenta e uma letra entre parênteses, ao pressionar a tecla corresponde à
letra ela será marcada como activa automaticamente.
A área de visualização permite modificar a forma de visualizar a área de desenho do flash
permitindo mover o desenho ou ampliá-lo com a lupa.
Na área de cores podemos definir cores de linhas e cores de preenchimento dos desenhos
feitos no Flash.
Estas ferramentas de desenho foram utilizadas para desenhar personagens, objectos, criação
de botões entre outras coisas.
De seguida apresentamos cada ferramenta com a explicação da sua utilidade.
6
CAPÍTULO 4. Software Utilizado
Figura .2 - Barra de Ferramentas do Macromedia Flash.
4.1.2 TimeLine – Linha Temporal
A Linha do tempo é utilizada na criação de animações. Através dela podemos definir qual
será a mudança e/ou caminho a ser especificado pelo objecto do filme. Podemos também
através da linha do tempo utilizar camadas para melhor agrupamento e movimento dos
objectos.
Figura .3 - Linha do tempo.
7
CAPÍTULO 4. Software Utilizado
4.1.3 Símbolos
Para podermos trabalhar melhor com animações no flash o melhor é converter os objectos em
símbolos (Figura .4). Quando criado um símbolo ele vai automaticamente para a biblioteca
dos símbolos. Os símbolos podem ser de três tipos gráficos (Graphic), botões (Button) e
clipes de filme (Movie Clip).
O tipo de símbolo Gráfico (Graphic) é o símbolo mais básico, pois ele é praticamente estático
e é muito utilizado também dentro de outros símbolos.
O tipo de símbolo Botão (Button) é utilizado para chamar acções e pode receber valores
diferentes para estado do botão, normal, ao rolar sobre, pressionado e oculto.
Por fim, o tipo de símbolo Clipe de Filme (Movie Clip) permite que se crie um filme dentro
do símbolo com a vantagem de que ele carrega todo o clipe de filme primeiro e mostra o
mesmo no filme todo de uma vez.
Figura .4 - Janela de converter símbolos.
Os Botões (Buttons) são elementos que respondem a eventos do rato, exemplo cliques simples
ou a simples passagem do ponteiro sobre o botão, disparando acções dentro do filme. Eles
têm uma linha do tempo própria com quatro tipos de frames que estão identificados como Up,
Over, Down e Hit. O Up representa o botão no seu estado natural, sem nenhuma modificação.
O Over representa o botão quando o rato é colocado sobre ele. O Down representa a forma
que o botão assume quando seleccionado com o rato e o Hit é quando o conteúdo dessa área
fica invisível.
Os Clipes de Filmes (Movie Clips) são pequenos intervalos de animação que trabalham
independentes da linha do tempo do filme principal. Eles podem ter sons, controlos
interactivos e instâncias de outros Clipes de Filmes. Os mesmos podem ser controlados por
botões, por acções de quadros, ou por outros Clipes de Filmes e tem a capacidade de ser
usados em botões, na sua criação.
Uma das grandes vantagens dos Clipes de Filmes é que se pode editá-los separadamente do
filme principal, facilitando a organização da animação, além de que o Clipe de Filme é
carregado por completo no filme.
4.1.4 Acções
As acções são scripts utilizados pelo Flash para dar mais interactividade aos filmes e um
melhor controlo sobre os mesmos, a linguagem de scripts do Flash é conhecida por
8
CAPÍTULO 4. Software Utilizado
ActionScript, ou seja, uma linguagem orientada a objectos como o caso do Java Script. Isso
significa que as acções controlam objectos quando ocorre um determinado evento. Com o
ActionScript podemos configurar o filme para os eventos que queremos, como cliques em
botões e uso de teclas, activando os scripts para informar ao filme a acção a ser executada.
O painel de acções pode ser usado para auxílio na criação de scripts simples e permite criar e
editar acções para um objecto ou frame.
No ActionScript, os objectos podem conter dados ou podem ser representados graficamente
no palco como Clipes de Filme.
As classes predefinidas do ActionScript são chamadas de objectos, em que cada objecto
permite acesso a determinados tipos de informação. Os Clipes de Filmes são os objectos mais
importantes de um filme do Flash, pois têm linhas de tempo que são executadas
independentemente umas das outras.
As principais acções são:
 Stop () – Pára a execução do filme
 Play () – Reproduz o filme a partir da posição actual
 gotoAndPlay () – Salta para determinada frame e continua a reprodução
 gotoAndStop () – Salta para determinada frame e pára
 nextFrame() – Passa para a frame a seguir
 prevFrame () – Salta para a frame anterior
 stopAllSounds () – Pára todos os sons
4.2 Piano
Este programa contém um teclado virtual que permite tocar piano, órgão e outros
instrumentos à escolha do utilizador, no computador podendo-se utilizar o teclado do
computador para tocar.
Figura .5 - Janela do Piano.
Esta aplicação serviu para criar os sons que foram inseridos nos jogos.
9
CAPÍTULO 4. Software Utilizado
4.3 Audacity
O Audacity serve para gravar, editar e reproduzir sons. Usa-se para editar sons, cortar, copiar
e colar fragmentos de som, com a possibilidade de retroceder para qualquer ponto anterior.
Figura .6 - Janela do Audacity.
Esta aplicação serviu para gravar e editar os sons criados com o programa anterior (piano),
para serem inseridos nos jogos. Esta gravação foi feita fazendo uma ligação com um cabo da
saída dos auscultadores à entrada do microfone do computador, o resto do processo de
gravação é feita neste programa.
4.4 Adobe Photoshop CS2
O Adobe Photoshop CS2 é um aplicativo para a edição profissional de imagens
bidimensionais.
10
CAPÍTULO 4. Software Utilizado
Figura .7 - Janela do Adobe Photoshop CS2.
Esta aplicação serviu para editar todas as imagens inseridas nos jogos do projecto.
11
CAPÍTULO 5. Estrutura e Funcionamento do Site
Capítulo 5
5 Estrutura e Funcionamento do Site
5.1 Página Principal
5.1.1 Página Principal em HTML
Começou-se por criar a página base em HTML com o nome index.html, a qual vai suportar o
resto da aplicação em Flash. Esta página serve de fundo para o site, sendo esse fundo alusivo
ao formato das paredes da Escola Superior de Tecnologia e de Gestão de Bragança (Figura
.8).
Figura .8 - Fundo do site.
5.1.2 Página Principal em Flash
De seguida, criou-se a página inicial em Flash que tem como funcionalidade fazer a ligação
para os jogos criados (Figura .9).
12
CAPÍTULO 5. Estrutura e Funcionamento do Site
Esta página é constituída por uma animação no canto superior esquerdo, pelo texto
“Matemática Divertida” que contém uma animação a sua volta, pela mensagem de boas
vindas “Olá Bem vindo, vem aprender com a Matemática divertida.”, por um desenho que
contém uma paisagem e duas animações (a animação do peixe a nadar pelo lago e a animação
das personagens), por uma botão para ligar e desligar a música de fundo e por sete botões que
quando se passa o rato por cima mostra-se a imagem do jogo correspondente e quando se
selecciona é iniciado o jogo.
Figura .9 - Ecrã da página inicial do jogo em Flash.
5.1.2.1 Como foi implementada
A página inicial ou a página de apresentação dos jogos contém algumas animações que são
clipes de filme com interpolações de movimento tais como o peixe que está dentro do lago,
bem como essa mesma paisagem, a animação que está no canto superior esquerdo, a
animação que contém uma bola a rodar, um círculo oval, a animação que contém o texto
“Matemática Divertida” com uma interpolação de cores, a apresentação das personagens e um
botão para ligar e desligar a música de fundo. O código ActionScript destas animações passa
basicamente por utilizar as funções gotoAndPlay() e stop() e por manipular a música de fundo
quando seleccionado o botão do som utilizando o evento OnRelease e dentro deste as funções
get/setVolume() (Apêndice A.7.9 Clipe de filme “Com/Sem Som”).
Esta página contém um botão para ligação com a página inicial de um projecto de jogos de
matemática do primeiro e segundo ano do primeiro ciclo do Ensino Básico, já feito no ano
lectivo anterior pelo aluno Nuno Afonso e um outro botão que quando pressionado apresenta
seis botões que fazem a ligação com os jogos deste projecto.
Existe um outro clipe de filme que contém as imagens de todos os jogos e da página principal
do outro projecto, que foi utilizado para o utilizador visualizar a imagem do jogo
correspondente ao botão com o nome desse mesmo jogo. Essa visualização é reproduzida
quando o utilizador coloca o ponteiro do rato em cima do botão do respectivo jogo fazendo
desvanecer a paisagem que está no centro da página e fazendo aparecer a imagem do jogo
através da propriedade _alpha, isto é feito dentro do evento OnRollOver, o contrário também
13
CAPÍTULO 5. Estrutura e Funcionamento do Site
acontece quando o utilizador afasta o ponteiro do rato, do botão, utilizando também a
propriedade _alpha dentro do evento OnRollOut.
Cada jogo é carregado quando o botão que contém o nome do respectivo jogo é pressionado,
isto é feito através da função loadMovie() que tem como um dos parâmetros o nome do
ficheiro do jogo a carregar, sendo esta função, invocada dentro do evento OnRelease de cada
botão.
5.2 Jogo das Operações
5.2.1 Descrição do Jogo
Inicialmente, aparece a página inicial do jogo (Figura .10) onde estão contidos três botões, o
botão “Nível 1”, o botão “Nível 2” e o botão “Menu”, onde o utilizador poderá optar por um
dos níveis ou regressar ao menu principal. No nível um, a dificuldade das expressões será
menor devido à necessidade de um único operador para completar. Quanto ao nível dois, as
expressões podem-se tornar mais difíceis necessitando de completar dois operadores e não um
como no nível um, o que poderá tornar mais difícil chegar ao resultado pretendido.
Figura .10 - Ecrã inicial do jogo das Operações.
Depois de pressionado o botão “Nível 1”, aparecerá a página principal do jogo (Figura .11)
com expressões incompletas onde o utilizador deverá escolher um operador de maneira a
acertar no resultado pretendido. As expressões foram guardadas num conjunto (array) e são
recuperadas aleatoriamente. Após escolhido o operador, aparecerá uma mensagem de texto a
indicar se a resposta está certa ou errada.
14
CAPÍTULO 5. Estrutura e Funcionamento do Site
Figura .11 - Ecrã do início do jogo com uma resposta certa.
Caso o utilizador acerte, a maça é comida pela minhoca e deve pressionar o botão “Operação
seguinte” para passar para a próxima expressão, mas se a resposta estiver errada aparecerá
uma mensagem de texto a indicar que está errada com o resultado errado e só avança quando
o utilizador acertar. O jogo repete-se sempre de igual modo até a maça estar comida e
aparecer mensagem de texto a indicar que o jogo acabou (Figura .12).
Figura .12 - Ecrã do fim do jogo no “Nível 1”.
Se pressionado o botão “Nível 2”, aparece a página principal do jogo (Figura .13) onde o
utilizador deverá preencher os dois operadores seleccionando-os na minhoca de maneira a
acertar no resultado pretendido. Para verificar a veracidade da resposta o utilizador
pressionará o botão “Verifica se acertaste” e de igual modo aparecerá uma caixa de texto a
indicar se a resposta está certa ou errada. Quanto ao resto do processo de jogo e de
apresentação será da mesma forma que no nível um.
15
CAPÍTULO 5. Estrutura e Funcionamento do Site
Figura .13 - Ecrã do jogo no “Nível 2” com exemplo de uma resposta certa.
5.2.2 Competências
Este jogo tem como objectivo desenvolver o raciocínio do utilizador a partir da utilização das
operações: adição, subtracção, multiplicação e divisão. O facto de poder trabalhar em
simultâneo com mais do que uma operação proporciona-lhes condições para o
desenvolvimento de competências cognitivas.
5.2.3 Como foi implementado
Houve a preocupação de trabalhar e enriquecer a parte gráfica em termos de desenhos e de
animações. Foram criadas várias caixas de texto para receberem os parâmetros das expressões
(operandos, operadores e resultado) e o resultado do jogo.
Foi criada uma página inicial num ficheiro à parte que contém uma animação criada no
espaço de tempo através da interpolação de movimento e contém dois botões para abrir o
ficheiro correspondente ao nível que se quer jogar. Estes botões contêm um evento OnRelease
que chama uma função loadMovie(), que recebe como parâmetro o nome com o caminho do
ficheiro a carregar e o local onde vai ser carregado (Apêndice A.1.1 Página Inicial).
De seguida, tanto no nível um como no nível dois, desenhou-se uma minhoca em que a sua
estrutura é composta por quatro botões que permitem escolher o operador a introduzir na
expressão existente na caixa de texto correspondente. Esta caixa de texto encontra-se
juntamente com um clipe de filme composto por um rectângulo que alterna entre a cor verde e
branca aquando o aparecimento de cada expressão para que o utilizador escolha um operador.
O código ActionScript deste jogo baseia-se na criação de um array de expressões do tipo
string, em que cada expressão é gerada aleatoriamente através da função random(), aquando o
início do jogo e quando o utilizador passa para a expressão seguinte. Quando é gerada uma
16
CAPÍTULO 5. Estrutura e Funcionamento do Site
nova expressão do array, cada elemento dessa expressão é separado através da função split()
para ser inserido na caixa de texto correspondente da expressão.
No primeiro nível a validação do operador é feita quando este é escolhido, através do código
implementado no evento OnRelease de cada botão da minhoca (Apêndice A.1.2.1 Camada de
acções).
No segundo nível existe um evento OnRelease em cada clipe de filme do rectângulo
correspondente à caixa de texto dos operadores para por o clipe de filme a alternar entre cores
tal como no nível um, e onde vai ser usada uma variável para saber qual o clipe de filme que
foi seleccionado para assim, quando for seleccionado o operador, a caixa de texto
correspondente a esse clipe de filme tomar o valor do operador escolhido (Apêndices A.1.3.5
e A.1.3.6 Clipes de filme “pisca1” e “pisca2”). Neste nível a validação é feita no botão
“Verifica se acertaste” dentro do evento OnRelease devido ao facto de termos mais do que um
operador para completar (Apêndice A.1.3.7 Botão “Verifica se acertaste”).
5.3 Jogo do Dinheiro
5.3.1 Descrição do Jogo
Quando o utilizador escolhe o jogo do Dinheiro aparece a página inicial que contém o botão
“Iniciar”, o botão “Menu” e a explicação de como se joga (Figura .14).
Figura .14 - Ecrã inicial do jogo do Dinheiro.
Depois de, o utilizador pressionar o botão “Iniciar”, aparecerá a página principal do jogo que
contém problemas. O jogo consiste em responder às perguntas utilizando o dinheiro
apresentado e colocando-o na máquina registadora. Neste jogo o grau de dificuldade dos
problemas vai aumentando, sendo necessário, em alguns casos, pegar num papel e lápis para
os resolver.
17
CAPÍTULO 5. Estrutura e Funcionamento do Site
O utilizador terá que seleccionar o dinheiro que pretende e arrastá-lo até a máquina
registadora. Depois de arrastado o dinheiro o utilizador deverá pressionar o botão “Verifica se
acertaste” e então, aparecerá no Troca Tintas a mensagem se acertou ou não (Figura .15).
Figura .15 - Ecrã do jogo á medida que vai sendo jogado.
Caso não acerte, ou melhor caso o utilizador arraste dinheiro a menos para a máquina
registadora aparecerá a mensagem a avisar “O dinheiro que deste não chega, tens que dar
mais dinheiro.”. Se arrastar dinheiro a mais aparecerá a mensagem “Não temos trocos clica
em corrigir e tenta outra vez.”.
Nos casos em que o utilizador insere dinheiro a menos ou a mais pode sempre pressionar o
botão “Corrigir” e voltar a resolver o problema.
Durante o jogo o utilizador pode querer mudar de problema ou voltar a página principal do
jogo tendo três botões, o botão “Problema anterior”, o botão “Problema seguinte” e o botão
“Início” que permite a qualquer altura do jogo voltar à página inicial do jogo.
5.3.2 Competências
Este jogo desenvolve competências relacionadas com a prática de resolução de problemas
juntamente com interacção com dinheiro, permitindo assim ao utilizador usar as notas e
moedas com mais naturalidade.
5.3.3 Como foi implementado
Tal como no jogo anterior e nos seguintes, neste jogo foi criada uma página inicial que
contém um botão para iniciar o jogo usando o evento OnRelease e dentro deste a função
loadMovie() (Apêndice A.2.1.1 Botão “Iniciar”). Na página do jogo, para além da criação de
todo o aspecto gráfico foram criados vários clipes de filmes que contêm as notas e moedas do
jogo, um clipe de filme que contém uma caixa registadora e vários clipes de filme que contêm
as perguntas do jogo.
18
CAPÍTULO 5. Estrutura e Funcionamento do Site
Neste jogo foi criado um array de clipes de filme para que cada pergunta do jogo seja
associada a um índice deste array e foi criado outro array para guardar os valores correctos
das perguntas para efeito de validação.
Para os clipes de filme das notas e moedas serem arrastados é utilizada a função startDrag()
no evento OnPress de cada clipe de filme e para deixar de arrastar é utilizada a função
stopDrag() no evento OnRelease de cada clipe de filme. Para detectar a colisão entre o clipe
de filme do dinheiro (nota ou moeda) e o clipe de filme da caixa registadora é utilizada a
função hitTest() que retorna true or false caso exista ou não, entre os objectos. Esta função é
chamada periodicamente durante a execução do jogo através da função setInterval()
(Apêndice A.2.2.1 Camada de acções).
Cada clipe de filme do dinheiro tem uma animação de desaparecer quando existe a colisão
com a caixa registadora ao mesmo tempo que é largado o botão do rato voltando ao local
inicial, isto acontece porque no decorrer desta animação são guardadas as coordenadas X e Y
iniciais do clipe de filme, isto também acontece quando, ao largar o botão do rato, não existe
colisão entre o dinheiro e a caixa registadora.
A passagem das perguntas é feita através das acções do botão “Problema seguinte” (Apêndice
A.2.2.5 Botão “Problema seguinte”) e do botão “Problema anterior” (Apêndice A.2.2.6 Botão
“Problema anterior”) dentro do evento OnRelease onde é incrementado o índice da pergunta
escondendo a anterior e mostrando a seguinte através da propriedade _visible.
Foram criadas duas caixas de texto dinâmicas, uma para ver o valor do dinheiro arrastado para
a caixa registadora e outra para aparecer o resultado quando é seleccionado o botão “Verifica
se acertaste”. Este botão faz a validação da igualdade do valor somado do dinheiro arrastado
para a caixa registadora com o valor do array de valores correspondente ao índice da pergunta
em questão, mostrando assim o resultado (Apêndice A.2.2.4 Botão “Verifica se acertaste”).
Existe também um botão “Corrigir” para o caso de o utilizador querer corrigir o valor do
dinheiro arrastado, nesse caso o valor é inicializado a zero (Apêndice A.2.2.3 Botão
“Corrigir”).
5.4 Jogo dos Múltiplos
5.4.1 Descrição do Jogo
Ao escolher este jogo, inicialmente aparece a página inicial (Figura .16) que contém uma
explicação relativa ao jogo, ou seja, poderá ser uma mini história em que o Riscas apanhou
um peixe no rio e precisa de ajuda para mudar o peixe do saco onde o trouxe, para o aquário.
19
CAPÍTULO 5. Estrutura e Funcionamento do Site
Figura .16 - Ecrã inicial do jogo dos Múltiplos.
A página inicial deste jogo também contém um botão “Iniciar” que depois de pressionado fará
aparecer a página principal do jogo e um botão “Menu” que quando pressionado volta para o
menu principal. Neste jogo o utilizador terá que escolher a veracidade das expressões
pressionando um dos dois botões “Verdadeiro” ou “Falso”.
Consoante o utilizador vai acertando ou não, aparecerá o Riscas a dizer, e á medida que vai
acertando vai conseguindo passar a água do saco para o aquário (Figura .17). Para passar para
a próxima expressão o utilizador deve pressionar o botão “Seguinte” e para voltar à página
inicial a qualquer altura do jogo deve pressionar o botão “Início”.
Figura .17 - Ecrã do jogo á medida que vai sendo jogado.
Quando o utilizador acerta em todas as expressões o peixe salta para o aquário, terminando o
jogo com a animação e com uma mensagem de felicitação (Figura .18).
20
CAPÍTULO 5. Estrutura e Funcionamento do Site
Figura .18 - Ecrã final do jogo dos Múltiplos.
5.4.2 Competências
Com o jogo dos Múltiplos pretende-se, de um modo particular, desenvolver competências
relacionadas com o reconhecimento de múltiplos de um número natural.
5.4.3 Como foi implementado
Neste jogo existe também uma página inicial que chama a página de resolução do jogo tal
como nos jogos anteriores e segue o mesmo objectivo.
Este jogo contém um clipe de filme com a animação entre o peixe, o aquário e o saco, dois
botões (“Verdadeiro” e ”Falso”) que validam o valor lógico da expressão mediante a escolha
do utilizador, um botão para passar para a expressão seguinte quando o utilizador acerta, uma
caixa de texto dinâmica para o resultado e clipes de filmes para as expressões.
Quanto às acções e ao código ActionScript, este jogo contém um array de clipes de filme das
expressões e um array de valores booleanos correctos correspondentes às expressões. Os
clipes de filmes das expressões são gerados aleatoriamente (Apêndice A.3.2.1 Camada de
acções). A escolha do botão de verdadeiro ou falso é validada através do evento OnRelease do
mesmo (Apêndices A.3.2.3 Botão “Verdadeiro” e A.3.2.4 Botão “Falso”).
O código ActionScript do botão “Seguinte” deste jogo, permite gerar outra expressão
aleatoriamente, mostrando-a e escondendo a anterior, através da propriedade _visible e
permite incrementar a animação que contém o peixe, o saco e o aquário (Apêndice A.3.2.5
Botão “Seguinte”).
21
CAPÍTULO 5. Estrutura e Funcionamento do Site
5.5 Jogo das Fracções
5.5.1 Descrição do Jogo
Quando o utilizador escolhe o jogo das Fracções aparece a página inicial (Figura .19) que
contém três botões referentes a diversos níveis de dificuldade (Fácil, Médio e Difícil) e um
botão “Menu” que permite voltar para o menu principal.
Figura .19 - Ecrã inicial do jogo das Fracções.
O nível “Fácil” contém uma pizza dividida em oito fatias onde o utilizador terá que
seleccionar primeiro os quadrados e escolher os números que acha que são correctos no
telemóvel. De seguida, no telemóvel aparecerá a piscar a tecla “” que serve de botão de
verificação e que, depois de pressionado faz aparecer no visor do telemóvel uma mensagem
de texto a dizer se acertou ou não. Caso acerte aparecerá uma animação do Troca Tintas a
comer uma fatia de pizza, depois começa a piscar a tecla “” que serve para passar para a
fracção seguinte, como mostra na figura seguinte:
22
CAPÍTULO 5. Estrutura e Funcionamento do Site
Figura .20 - Ecrã do jogo no nível “Fácil” com animação do jogo em si.
Se o utilizador não acertar na fracção, aparecerá no visor do telemóvel uma mensagem de erro
e o respectivo resultado, o qual pode ser corrigido ao pressionar o botão “Corrigir” que
aparece a piscar.
No nível “Médio” poderá aparecer uma pizza dividida em quatro, seis ou oito fatias onde o
utilizador terá o mesmo sistema para identificação das fracções.
Neste nível, o grau de dificuldade do jogo aumenta uma vez que muda tanto o número de
fatias que sobram como o número de fatias da pizza.
Por fim, no nível “Difícil” já não aparecerá só uma pizza mas duas, o que tornará o jogo mais
difícil uma vez que o utilizador terá que somar as fatias que sobram das duas pizzas. O resto
do processo do jogo é igual aos outros níveis.
Cada uma das actividades do jogo termina com uma mensagem de felicitação no visor do
telemóvel. Em todos os níveis o utilizador pode voltar para a página inicial do jogo
pressionando o botão “Início”.
5.5.2 Competências
Este jogo tem como objectivo desenvolver tarefas associadas a fracções correspondentes a
quantidades, nomeadamente relacionar as partes com o todo e identificar porções que são
traduzidas por fracções equivalentes.
5.5.3 Como foi implementado
Este jogo para além da página inicial que segue a mesma metodologia dos outros jogos foi
implementado com três níveis de dificuldade: nível Fácil, nível Médio e nível Difícil. Contém
vários clipes de filme com animações e outros que se baseiam mais em acções contendo
também animações.
23
CAPÍTULO 5. Estrutura e Funcionamento do Site
Neste jogo existe uma metodologia semelhante ao jogo das Operações, pois usam-se dois
clipes de filme com um rectângulo que alterna entre cores para o utilizador inserir um número
na caixa de texto dinâmica que lhe está sobreposta.
Todos os botões do telemóvel contêm o código dentro do evento OnRelease, que permite
adicionar o número correspondente ao botão seleccionado, na caixa de texto correspondente
ao rectângulo seleccionado anteriormente.
No clipe de filme do botão de verificação do telemóvel é feita a validação dos dois números
inseridos dentro do evento OnRelease, fazendo a divisão dos mesmos e comparando-a com o
valor da variável que contém o valor correcto do número de fatias que sobram aparecendo o
resultado numa caixa de texto dinâmica no visor do telemóvel. Se o utilizador errar aparece o
resultado errado na caixa de texto anterior e aparece o botão “Corrigir” que basicamente
inicializa as caixas de texto dos valores inseridos a zero. Se o utilizador acertar além da
mensagem que aparece de felicitação no visor do telemóvel, o clipe de filme do botão de
passar à pergunta seguinte fica activo permitindo através do evento OnRelease passar para a
pergunta seguinte.
Neste jogo as perguntas são as frames do clipe de filme da pizza que contêm as fatias que
sobram bem como o valor que lhes corresponde atribuído a uma variável, isto no nível fácil e
no nível difícil, no nível médio os valores estão guardados num array. O número da frame é
gerado aleatoriamente através da função random(), no início do jogo e ao passar para a
pergunta seguinte utilizando o número gerado para carregar a frame correspondente a esse
número através da função gotoAndStop()(Apêndice A.4 Jogo das Fracções).
5.6 Jogo da Ordenação
5.6.1 Descrição do Jogo
Quando o utilizador escolhe o jogo da Ordenação aparece a página inicial (Figura .21) que
contém um botão “Menu” que serve para voltar para o menu principal e duas partes “Parte 1”
e “Parte 2”, em que cada uma tem dois níveis “Nível 1” e “Nível 2” referentes a uma
dificuldade diferente.
24
CAPÍTULO 5. Estrutura e Funcionamento do Site
Figura .21 - Ecrã inicial do jogo da Ordenação.
O utilizador, neste jogo, ao escolher a “Parte 1” tanto no “Nível 1”, como no “Nível 2”,
encontrará um conjunto de números que serão usados para ser ordenados por ordem crescente
ou decrescente. Preenchendo os espaços em branco (Figura .22), com os números adequados,
o utilizador vai ganhando peças, peças essas que no final do jogo, irão estar interligadas para
representar um veículo.
Figura .22 - Ecrã do jogo á medida que o utilizador vai jogando.
No “Nível 1” o veículo a ser construído é uma mota e no “Nível 2” é um carro. A diferença
entre os dois níveis é o grau de dificuldade das tarefas, aumentando a ordem de grandeza dos
números. Durante o jogo aparecerão mensagens de texto a indicar se o utilizador vai
acertando ou não. No fim do jogo aparecerá o Riscas a indicar como se comportou o
utilizador com a respectiva pontuação e o veículo construído como mostra a seguinte figura:
25
CAPÍTULO 5. Estrutura e Funcionamento do Site
Figura .23 - Ecrã final do jogo no “Nível 1” da “Parte 1”.
A “Parte 2” do jogo tem como funcionalidade completar sequências de números. Para cada
espaço (rectângulo) em branco pressionado, aparecerá quatro números, para o utilizador
escolher o correcto (Figura .24) formando de igual forma os veículos.
Figura .24 - Ecrã do jogo na “Parte 2” no “Nível 2” mostrando o processo do jogo.
Em qualquer altura e em qualquer nível do jogo o utilizador pode pressionar o botão “Início”
e voltará à página inicial do jogo.
5.6.2 Competências
Este jogo tem como objectivo, desenvolver tarefas associadas à ordenação de números em
sequências crescentes e decrescentes, ao estabelecimento de relações de ordem entre números
e à utilização da simbologia > e <.
26
CAPÍTULO 5. Estrutura e Funcionamento do Site
5.6.3 Como foi implementado
Como já foi dito, este jogo está dividido em duas partes. Na primeira parte existe um array de
caixas de texto dinâmicas dos clipes de filme dos rectângulos a arrastar pertencente ao clipe
de filme da pergunta. Cada pergunta tem os seus valores correctos guardados num array
tendo assim um array para cada pergunta. Na segunda parte, também existe um array de
caixas de texto dinâmicas dos clipes de filme dos rectângulos a arrastar, existe um array de
valores correctos guardados para cada pergunta e existem quatro arrays de números para cada
pergunta, para a escolha do número correcto a arrastar para o rectângulo.
Tal como no jogo do Dinheiro, neste jogo tanto na parte um como na parte dois, também é
usada também a função startDrag() no evento OnPress e a função stopDrag() no evento
OnRelease de cada clipe de filme do número da pergunta. Foi também usada a função
hitTest() para detectar a colisão entre os números da pergunta e os rectângulos onde se quer
colocar esses números, função que vai ser também processada periodicamente através da
função setInterval(). No evento OnRelease dos números das perguntas são guardadas as
coordenadas inicias destes e as coordenadas de cada um dos rectângulos onde os números vão
ser colocados para o caso de existir colisão e os números poderem ficar colocados nesses
rectângulos e caso não exista colisão ou não seja permitida a colocação do número no
rectângulo o número volta à posição inicial, podendo o utilizador verificar isso mediante a cor
com que o rectângulo fica quando ocorre a colisão. Neste jogo tanto na parte um como na
parte dois as perguntas são geradas aleatoriamente e existe uma pontuação a atribuir ao
utilizador mediante o número de tentativas para acertar na colocação dos números. Essa
pontuação é atribuída numa caixa de texto dinâmica quando por fim o utilizador acerta na
colocação do número. À medida que o utilizador erra na colocação do número vai aparecendo
numa caixa de texto dinâmica uma mensagem de erro e quando o utilizador acerta aparece na
mesma caixa de texto uma mensagem de felicitação com o número de tentativas falhadas. A
pontuação máxima a atribuir por cada número colocado é de 125 unidades e o desconto da
pontuação do utilizador mediante o número de tentativas falhadas é calculado da seguinte
maneira: se o utilizador falhar uma única vez perde 25 unidades, se o utilizador falhar duas ou
mais vezes a pontuação a atribuir vai ser a pontuação máxima a dividir pelo número de
tentativas falhadas (Apêndice A.5 Jogo da Ordenação).
5.7 Jogo das Horas
5.7.1 Descrição do Jogo
Quando o utilizador escolhe o jogo das Horas aparece a página inicial (Figura .25) que
contém três botões, o botão “Menu” que serve para voltar para o menu principal, o botão
“Nível 1” e o botão “Nível 2”. Nos dois níveis, o utilizador tem que escolher as horas certas
que marca o relógio de ponteiros.
27
CAPÍTULO 5. Estrutura e Funcionamento do Site
Figura .25 - Ecrã inicial do jogo das Horas.
No “Nível 1” aparecerão quatro relógios despertadores dos quais só um indica a hora certa
correspondente à hora marcada no relógio de ponteiros. À medida que o utilizador vai
jogando, o Troca Tintas aparecerá a dizer se acertou ou não, como se pode observar na figura
seguinte:
Figura .26 - Ecrã do jogo no “Nível 1” mostrando como acertou.
No “Nível 2” aparecerá uma caixa de selecção que contém várias horas por extenso e só uma
indica a hora certa marcada no relógio de ponteiros. Depois de seleccionada uma hora
aparecerá um botão “Verifica” com animação, que quando pressionado, o Troca Tintas indica
se o utilizador acertou ou não, como se pode ver na seguinte figura:
28
CAPÍTULO 5. Estrutura e Funcionamento do Site
Figura .27 - Ecrã do jogo no “Nível 2”.
Por fim, nos dois níveis aparecerá uma mensagem indicativa de fim de jogo e um botão
“Início” que permite voltar para a página inicial do jogo.
5.7.2 Competências
Com este jogo pretendeu-se desenvolver competências associadas à utilização de
instrumentos da vida corrente relacionados com o tempo. O utilizador deverá ser capaz de ler
e comparar as horas apresentadas em diferentes meios.
5.7.3 Como foi implementado
Nos dois níveis deste jogo foi criado um relógio de ponteiros onde cada frame contém o
relógio com os ponteiros numa determinada hora. Neste jogo, as perguntas também são
geradas aleatoriamente através da função random(), por isso, o número aleatório gerado
dentro do intervalo de números das perguntas vai ser o número da frame do clipe de filme do
relógio de ponteiros que vai ser mostrada através da função gotoAndStop().
No primeiro nível foram criadas quatro instâncias de um relógio despertador que é um clipe
de filme e contém duas caixas dinâmicas, uma para a hora e outra para os minutos. Estes
relógios despertadores permitem ser seleccionados para fazer a correspondência entre a hora
destes e a hora do relógio de ponteiros. Como estes relógios despertadores permitem ser
seleccionados, fazem o papel de botões, mas, não o são devido ao facto de conterem caixas de
texto dinâmicas as quais não permitem ser pressionadas, podendo ser pressionada somente a
área do relógio despertador não preenchida com a caixa de texto. Assim os relógios
despertadores ficaram como clipes de filme podendo ser pressionada toda a área deles
incluindo as suas caixas de texto dinâmicas e alterar o seu estado (por exemplo a cor) ao
posicionar o rato em cima dele através do evento OnRollOver, ao posicionar o rato fora dele
29
CAPÍTULO 5. Estrutura e Funcionamento do Site
através do evento OnRollOut, ao pressionar o botão do rato através do evento OnPress, e ao
soltar o botão do rato através do evento OnRelease. Estas mudanças de estado é a cor que o
relógio despertador tem numa das suas frames que é reproduzida através da função
gotoandPlay(). Quando é seleccionado um dos relógios despertadores é verificada a igualdade
entre a hora deste e a hora do relógio de ponteiros. O código de validação está dentro do
evento OnRelease de cada uma dos relógios despertadores (Apêndice A.6.2 Nível 1).
No segundo nível foi criada uma instância de uma componente que o flash disponibiliza que é
a ComboBox (caixa de selecção), que vai conter várias hipóteses para o utilizador escolher,
em que essas hipóteses são horas escritas por extenso, sendo uma delas correspondente à hora
marcada pelos ponteiros do relógio. A validação de cada pergunta deste nível é feita ao
pressionar um botão animado, chamado “Verifica”, que contém o código de validação dentro
do evento OnRelease (Apêndice A.6.3 Nível 2).
30
CAPÍTULO 6. Teste ao Software
Capítulo 6
6 Teste ao Software
Os testes realizados aos jogos, foram feitos por seis crianças da familia e amigos entre os oito
e os dez anos que frequentavam o 3º ano e 4º ano.
No geral, as crianças acharam os ambientes criados, as animações, as personagens e as cores
dos jogos interessantes achando alguns difíceis, mas sempre com alguma curiosidade para
saber o que ia acontecer quando ganhavam.
Quanto ao jogo das Operações, as crianças gostaram do ambiente e acharam fácil o nível 1,
mas no nível 2 acharam um pouco difícil ter que fazer as contas mentalmente.
No jogo do Dinheiro as crianças começaram por pegar num caderno e por resolver os
problemas à medida que iam aparecendo, gostando dos desenhos, dos sons e conhecendo bem
o dinheiro, mas, tiveram muitas dificuldades na resolução dos últimos problemas.
O jogo dos Múltiplos foi interpretado e jogado com facilidade pelas crianças, elas gostaram
do jogo e acharam bastante engraçada a animação do peixe a saltar para o aquário.
As crianças no jogo das Fracções, começaram pelo nível fácil e depois foram jogando,
gostando do jogo em todos os níveis e achando o jogo com dificuldade média.
No jogo da Ordenação as crianças começaram por escolher o nível 1 da parte 1 achando o
jogo acessível e gostaram bastante dos veículos. Também gostaram do restantes níveis
achando particularmente os níveis da parte 2 (que eram para completar), um pouco mais
complicados.
Por fim, no jogo das Horas, as crianças gostaram dos sons e acharam o nível 1 mais fácil que
o nível 2 devido à dificuldade em relacionar as horas do relógio dos ponteiros com as horas
por extenso, enganando-se um pouco mais na sua escolha. Depois de jogarem e serem
questionadas, a maioria das crianças escolheu o jogo das Fracções como preferido.
Mediante os resultados destes testes foram feitos pequenos ajustes à aplicação.
31
CAPÍTULO 7. Conclusões
Capítulo 7
7 Conclusões
Este projecto foi desenvolvido utilizando o software Macromedia Flash 8, o qual se mostrou
indispensável para o desenvolvimento do site/jogo, visto que, é uma ferramenta robusta e
fantástica em termos de desenho vectorial (o qual foi necessário para a elaboração gráfica do
site/jogo) e em termos de linguagem de programação ActionScript (a qual foi necessária para
dar interactividade ao site/jogo).
No desenvolvimento do projecto, alguns jogos foram mais difíceis de implementar do que
outros. Para ultrapassar essas dificuldades recorreu-se ao apoio de alguns sites, tutoriais e
manuais referentes à ferramenta Macromedia Flash 8.
Os tópicos abordados na aplicação basearam-se no programa de Matemática do 1º Ciclo do
Ensino Básico. Nomeadamente, números e operações habitualmente abordados no 3º e 4º ano
de escolariedade.
Esses conteúdos foram apresentados de forma a motivar as crianças para a aprendizagem da
Matemática usando desenhos e animações que eles costumam apreciar.
Assim sendo, este projecto traduziu-se para enriquecimento pessoal não só ao nível das
tecnologias, mas também ao nível da interacção pedagógica, fundamental no desenvolvimento
de software educativo.
32
Bibliografia
Bibliografia
[EM 03]
ESTEVES, Maria Emília - Projecto Vila Moinho Caderno de Actividades Matemática 3º Ano, 2.ª
Edição, Departamento de Investigações e Edições Educativas da Constância Editores, S.A, 2003
[GA 03]
GONÇALVES, Armando - Projecto Vila Moinho Matemática 4º Ano, 2.ª Edição, Departamento
de Investigações e Edições Educativas da Constância Editores, S.A, 2003
[EM 03]
ESTEVES, Maria Emília - Projecto Vila Moinho Caderno de Actividades Matemática 4º Ano, 2.ª
Edição, Departamento de Investigações e Edições Educativas da Constância Editores, S.A, 2003
[LM 04]
LOURENÇO, Manuela - Organização Curricular e Programas Ensino Básico – 1.º Ciclo,
Departamento da Educação Básica, Janeiro 2004
[FR 00]
FRANCESCATO Rosana [et al.] - macromedia FLASH 5.Guia de Referência do ActionScript, 1ª
Edição,
San
Francisco,
Macromedia,
Inc.,
Setembro
2000
de
http://www.apostilando.com/download.php?cod=98&categoria=Flash. 12 Mar. 2008
[FR 03]
FRANCESCATO Rosana [et al.] - macromedia FLASH MX 2004. Guia de referência do
ActionScript, 1ªEdição, San Francisco, Macromedia, Inc., Outubro 2003 de
http://download.macromedia.com/pub/documentation/br/flash/mx2004/fl_actionscript_reference.
pdf. 17 Jul. 2008
[FP 04]
FERREIRA, Pedro Cid – FLASH MX 2004. Conceitos e Prática, Lisboa, FCA – Editora de
Informática, Lda, 2004
[LM 07]
LINHARES, Miguel – Exercícios de FLASH 8 & MX 2004, Lisboa, FCA – Editora de
Informática, Lda, Abril 2007
[URL1]
http://israelswf.blogspot.com/2006/04/aula-1-comeando-no-flash.html
[URL2]
http://www.adobe.com/support/flash/action_scripts_dict.html
[URL3]
http://flashmasters.net/index.php?option=com_frontpage&Itemid=1
[URL4]
http://www.orkut.com
[URL5]
http://www.google.pt
[URL6]
http://www.bananadesign.com.br/conteudo.asp?secao=1&subsecao=1&materia=17&id_secao=1
[URL7]
http://www.truquesedicas.com/tutoriais/index.php
[URL8]
http://www.eduteka.org/MI/master/interactivate/
[URL9]
http://www.kirupa.com/developer/flash/index.htm
33
Apêndice A – Código ActionScript
Apêndice A
A
Código ActionScript
A.1 Jogo das Operações
A.1.1 Página Inicial
A.1.1.1
Botão “Menu”
on(release){
loadMovie("./paginaPrincipal.swf",_root)
}
A.1.1.2
Botão “Nível 1”
on(release){
loadMovie("minhoca1.swf",_root);
}
A.1.1.3
Botão “Nível 2”
on(release){
loadMovie("minhoca2.swf",_root);
}
34
Apêndice A – Código ActionScript
A.1.2 Nível 1
A.1.2.1
Camada de acções
_root.acabou_mc._visible=false;
errado1_mc._visible = false;
certo1_mc._visible = false;
opseguinte1_btn._visible = false;
var operando1:String;
var operador:String;
var operando2:String;
var resultado:String;
var conclusao:String;
var cont:Number=0;
operador_txt._visible = false;
///***Array de operações***
arrayContas = new Array();
var i:Number;
arrayContas[0] = "25,"+mbchr(215)+",2,=,50";
arrayContas[1] = "30,"+mbchr(247)+",2,=,15";
arrayContas[2] = "48,-,31,=,17";
arrayContas[3] = "14,+,23,=,37";
arrayContas[4] = "30,-,11,=,19";
arrayContas[5] = "17,+,8,=,25";
arrayContas[6] = "3,"+mbchr(215)+",15,=,45";
arrayContas[7] = "16,"+mbchr(247)+",4,=,4";
arrayContas[8] = "10,"+mbchr(215)+",3,=,30";
arrayContas[9] = "65,"+mbchr(247)+",5,=,13";
arrayContas[10] = "72,+,26,=,98";
//***Função para inserção dos numeros da operação aleatória
gerada***
var jaux:Number= 0;//para nao repetir as operações
i = GerarOperacao(arrayContas);
35
Apêndice A – Código ActionScript
//++++++++++Funções++++++++++++
function GerarOperacao():Number {
var indice:Number = random(11);
while(indice==jaux){
indice = random(11);
}
jaux=indice;
operando1 = arrayContas[indice].split(",")[0];
operando2 = arrayContas[indice].split(",")[2];
resultado = arrayContas[indice].split(",")[4];
return indice;
}
//***funções dos botões das minhocas***
this.minhoca_mc.mais1_btn.onRelease = function() {
operador_txt._visible = true;
operador = "+";
var testamais = arrayContas[i].split(",")[1];
if (testamais == "+") {
conclusao = "Certo";
bloquearMinhoca(false);
sons("certo.wav");
_root.pisca1.gotoAndPlay(10);
_root.pisca1.stop();
errado1_mc._visible = false;
certo1_mc._visible = true;
if (cont<9) {
opseguinte1_btn._visible = true;
cont++;
_root.maca_mc.gotoAndPlay(cont);
}else{
_root.acabou_mc._visible=true;
}
} else {
certo1_mc._visible = false;
errado1_mc._visible = true;
opseguinte1_btn._visible = false;
//**mostrar solução errada**
errou1=parseInt(operando1);
36
Apêndice A – Código ActionScript
errou2=parseInt(operando2);
erroufinal=errou1+errou2;
conclusao="Errado:
"+operando1+operador+operando2+"="+erroufinal;
sons("errado2.wav");
}
};
this.minhoca_mc.menos1_btn.onRelease = function() {
operador_txt._visible = true;
operador = "-";
var testamenos = arrayContas[i].split(",")[1];
if (testamenos == "-") {
_root.pisca1.gotoAndPlay(10);
_root.pisca1.stop();
conclusao = "Certo";
sons("certo.wav");
bloquearMinhoca(false);
errado1_mc._visible = false;
certo1_mc._visible = true;
if (cont<9) {
opseguinte1_btn._visible = true;
cont++;
_root.maca_mc.gotoAndPlay(cont);
}else{
_root.acabou_mc._visible=true;
}
} else {
conclusao = "Errado";
certo1_mc._visible = false;
errado1_mc._visible = true;
opseguinte1_btn._visible = false;
//**mostrar solução errada**
errou1=parseInt(operando1);
errou2=parseInt(operando2);
erroufinal=errou1-errou2;
conclusao="Errado:
"+operando1+operador+operando2+"="+erroufinal;
37
Apêndice A – Código ActionScript
sons("errado2.wav");
}
};
this.minhoca_mc.vezes1_btn.onRelease = function() {
operador_txt._visible = true;
operador = mbchr(215);
var testavezes = arrayContas[i].split(",")[1];
if (testavezes == mbchr(215)) {
conclusao = "Certo";
sons("certo.wav");
bloquearMinhoca(false);
_root.pisca1.gotoAndPlay(10);
_root.pisca1.stop();
errado1_mc._visible = false;
certo1_mc._visible = true;
if (cont<9) {
opseguinte1_btn._visible = true;
cont++;
_root.maca_mc.gotoAndPlay(cont);
}else{
_root.acabou_mc._visible=true;
}
} else {
conclusao = "Errado";
certo1_mc._visible = false;
errado1_mc._visible = true;
opseguinte1_btn._visible = false;
//**mostrar solução errada**
errou1=parseInt(operando1);
errou2=parseInt(operando2);
erroufinal=errou1*errou2;
conclusao="Errado:
"+operando1+operador+operando2+"="+erroufinal;
sons("errado2.wav");
}
};
38
Apêndice A – Código ActionScript
this.minhoca_mc.dividir1_btn.onRelease = function() {
operador_txt._visible = true;
operador = mbchr(247);
var testadividir = arrayContas[i].split(",")[1];
if (testadividir == mbchr(247)) {
conclusao = "Certo";
sons("certo.wav");
bloquearMinhoca(false);
_root.pisca1.gotoAndPlay(10);
_root.pisca1.stop();
errado1_mc._visible = false;
certo1_mc._visible = true;
if (cont<9) {
opseguinte1_btn._visible = true;
cont++;
_root.maca_mc.gotoAndPlay(cont);
}else{
_root.acabou_mc._visible=true;
}
} else {
conclusao = "Errado";
certo1_mc._visible = false;
errado1_mc._visible = true;
opseguinte1_btn._visible = false;
//**mostrar solução errada**
errou1=parseInt(operando1);
errou2=parseInt(operando2);
erroufinal=errou1/errou2;
conclusao="Errado:
"+operando1+operador+operando2+"="+erroufinal;
sons("errado2.wav");
}
};
39
Apêndice A – Código ActionScript
function bloquearMinhoca(b:Boolean){
_root.minhoca_mc.dividir1_btn.enabled=b;
_root.minhoca_mc.mais1_btn.enabled=b;
_root.minhoca_mc.menos1_btn.enabled=b;
_root.minhoca_mc.vezes1_btn.enabled=b;
}
function sons(s:String){
var som:Sound= new Sound();
som.attachSound(s);
som.start();
}
A.1.2.2
Botão “Operação seguinte”
on (release) {
i = GerarOperacao();
_root.pisca1.play();
operador="";
conclusao="";
_root.errado1_mc._visible=false;
bloquearMinhoca(true);
_root.certo1_mc._visible=false;
opseguinte1_btn._visible=false;
}
A.1.2.3
Botão “Início”
on (release) {
loadMovie("inicioMinhoca.swf", _root);
}
40
Apêndice A – Código ActionScript
A.1.3 Nível 2
A.1.3.1
Camada de acções
_root.bloquearMinhoca(false);
_root.acabou_mc._visible=false;
errado1_mc._visible = false;
certo1_mc._visible = false;
opseguinte1_btn._visible = false;
_root.verifica_btn._visible = false;
_root.limpar_btn.enabled=false;
var operador:String;
var operador2:String;
operador="";
operador2="";
var operando1:String;
var operando2:String;
var operando3:String;
var resultado:String;
var conclusao:String;
_global.op=0;
var cont:Number;
cont = 0;
//para nao aparecer o cursor de texto e
//aparecer a mao para seleccionar o pisca
operador_txt._visible = false;
operador2_txt._visible = false;
///***Array de operações***
arrayContas = new Array();
var i:Number;
arrayContas[0] = "8,"+mbchr(215)+",6,+,12,=,60";
arrayContas[1] = "3,"+mbchr(247)+",3,+,9,=,10";
arrayContas[2] = "4,-,3,+,10,=,13";
arrayContas[3] = "13,+,20,-,5,=,28";
41
Apêndice A – Código ActionScript
arrayContas[4] = "30,-,15,+,16,=,31";
arrayContas[5] = "17,+,5,+,18,=,40";
arrayContas[6] = "9,"+mbchr(215)+",4,+,11,=,47";
arrayContas[7] = "45,"+mbchr(247)+",5,"+mbchr(215)+",3,=,27";
arrayContas[8] = "7,"+mbchr(215)+",6,"+mbchr(247)+",2,=,21";
arrayContas[9] = "62,"+mbchr(247)+",2,+,19,=,50";
arrayContas[10] = "38,-,11,-,4,=,23";
//***Função para inserção dos numeros da operação aleatória
gerada***
var jaux:Number = 0;
i = GerarOperacao();
//++++++++++Funções++++++++++++
function GerarOperacao():Number {
var indice:Number = random(11);
while (indice == jaux) {
indice = random(11);
}
jaux = indice;
operando1 = arrayContas[indice].split(",")[0];
operando2 = arrayContas[indice].split(",")[2];
operando3 = arrayContas[indice].split(",")[4];
resultado = arrayContas[indice].split(",")[6];
return indice;
}
//***funções dos botoes da minhoca***
this.minhoca_mc.mais1_btn.onRelease = function() {
if (op==1) {
operador_txt._visible = true;
operador = "+";
_root.pisca1.gotoAndPlay(10);
_root.pisca1.stop();
} else if (op==2) {
operador2_txt._visible = true;
operador2 = "+";
_root.pisca2.gotoAndPlay(10);
_root.pisca2.stop();
42
Apêndice A – Código ActionScript
}
if (operador.length!=0 && operador2.length !=0) {
_root.verifica_btn._visible=true;
_root.verifica_btn.enabled=true;
}
};
this.minhoca_mc.menos1_btn.onRelease = function() {
if (op==1) {
operador_txt._visible = true;
operador = "-";
_root.pisca1.gotoAndPlay(10);
_root.pisca1.stop();
} else if (op==2) {
operador2_txt._visible = true;
operador2 = "-";
_root.pisca2.gotoAndPlay(10);
_root.pisca2.stop();
}
if (operador.length!= 0 && operador2.length != 0) {
_root.verifica_btn._visible=true;
_root.verifica_btn.enabled=true;
}
};
this.minhoca_mc.vezes1_btn.onRelease = function() {
if (op==1) {
operador_txt._visible = true;
operador = mbchr(215);
_root.pisca1.gotoAndPlay(10);
_root.pisca1.stop();
} else if (op==2) {
operador2_txt._visible = true;
operador2 = mbchr(215);
_root.pisca2.gotoAndPlay(10);
_root.pisca2.stop();
}
if (operador.length != 0 && operador2.length != 0) {
_root.verifica_btn._visible=true;
_root.verifica_btn.enabled=true;
43
Apêndice A – Código ActionScript
}
};
this.minhoca_mc.dividir1_btn.onRelease = function() {
if (op==1) {
operador_txt._visible = true;
operador = mbchr(247);
_root.pisca1.gotoAndPlay(10);
_root.pisca1.stop();
} else if (op==2) {
operador2_txt._visible = true;
operador2 = mbchr(247);
_root.pisca2.gotoAndPlay(10);
_root.pisca2.stop();
}
if (operador.length != 0 && operador2.length != 0) {
_root.verifica_btn._visible=true;
_root.verifica_btn.enabled=true;
}
};
function bloquearMinhoca(b:Boolean){
_root.minhoca_mc.dividir1_btn.enabled=b;
_root.minhoca_mc.mais1_btn.enabled=b;
_root.minhoca_mc.menos1_btn.enabled=b;
_root.minhoca_mc.vezes1_btn.enabled=b;
}
function sons(s:String){
var som:Sound= new Sound();
som.attachSound(s);
som.start();
}
A.1.3.2
Botão “Limpar”
on(release){
_root.operador2="";
_root.operador="";
_root.pisca1.gotoAndStop(1);
44
Apêndice A – Código ActionScript
_root.pisca2.gotoAndStop(1);
_root.operador_txt._visible=false;
_root.operador2_txt._visible=false;
_root.verifica_btn._visible=false;
_root.bloquearMinhoca(false);
}
A.1.3.3
Botão “Operação seguinte”
on (release) {
i = GerarOperacao();
_root.pisca1.gotoAndStop(1);
_root.pisca2.gotoAndStop(1);
operador_txt._visible = false;
operador2_txt._visible = false;
_root.verifica_btn._visible = false;
operador = "";
operador2 = "";
conclusao = "";
_root.errado1_mc._visible = false;
_root.certo1_mc._visible = false;
opseguinte1_btn._visible = false;
_global.op=0;
}
A.1.3.4
Botão “Início”
on (release) {
loadMovie("inicioMinhoca.swf", _root);
}
45
Apêndice A – Código ActionScript
Clipe de filme “pisca1”
A.1.3.5
onClipEvent (load) {
stop();//para nao piscar quando começa o jogo
}
on(press){
_root.sons("clique.wav");
}
on (release) {
gotoAndPlay(1);
if(_root.operador2_txt.length==0){
_root.pisca2.gotoAndStop(1);
}
_global.op=1;
_root.verifica_btn._visible=false;
_root.errado1_mc._visible=false;
_root.conclusao_txt._visible=false;
conclusao="";
_root.bloquearMinhoca(true);
_root.limpar_btn.enabled=true;
}
A.1.3.6
Clipe de filme “pisca2”
onClipEvent (load) {
stop();
}
on(press){
_root.sons("clique.wav");
}
on (release) {
gotoAndPlay(1);
46
Apêndice A – Código ActionScript
if(_root.operador_txt.length==0){
_root.pisca1.gotoAndStop(1);
}
_global.op=2;
_root.verifica_btn._visible=false;
_root.errado1_mc._visible=false;
_root.conclusao_txt._visible=false;
conclusao="";
_root.bloquearMinhoca(true);
_root.limpar_btn.enabled=true;
}
A.1.3.7
Botão “Verifica se acertaste”
on (release) {
var testa1 = arrayContas[i].split(",")[1];
var testa2 = arrayContas[i].split(",")[3];
_root.conclusao_txt._visible=true;
_root.bloquearMinhoca(false);
_root.limpar_btn.enabled=false;
verifica_btn.enabled=false;
if (testa1 == operador && testa2 == operador2) {
conclusao = "Certo";
_root.sons("certo.wav");
errado1_mc._visible = false;
certo1_mc._visible = true;
if (cont<9) {
opseguinte1_btn._visible = true;
cont++;
_root.maca_mc.gotoAndPlay(cont);
}else{
_root.acabou_mc._visible=true;
}
} else {
certo1_mc._visible = false;
47
Apêndice A – Código ActionScript
errado1_mc._visible = true;
opseguinte1_btn._visible = false;
operador_txt._visible=false;
operador2_txt._visible=false;
_root.pisca1.gotoAndStop(1);
_root.pisca2.gotoAndStop(1);
//**mostrar solução errada**
errou1=parseInt(operando1);
errou2=parseInt(operando2);
errou3=parseInt(operando3);
switch(operador){
case "+":
errouMidle=errou1+errou2;
break;
case "-":
errouMidle=errou1-errou2;
break;
case mbchr(247):
errouMidle=errou1/errou2;
break;
case mbchr(215):
errouMidle=errou1*errou2;
break;
}
switch(operador2){
case "+":
erroufinal=errouMidle+errou3;
break;
case "-":
erroufinal=errouMidle-errou3;
break;
case mbchr(247):
erroufinal=errouMidle/errou3;
break;
48
Apêndice A – Código ActionScript
case mbchr(215):
erroufinal=errouMidle*errou3;
break;
}
conclusao="Errado:
"+operando1+operador+operando2+"="+errouMidle+"\n
"+errouMidle+operador2+operando3+"="+erroufinal;
operador="";
operador2="";
_root.sons("errado2.wav");
}
}
A.2 Jogo do Dinheiro
A.2.1 Página Inicial
A.2.1.1 Botão “Iniciar”
on(release){
loadMovie("problemas.swf",_root);
}
A.2.1.2 Botão “Menu”
on(release){
loadMovie("./paginaPrincipal.swf",_root)
}
49
Apêndice A – Código ActionScript
A.2.2 Página dos Problemas
A.2.2.1 Camada de acções
var movie_mc:MovieClip;
var euro:Number;
var display:String;
display="0.00€";
var soma:Number;
var resultado:Number;
var cont:Number;
cont=0;
soma=0;
euro=0;
_root.verifica_btn._visible=false;
_global.colid=0;
var arrayValores:Array=new Array();
arrayValores[0]=25;
arrayValores[1]=13;
arrayValores[2]=80-24;//=56
arrayValores[3]=189/9;//=21
arrayValores[4]=(1.50*8)+(0.75*7);//=17.25
arrayValores[5]=1.45*4;//=5.8
arrayValores[6]=1.2;//2*0.6;
arrayValores[7]=620/0.50;//=1240
arrayValores[8]=16000*0.04;//=640
arrayValores[9]=2300-(2300*0.20);//=1840
//criar array de perguntas
var pergunta:Number;
pergunta=0;
var arrayPerg:Array= new Array();
arrayPerg[0] = this.perg1_mc;
arrayPerg[1] = this.perg2_mc;
50
Apêndice A – Código ActionScript
arrayPerg[2] = this.perg3_mc;
arrayPerg[3] = this.perg5_mc;
arrayPerg[4] = this.perg4_mc;
arrayPerg[5] = this.perg9_mc;
arrayPerg[6] = this.perg10_mc;
arrayPerg[7] = this.perg6_mc;
arrayPerg[8] = this.perg7_mc;
arrayPerg[9] = this.perg8_mc;
for (var i:Number = 1; i <= 9; i++) {
arrayPerg[i]._visible=false;
}
e500_mc.onPress=function() {
cont=0;
this.startDrag();
movie_mc=this;
euro=500;
}
e200_mc.onPress=function() {
cont=0;
this.startDrag();
movie_mc=this;
euro=200;
}
e100_mc.onPress=function() {
cont=0;
this.startDrag();
movie_mc=this;
euro=100;
}
e50_mc.onPress=function() {
cont=0;
this.startDrag();
movie_mc=this;
euro=50;
}
51
Apêndice A – Código ActionScript
e20_mc.onPress=function() {
cont=0;
this.startDrag();
movie_mc=this;
euro=20;
}
e10_mc.onPress=function() {
cont=0;
this.startDrag();
movie_mc=this;
euro=10;
}
e5_mc.onPress=function() {
cont=0;
this.startDrag();
movie_mc=this;
euro=5;
}
e2_mc.onPress=function() {
cont=0;
this.startDrag();
movie_mc=this;
euro=2;
}
e1_mc.onPress=function() {
cont=0;
this.startDrag();
movie_mc=this;
euro=1;
}
e050_mc.onPress=function() {
cont=0;
this.startDrag();
movie_mc=this;
euro=0.5;
}
52
Apêndice A – Código ActionScript
e020_mc.onPress=function() {
cont=0;
this.startDrag();
movie_mc=this;
euro=0.2;
}
e010_mc.onPress=function() {
cont=0;
this.startDrag();
movie_mc=this;
euro=0.1;
}
e005_mc.onPress=function() {
cont=0;
this.startDrag();
movie_mc=this;
euro=0.05;
}
e002_mc.onPress=function() {
cont=0;
this.startDrag();
movie_mc=this;
euro=0.02;
}
e001_mc.onPress=function() {
cont=0;
this.startDrag();
movie_mc=this;
euro=0.01;
}
function detectaColisao(){
if(maqregist_mc.hitTest(_root.movie_mc._x,_root.movie_mc._y,tru
e)){
_root.verifica_btn._visible=true;
_root.maqregist_mc.gotoAndStop(2);
if(cont==0){
soma+=euro;
53
Apêndice A – Código ActionScript
display=soma+"€";
cont++;
}
_global.colid=1;
}else{
_root.maqregist_mc.gotoAndStop(1);
_global.colid=0;
}
}
setInterval(detectaColisao,10);
function sons(s:String){
var som:Sound= new Sound();
som.attachSound(s);
som.start();
}
A.2.2.2 Botão “Início”
on(release){
loadMovie("inicioProblemas.swf",_root);
}
A.2.2.3 Botão “Corrigir”
on (release) {
display="0.00€";
resultado="";
soma=0;
}
54
Apêndice A – Código ActionScript
A.2.2.4 Botão “Verifica se acertaste”
on (release) {
if(_root.arrayValores[pergunta]==_root.soma){
_root.resultado_txt.textColor=0x006600;
_root.resultado_txt.text="Acertaste\npassa
seguinte.";
à\npergunta\n
_root.corrigir_btn._visible=false;
_root.sons("certo.wav");
}else{
if(_root.soma > _root.arrayValores[pergunta]){
_root.resultado_txt.textColor=0xFF0000;
_root.resultado_txt.text="Não
clica\nem corrigir e\ntenta outra\nvez.";
temos\ntrocos
_root.corrigir_btn._visible=true;
_root.sons("errado2.wav");
}else{
_root.resultado_txt.textColor=0xFF0000;
_root.resultado_txt.text="O
não\nchega, tens\nque dar mais\ndinheiro.";
dinheiro\nque
_root.corrigir_btn._visible=true;
_root.sons("errado2.wav");
}
}
}
A.2.2.5 Botão “Problema seguinte”
on (release) {
_root.verifica_btn._visible=false;
if(pergunta<9){
display="0.00€";
resultado="";
soma=0;
arrayPerg[pergunta]._visible=false;
pergunta++;
arrayPerg[pergunta]._visible=true;
55
deste
Apêndice A – Código ActionScript
_root.corrigir_btn._visible=true;
}else{
_root.resultado_txt.textColor=0xFF6600;
_root.resultado_txt.text="Chegaste\nao fim da\n sequência
de \n problemas";
arrayPerg[pergunta]._visible=false;
_root.verifica_btn._visible=false;
pergunta=-1;
}
}
A.2.2.6 Botão “Problema anterior”
on (release) {
_root.verifica_btn._visible=false;
if(pergunta>0){
display="0.00€";
resultado="";
soma=0;
arrayPerg[pergunta]._visible=false;
pergunta--;
arrayPerg[pergunta]._visible=true;
_root.corrigir_btn._visible=true;
}else{
arrayPerg[pergunta]._visible=false;
_root.verifica_btn._visible=false;
pergunta=10;
}
}
A.2.2.7 Clipe de filme “Nota de 500 €”
on(release){
this.stopDrag();
if(_global.colid==1){
56
Apêndice A – Código ActionScript
this.gotoAndPlay(2);//efeito
proveniente do gráfico do movie clip
da
nota
quando
acertou
nota
quando
acertou
nota
quando
acertou
_root.sons("largar nota2.wav");
}else{
this._x=900;
this._y=55;
}
}
on(press){
_root.sons("notas lev.wav");
}
A.2.2.8 Clipe de filme “Nota de 200 €”
on(release){
this.stopDrag();
if(_global.colid==1){
this.gotoAndPlay(2);//efeito
proveniente do gráfico do movie clip
da
_root.sons("largar nota2.wav");
}else{
this._x=900;
this._y=82;
}
}
on(press){
_root.sons("notas lev.wav");
}
A.2.2.9 Clipe de filme “Nota de 100 €”
on(release){
this.stopDrag();
if(_global.colid==1){
this.gotoAndPlay(2);//efeito
proveniente do gráfico do movie clip
57
da
Apêndice A – Código ActionScript
_root.sons("largar nota2.wav");
}else{
this._x=900;
this._y=112;
}
}
on(press){
_root.sons("notas lev.wav");
}
A.2.2.10 Clipe de filme “Nota de 50 €”
on(release){
this.stopDrag();
if(_global.colid==1){
this.gotoAndPlay(2);//efeito
proveniente do gráfico do movie clip
da
nota
quando
acertou
nota
quando
acertou
_root.sons("largar nota2.wav");
}else{
this._x=900;
this._y=140;
}
}
on(press){
_root.sons("notas lev.wav");
}
A.2.2.11 Clipe de filme “Nota de 20 €”
on(release){
this.stopDrag();
if(_global.colid==1){
this.gotoAndPlay(2);//efeito
proveniente do gráfico do movie clip
da
_root.sons("largar nota2.wav");
}else{
58
Apêndice A – Código ActionScript
this._x=837;
this._y=135;
}
}
on(press){
_root.sons("notas lev.wav");
}
A.2.2.12 Clipe de filme “Nota de 10 €”
on(release){
this.stopDrag();
if(_global.colid==1){
this.gotoAndPlay(2);//efeito
proveniente do gráfico do movie clip
da
nota
quando
acertou
nota
quando
acertou
_root.sons("largar nota2.wav");
}else{
this._x=818;
this._y=155;
}
}
on(press){
_root.sons("notas lev.wav");
}
A.2.2.13 Clipe de filme “Nota de 5 €”
on(release){
this.stopDrag();
if(_global.colid==1){
this.gotoAndPlay(2);//efeito
proveniente do gráfico do movie clip
da
_root.sons("largar nota2.wav");
}else{
this._x=817;
59
Apêndice A – Código ActionScript
this._y=185;
}
}
on(press){
_root.sons("notas lev.wav");
}
A.2.2.14 Clipe de filme “Moeda de 2 €”
on(release){
this.stopDrag();
if(_global.colid==1){
this.gotoAndPlay(2);//efeito
proveniente do gráfico do movie clip
da
nota
quando
acertou
nota
quando
acertou
_root.sons("largar nota2.wav");
}else{
this._x=852;
this._y=320;
}
}
on(press){
_root.sons("notas lev.wav");
}
A.2.2.15 Clipe de filme “Moeda de 1 €”
on(release){
this.stopDrag();
if(_global.colid==1){
this.gotoAndPlay(2);//efeito
proveniente do gráfico do movie clip
da
_root.sons("largar nota2.wav");
}else{
this._x=945;
this._y=318;
}
60
Apêndice A – Código ActionScript
}
on(press){
_root.sons("notas lev.wav");
}
A.2.2.16 Clipe de filme “Moeda de 50 cent.”
on(release){
this.stopDrag();
if(_global.colid==1){
this.gotoAndPlay(2);//efeito
proveniente do gráfico do movie clip
da
nota
quando
acertou
nota
quando
acertou
_root.sons("largar nota2.wav");
}else{
this._x=850;
this._y=410;
}
}
on(press){
_root.sons("notas lev.wav");
}
A.2.2.17 Clipe de filme “Moeda de 20 cent.”
on(release){
this.stopDrag();
if(_global.colid==1){
this.gotoAndPlay(2);//efeito
proveniente do gráfico do movie clip
da
_root.sons("largar nota2.wav");
}else{
this._x=945;
this._y=410;
}
}
61
Apêndice A – Código ActionScript
on(press){
_root.sons("notas lev.wav");
}
A.2.2.18 Clipe de filme “Moeda de 10 cent.”
on(release){
this.stopDrag();
if(_global.colid==1){
this.gotoAndPlay(2);//efeito
proveniente do gráfico do movie clip
da
nota
quando
acertou
nota
quando
acertou
_root.sons("largar nota2.wav");
}else{
this._x=850;
this._y=504;
}
}
on(press){
_root.sons("notas lev.wav");
}
A.2.2.19 Clipe de filme “Moeda de 5 cent.”
on(release){
this.stopDrag();
if(_global.colid==1){
this.gotoAndPlay(2);//efeito
proveniente do gráfico do movie clip
da
_root.sons("largar nota2.wav");
}else{
this._x=945;
this._y=500;
}
}
62
Apêndice A – Código ActionScript
on(press){
_root.sons("notas lev.wav");
}
A.2.2.20 Clipe de filme “Moeda de 2 cent.”
on(release){
this.stopDrag();
if(_global.colid==1){
this.gotoAndPlay(2);//efeito
proveniente do gráfico do movie clip
da
nota
quando
acertou
nota
quando
acertou
_root.sons("largar nota2.wav");
}else{
this._x=848;
this._y=585;
}
}
on(press){
_root.sons("notas lev.wav");
}
A.2.2.21 Clipe de filme “Moeda de 1 cent.”
on(release){
this.stopDrag();
if(_global.colid==1){
this.gotoAndPlay(2);//efeito
proveniente do gráfico do movie clip
da
_root.sons("largar nota2.wav");
}else{
this._x=944;
this._y=584;
}
}
63
Apêndice A – Código ActionScript
on(press){
_root.sons("notas lev.wav");
}
A.3 Jogo dos Múltiplos
A.3.1 Página Inicial
A.3.1.1 Botão “Iniciar”
on(release){
loadMovie("jogoPeixe.swf",_root);
}
A.3.1.2 Botão “Menu”
on(release){
loadMovie("./paginaPrincipal.swf",_root)
}
A.3.2 Página das perguntas
A.3.2.1 Camada de acções
_root.balaoRes_mc._visible=false;
_root.acabou_mc._visible=false;
_root.next_btn._visible=false;
var expressoes:Array=new Array();
expressoes[0]=_root.prg1_mc;
expressoes[1]=_root.prg2_mc;
64
Apêndice A – Código ActionScript
expressoes[2]=_root.prg3_mc;
expressoes[3]=_root.prg4_mc;
expressoes[4]=_root.prg5_mc;
expressoes[5]=_root.prg6_mc;
expressoes[6]=_root.prg7_mc;
expressoes[7]=_root.prg8_mc;
expressoes[8]=_root.prg9_mc;
expressoes[9]=_root.prg10_mc;
expressoes[10]=_root.prg11_mc;
expressoes[11]=_root.prg12_mc;
expressoes[12]=_root.prg13_mc;
expressoes[13]=_root.prg14_mc;
expressoes[14]=_root.prg15_mc;
expressoes[15]=_root.prg16_mc;
expressoes[16]=_root.prg17_mc;
expressoes[17]=_root.prg18_mc;
expressoes[18]=_root.prg19_mc;
expressoes[19]=_root.prg20_mc;
expressoes[20]=_root.prg21_mc;
expressoes[21]=_root.prg22_mc;
expressoes[22]=_root.prg23_mc;
expressoes[23]=_root.prg24_mc;
expressoes[24]=_root.prg25_mc;
expressoes[25]=_root.prg26_mc;
expressoes[26]=_root.prg27_mc;
expressoes[27]=_root.prg28_mc;
expressoes[28]=_root.prg29_mc;
expressoes[29]=_root.prg30_mc;
expressoes[30]=_root.prg31_mc;
expressoes[31]=_root.prg32_mc;
expressoes[32]=_root.prg33_mc;
var valores:Array=new Array();
valores[0]=false;
valores[1]=true;
valores[2]=true;
valores[3]=false;
valores[4]=true;
65
Apêndice A – Código ActionScript
valores[5]=false;
valores[6]=true;
valores[7]=false;
valores[8]=true;
valores[9]=true;
valores[10]=false;
valores[11]=true;
valores[12]=false;
valores[13]=true;
valores[14]=false;
valores[15]=true;
valores[16]=false;
valores[17]=true;
valores[18]=false;
valores[19]=true;
valores[20]=false;
valores[21]=true;
valores[22]=false;
valores[23]=true;
valores[24]=false;
valores[25]=true;
valores[26]=false;
valores[27]=true;
valores[28]=false;
valores[29]=true;
valores[30]=false;
valores[31]=true;
valores[32]=false;
var inc:Number;
inc=1;
var resultado:String;
resultado="";
for (var i:Number = 0; i <= 32; i++) {
expressoes[i]._visible=false;
}
var pergunta:Number=0;
66
Apêndice A – Código ActionScript
//gerar aleatóriamente a primeira pergunta
var aux:Number=0;
function gerarAleatorio(){
//para nao repetir as operações
pergunta=random(33);
while (pergunta == aux) {
pergunta=random(33);
}
aux = pergunta;
}
gerarAleatorio();
expressoes[pergunta]._visible=true;
function sons(s:String){
var som:Sound= new Sound();
som.attachSound(s);
som.start();
}
A.3.2.2 Botão “Início”
on(release){
loadMovie("inicioPeixe.swf",_root);
}
A.3.2.3 Botão “Verdadeiro”
on(release){
var escolha:Boolean=true;
_root.resultado_txt._visible=true;
_root.balaoRes_mc._visible=true;
if(escolha==valores[pergunta]){
67
Apêndice A – Código ActionScript
_root.resultado_txt.textColor=0x0099CC;
_root.resultado_txt.text="Certo, passa para a\n pergunta
seguinte";
_root.sons("certo.wav");
_root.true_btn.enabled=false;
_root.false_btn.enabled=false;
inc++;
_root.aquariomc_mc.gotoAndStop(inc);
if(inc<=12){
_root.next_btn._visible=true;
}else{
_root.expressoes[pergunta]._visible=false;
_root.ou_mc._visible=false;
_root.true_btn._visible=false;
_root.false_btn._visible=false;
_root.resultado_txt._visible=false;
_root.acabou_mc._visible=true;
_root.balaoRes_mc._visible=false;
}
}else{
_root.resultado_txt.textColor=0xFF0000;
_root.resultado_txt.text="Errado, tenta\noutra vez";
_root.sons("errado2.wav");
}
}
A.3.2.4 Botão “Falso”
on(release){
var escolha:Boolean=false;
_root.resultado_txt._visible=true;
_root.balaoRes_mc._visible=true;
if(escolha==valores[pergunta]){
_root.resultado_txt.textColor=0x0099CC;
_root.resultado_txt.text="Certo, passa para a\n pergunta
seguinte";
_root.sons("certo.wav");
68
Apêndice A – Código ActionScript
_root.true_btn.enabled=false;
_root.false_btn.enabled=false;
inc++;
_root.aquariomc_mc.gotoAndStop(inc);
if(inc<=12){
_root.next_btn._visible=true;
}else{
_root.expressoes[pergunta]._visible=false;
_root.ou_mc._visible=false;
_root.true_btn._visible=false;
_root.false_btn._visible=false;
_root.resultado_txt._visible=false;
_root.acabou_mc._visible=true;
_root.balaoRes_mc._visible=false;
}
}else{
_root.resultado_txt.textColor=0xFF0000;
_root.resultado_txt.text="Errado, tenta\noutra vez";
_root.sons("errado2.wav");
}
}
A.3.2.5 Botão “Seguinte”
on(release){
_root.next_btn._visible=false;
_root.balaoRes_mc._visible=false;
_root.true_btn.enabled=true;
_root.false_btn.enabled=true;
if(inc<=12){
expressoes[pergunta]._visible=false;
//gerar aleatoriamente a pergunta seguinte
_root.gerarAleatorio();
expressoes[pergunta]._visible=true;
_root.resultado_txt._visible=false;
}else{
_root.next_btn._visible=false;
69
Apêndice A – Código ActionScript
}
}
A.4 Jogo das Fracções
A.4.1 Página Inicial
A.4.1.1 Botão “Menu”
on(release){
loadMovie("./paginaPrincipal.swf",_root)
}
A.4.1.2 Botão “Fácil”
on (release) {
loadMovie("pizzaFacil.swf", _root);
}
A.4.1.3 Botão “Médio”
on (release) {
loadMovie("pizzaMedio.swf", _root);
}
A.4.1.4 Botão “Difícil”
on (release) {
loadMovie("pizzaDificil.swf", _root);
}
70
Apêndice A – Código ActionScript
A.4.2 Fácil
A.4.2.1 Camada de acções
numerador_txt._visible=false;
denominador_txt._visible=false;
var contBarriga:Number=2;
var contled:Number=1;
var contAnim1:Number=0;
var aux:Number=0;
var nmr:Number=0;
//gerar aleatóriamente a primeira pergunta
gerarAleatorio();
_root.piza_mc.gotoAndStop(nmr);
_root.verifica_mc.gotoAndStop(1);
_root.next_mc.gotoAndStop(1);
_root.corrig_mc.gotoAndStop(1);
_root.corrig_mc._visible=false;
var numerador:String;
var denominador:String;
var resultado:String;
resultado="";
numerador="";
denominador="";
_global.op=0;
var valorPizza:Number=0;
_root.verifica_mc.enabled=false;
_root.next_mc.enabled=false;
71
Apêndice A – Código ActionScript
function gerarAleatorio(){
//para nao repetir as operações
nmr=random(9);
while (nmr == aux || nmr==0) {
nmr=random(9);
}
aux = nmr;
}
function sons(s:String){
var som:Sound= new Sound();
som.attachSound(s);
som.start();
}
//Função utilizada nos botoes dos numeros para inserir o numero nos
quadrados
function botaoNumero(c:String){
if (op==1) {
numerador_txt._visible = true;
numerador =c;
_root.pisca1_mc.gotoAndPlay(10);
_root.pisca1_mc.stop();
}else if (op==2) {
denominador_txt._visible = true;
denominador = c;
_root.pisca2_mc.gotoAndPlay(10);
_root.pisca2_mc.stop();
}
if (numerador.length!= 0 && denominador.length != 0 && op !=0){
//o op !=0 é para não deixar o verifica piscar depois de acertar ou
errar
_root.verifica_mc.enabled=true;
_root.verifica_mc.gotoAndPlay(1);
}
}
72
Apêndice A – Código ActionScript
A.4.2.2 Botão “Início”
on (release) {
loadMovie("inicioPizza.swf", _root);
}
A.4.2.3 Clipe de filme “pisca1”
onClipEvent (load) {
stop();
}
on (release) {
if(_root.denominador_txt.length==0){
_root.pisca2_mc.gotoAndStop(1);
}
gotoAndPlay(1);
_global.op=1;
_root.resultado="";//para se errar ao clicar no quadrado para
inserir de novo apagar o que aparece no resultado
}
on(press){
//função de reprodução do som passado com parametro
_root.sons("clique.wav");
}
A.4.2.4 Clipe de filme “pisca2”
onClipEvent (load) {
stop();
}
on (release) {
gotoAndPlay(1);
if(_root.numerador_txt.length==0){
_root.pisca1_mc.gotoAndStop(1);
73
Apêndice A – Código ActionScript
}
_global.op=2;
_root.resultado="";
}
on(press){
//função de reprodução do som passado com parametro
_root.sons("clique.wav");
}
A.4.2.5 Clipe de filme “Corrigir”
on(release){
_root.divis_mc._visible=true;
_root.resultado="";
_root.pisca1_mc._visible=true;
_root.pisca2_mc._visible=true;
_root.corrig_mc._visible=false;
}
on(press){
//função de reprodução do som passado com parametro
_root.sons("beepTecla.wav");
}
A.4.2.6 Botão “1,2,3,4,5,6,7,8,9,0”
on(release){//evento do botão número 1
_root.botaoNumero("1");
}
Nota: Este segmento de código é semelhante para todos os botões do telemóvel, modificando
somente na função botaoNumero(“[número do botão]”) a string que contém o número
correspondente ao botão.
74
Apêndice A – Código ActionScript
A.4.2.7 Clipe de filme “”
on(press){
//função de reprodução do som passado com parametro
_root.sons("beepTecla.wav");
}
on (release) {
_root.divis_mc._visible=false;
_root.pisca1_mc._visible=false;
_root.pisca2_mc._visible=false;
_root.denominador_txt._visible=false;
_root.numerador_txt._visible=false;
_root.verifica_mc.enabled=false;
_root.verifica_mc.gotoAndStop(1);
var res=_root.numerador/_root.denominador;
if(res==_root.valorPizza){
_root.resultado="Acertou\nPasse à fracção\nseguinte";
_root.next_mc.enabled=true;
_root.next_mc.gotoAndPlay(1);
_global.op=0;//para
caso clique em algum numero
não
deixar
piscar
o
botao
acertar
_root.sons("toketlmCerto.wav");
//**animacoes**
_root.contled++;//incrementar os leds
_root.led_mc.gotoAndStop(_root.contled);
if(_root.contBarriga==2){//incrementar
a
comida
barriga
_root.barrig_mc.gotoAndPlay(_root.contBarriga);
_root.contBarriga=41;
}else{
_root.barrig_mc.gotoAndPlay(_root.contBarriga);
_root.contBarriga+=38;
}
_root.animacao_mc.gotoAndPlay(2);
75
da
Apêndice A – Código ActionScript
//**********
}else{
_root.resultado="ERROU\n"+_root.numerador+mbchr(247)+_root.deno
minador+"="+res+"\n tente outra vez";
_root.pisca1_mc.gotoAndStop(1);
_root.pisca2_mc.gotoAndStop(1);
_root.numerador="";
_root.denominador="";
_global.op=0;//para não inserir no quadrado seleccionado
anteriormente sem clicar
_root.corrig_mc._visible=true;
_root.corrig_mc.gotoAndPlay(1);
_root.next_mc.enabled=false;
_root.sons("errado2.wav");
}
}
A.4.2.8 Clipe de filme “”
on(press){
//função de reprodução do som passado com parametro
_root.sons("beepTecla.wav");
}
on (release) {
_root.next_mc.enabled=false;
_root.next_mc.gotoAndStop(1);
if(_root.contled <= 19){
_root.gerarAleatorio();
_root.piza_mc.gotoAndStop(_root.nmr);
_root.pisca1_mc.gotoAndStop(1);
_root.pisca2_mc.gotoAndStop(1);
_root.resultado="";
_root.denominador_txt._visible=false;
_root.numerador_txt._visible=false;
_root.numerador="";
76
Apêndice A – Código ActionScript
_root.denominador="";
_global.op=0;
_root.divis_mc._visible=true;
_root.pisca1_mc._visible=true;
_root.pisca2_mc._visible=true;
_root.corrig_mc._visible=false;
}else{
_root.piza_mc._visible=false;
_root.denominador_txt._visible=false;
_root.numerador_txt._visible=false;
_root.divis_mc._visible=false;
_root.pisca1_mc._visible=false;
_root.pisca2_mc._visible=false;
_root.resultado="Parabéns\nAcabaste\no jogo";
_root.num0_btn.enabled=false;
_root.num1_btn.enabled=false;
_root.num2_btn.enabled=false;
_root.num3_btn.enabled=false;
_root.num4_btn.enabled=false;
_root.num5_btn.enabled=false;
_root.num6_btn.enabled=false;
_root.num7_btn.enabled=false;
_root.num8_btn.enabled=false;
_root.num9_btn.enabled=false;
_root.verifica_mc.enabled=false;
}
}
A.4.3 Médio
A.4.3.1 Camada de acções
var valorPizza:Number=0;
77
Apêndice A – Código ActionScript
_global.op=0;
numerador_txt._visible=false;
denominador_txt._visible=false;
_root.piza1_mc._visible=false;
_root.piza2_mc._visible=false;
_root.piza3_mc._visible=false;
var contBarriga:Number=2;
var contled:Number=1;
var contAnim1:Number=0;
var nmrs1:Array=new Array(0,1,0.75,0.5,0.25);//os zeros nao vao
servir de nada apenas estao so para que os numeros comecem no indice
1
var nmrs2:Array=new Array(0,1,0.833,0.667,0.5,0.333,0.167);
var
);
nmrs3:Array=new
Array(0,1,0.875,0.75,0.625,0.5,0.375,0.25,0.125
var nmr:Number=0;
var aux:Number=0;
var numPizza:Number=gerarAleatorio(3);
if(numPizza==0){
_root.piza1_mc._visible=true;
nmr=random(5);
if(nmr==0){
nmr=1;
_root.piza1_mc.gotoAndStop(nmr);
valorPizza=nmrs1[nmr];
}else{
_root.piza1_mc.gotoAndStop(nmr);
valorPizza=nmrs1[nmr];
}
}else if(numPizza==1){
_root.piza2_mc._visible=true;
nmr=random(7);
if(nmr==0){
78
Apêndice A – Código ActionScript
nmr=1;
_root.piza2_mc.gotoAndStop(nmr);
valorPizza=nmrs2[nmr];
}else{
_root.piza2_mc.gotoAndStop(nmr);
valorPizza=nmrs2[nmr];
}
}else if(numPizza==2){
_root.piza3_mc._visible=true;
nmr=random(9);
if(nmr==0){
nmr=1;
_root.piza3_mc.gotoAndStop(nmr);
valorPizza=nmrs3[nmr];
}else{
_root.piza3_mc.gotoAndStop(nmr);
valorPizza=nmrs3[nmr];
}
}
_root.verifica_mc.gotoAndStop(1);
_root.next_mc.gotoAndStop(1);
_root.corrig_mc.gotoAndStop(1);
_root.corrig_mc._visible=false;
var numerador:String;
var denominador:String;
var resultado:String;
resultado="";
numerador="";
denominador="";
_root.verifica_mc.enabled=false;
_root.next_mc.enabled=false;
function gerarAleatorio(p:Number):Number{
//para nao repetir as operações
var questao:Number;
questao=random(p);
79
Apêndice A – Código ActionScript
while (questao == aux) {
questao=random(p);
}
aux = questao;
return questao;
}
function sons(s:String){
var som:Sound= new Sound();
som.attachSound(s);
som.start();
}
//Função utilizada nos botoes dos numeros para inserir o numero nos
quadrados
function botaoNumero(c:String){
if (op==1) {
numerador_txt._visible = true;
numerador = c;
_root.pisca1_mc.gotoAndPlay(10);
_root.pisca1_mc.stop();
} else if (op==2) {
denominador_txt._visible = true;
denominador = c;
_root.pisca2_mc.gotoAndPlay(10);
_root.pisca2_mc.stop();
}
if (numerador.length!= 0 && denominador.length != 0 && op !=0){
//o op !=0 é para não deixar o verifica piscar depois de acertar ou
errar
_root.verifica_mc.enabled=true;
_root.verifica_mc.gotoAndPlay(1);
}
}
80
Apêndice A – Código ActionScript
A.4.3.2 Botão “Início”
on (release) {
loadMovie("inicioPizza.swf", _root);
}
A.4.3.3 Clipe de filme “pisca1”
onClipEvent (load) {
stop();
}
on(press){
_root.sons("clique.wav");
}
on (release) {
if(_root.denominador_txt.length==0){
_root.pisca2_mc.gotoAndStop(1);
}
gotoAndPlay(1);
_global.op=1;
_root.resultado="";//para se errar ao clicar no quadrado para
inserir de novo apagar o que aparece no resultado
A.4.3.4 Clipe de filme “pisca2”
onClipEvent (load) {
stop();
}
on(press){
_root.sons("clique.wav");
}
on (release) {
gotoAndPlay(1);
if(_root.numerador_txt.length==0){
_root.pisca1_mc.gotoAndStop(1);
81
Apêndice A – Código ActionScript
}
_global.op=2;
_root.resultado="";
}
A.4.3.5 Clipe de filme “Corrigir”
on(press){
//função de reprodução do som passado como parametro
_root.sons("beepTecla.wav");
}
on(release){
_root.divis_mc._visible=true;
_root.resultado="";
_root.pisca1_mc._visible=true;
_root.pisca2_mc._visible=true;
_root.corrig_mc._visible=false;
}
A.4.3.6 Botão “1,2,3,4,5,6,7,8,9,0”
on(release){//evento do botão número 1
_root.botaoNumero("1");
}
Nota: Este segmento de código é semelhante para todos os botões do telemóvel, modificando
somente na função botaoNumero(“[número do botão]”) a string que contém o número
correspondente ao botão.
A.4.3.7 Clipe de filme “”
on(press){
//função de reprodução do som passado como parametro
_root.sons("beepTecla.wav");
}
82
Apêndice A – Código ActionScript
on (release) {
_root.divis_mc._visible=false;
_root.pisca1_mc._visible=false;
_root.pisca2_mc._visible=false;
_root.denominador_txt._visible=false;
_root.numerador_txt._visible=false;
_root.verifica_mc.enabled=false;
_root.verifica_mc.gotoAndStop(1);
var res=_root.numerador/_root.denominador;
//retirar casas decimais para ficar so com3 casas decimais,
para cumprir a igualdade a abaixo
res*=1000;
res= Math.round(res);
res/=1000;
//********
if(res==_root.valorPizza){
_root.resultado="Acertou\nPasse à fracção\nseguinte";
_root.sons("toketlmCerto.wav");
_root.next_mc.enabled=true;
_root.next_mc.gotoAndPlay(1);
_global.op=0;//para
caso clique em algum numero
não
deixar
piscar
o
botao
acertar
//**animacoes**
_root.contled++;//incrementar os leds
_root.led_mc.gotoAndStop(_root.contled);
if(_root.contBarriga==2){//incrementar
a
comida
barriga
_root.barrig_mc.gotoAndPlay(_root.contBarriga);
_root.contBarriga=41;
}else{
_root.barrig_mc.gotoAndPlay(_root.contBarriga);
_root.contBarriga+=38;
}
_root.animacao_mc.gotoAndPlay(2);
//**********
83
da
Apêndice A – Código ActionScript
}else{
_root.resultado="ERROU\n"+_root.numerador+mbchr(247)+_root.deno
minador+"="+res+"\n tente outra vez";
_root.sons("errado2.wav");
_root.pisca1_mc.gotoAndStop(1);
_root.pisca2_mc.gotoAndStop(1);
_root.numerador="";
_root.denominador="";
_global.op=0;//para não inserir no quadrado seleccionado
anteriormente sem clicar
_root.corrig_mc._visible=true;
_root.corrig_mc.gotoAndPlay(1);
_root.next_mc.enabled=false;
}
}
A.4.3.8 Clipe de filme “”
on(press){
//função de reprodução do som passado como parametro
_root.sons("beepTecla.wav");
}
on (release) {
_root.next_mc.enabled=false;
_root.next_mc.gotoAndStop(1);
if(_root.contled <= 19){
_root.numPizza=_root.gerarAleatorio(3);
if(_root.numPizza==0){
_root.piza1_mc._visible=true;
_root.piza2_mc._visible=false;
_root.piza3_mc._visible=false;
_root.nmr=random(5);
if(_root.nmr==0){
_root.nmr=1;
_root.piza1_mc.gotoAndStop(_root.nmr);
_root.valorPizza=_root.nmrs1[_root.nmr];
}else{
84
Apêndice A – Código ActionScript
_root.piza1_mc.gotoAndStop(_root.nmr);
_root.valorPizza=_root.nmrs1[_root.nmr];
}
}else if(_root.numPizza==1){
_root.piza1_mc._visible=false;
_root.piza3_mc._visible=false;
_root.piza2_mc._visible=true;
_root.nmr=random(7);
if(_root.nmr==0){
_root.nmr=1;
_root.piza2_mc.gotoAndStop(_root.nmr);
_root.valorPizza=_root.nmrs2[_root.nmr];
}else{
_root.piza2_mc.gotoAndStop(_root.nmr);
_root.valorPizza=_root.nmrs2[_root.nmr];
}
}else{
_root.piza1_mc._visible=false;
_root.piza2_mc._visible=false;
_root.piza3_mc._visible=true;
_root.nmr=random(9);
if(_root.nmr==0){
_root.nmr=1;
_root.piza3_mc.gotoAndStop(_root.nmr);
_root.valorPizza=_root.nmrs3[_root.nmr];
}else{
_root.piza3_mc.gotoAndStop(_root.nmr);
_root.valorPizza=_root.nmrs3[_root.nmr];
}
}
_root.pisca1_mc.gotoAndStop(1);
_root.pisca2_mc.gotoAndStop(1);
_root.resultado="";
_root.denominador_txt._visible=false;
_root.numerador_txt._visible=false;
_root.numerador="";
_root.denominador="";
85
Apêndice A – Código ActionScript
_global.op=0;
_root.divis_mc._visible=true;
_root.pisca1_mc._visible=true;
_root.pisca2_mc._visible=true;
_root.corrig_mc._visible=false;
}else{
_root.piza1_mc._visible=false;
_root.piza2_mc._visible=false;
_root.piza3_mc._visible=false;
_root.denominador_txt._visible=false;
_root.numerador_txt._visible=false;
_root.divis_mc._visible=false;
_root.pisca1_mc._visible=false;
_root.pisca2_mc._visible=false;
_root.resultado="Parabéns\nAcabaste\no jogo";
_root.num0_btn.enabled=false;
_root.num1_btn.enabled=false;
_root.num2_btn.enabled=false;
_root.num3_btn.enabled=false;
_root.num4_btn.enabled=false;
_root.num5_btn.enabled=false;
_root.num6_btn.enabled=false;
_root.num7_btn.enabled=false;
_root.num8_btn.enabled=false;
_root.num9_btn.enabled=false;
_root.verifica_mc.enabled=false;
}
}
A.4.4 Difícil
A.4.4.1 Camada de acções
numerador_txt._visible=false;
86
Apêndice A – Código ActionScript
denominador_txt._visible=false;
var contBarriga:Number=2;
var contled:Number=1;
var contAnim1:Number=0;
var aux1:Number=0;
var aux2:Number=0;
var nmr:Number=gerarAleatorio1(9);
var nmr2:Number=gerarAleatorio2(9);
_root.piza_mc.gotoAndStop(nmr);
_root.piza2_mc.gotoAndStop(nmr2);
_root.verifica_mc.gotoAndStop(1);
_root.next_mc.gotoAndStop(1);
_root.corrig_mc.gotoAndStop(1);
_root.corrig_mc._visible=false;
var numerador:String;
var denominador:String;
var resultado:String;
resultado="";
numerador="";
denominador="";
_global.op=0;
var valorPizza:Number=0;
var valorPizza2:Number=0;
_root.verifica_mc.enabled=false;
_root.next_mc.enabled=false;
function sons(s:String){
var som:Sound= new Sound();
som.attachSound(s);
som.start();
}
87
Apêndice A – Código ActionScript
function gerarAleatorio1(p:Number):Number{
//para nao repetir as operações
var questao:Number;
questao=random(p);
while (questao == aux1 || questao==0) {
questao=random(p);
}
aux1 = questao;
return questao;
}
function gerarAleatorio2(p:Number):Number{
var questao:Number;
questao=random(p);
while (questao == aux2 || questao==0) {
questao=random(p);
}
aux2 = questao;
return questao;
}
//Função utilizada nos botoes dos numeros para inserir o numero nos
quadrados
function botaoNumero(c:String){
if (op==1) {
if (numerador.length <2){
numerador_txt._visible = true;
numerador +=c;
_root.pisca1_mc.gotoAndPlay(10);
_root.pisca1_mc.stop();
}
} else if (op==2) {
if(denominador.length <2){
denominador_txt._visible = true;
denominador += c;
_root.pisca2_mc.gotoAndPlay(10);
_root.pisca2_mc.stop();
}
88
Apêndice A – Código ActionScript
}
if (numerador.length!= 0 && denominador.length != 0 && op !=0){
//o op !=0 é para não deixar o verifica piscar depois de acertar ou
errar
_root.verifica_mc.enabled=true;
_root.verifica_mc.gotoAndPlay(1);
}
}
A.4.4.2 Botão “Início”
on (release) {
loadMovie("inicioPizza.swf", _root);
}
A.4.4.3 Clipe de filme “pisca1”
onClipEvent (load) {
stop();
}
on(press){
_root.sons("clique.wav");
}
on (release) {
if(_root.denominador_txt.length==0){
_root.pisca2_mc.gotoAndStop(1);
}
gotoAndPlay(1);
_global.op=1;
_root.resultado="";//para se errar ao clicar no quadrado para
inserir de novo apagar o que aparece no resultado
}
89
Apêndice A – Código ActionScript
A.4.4.4 Clipe de filme “pisca2”
onClipEvent (load) {
stop();
}
on(press){
_root.sons("clique.wav");
}
on (release) {
gotoAndPlay(1);
if(_root.numerador_txt.length==0){
_root.pisca1_mc.gotoAndStop(1);
}
_global.op=2;
_root.resultado="";
}
A.4.4.5 Clipe de filme “Corrigir”
on(press){
_root.sons("beepTecla.wav");
}
on(release){
_root.divis_mc._visible=true;
_root.resultado="";
_root.pisca1_mc._visible=true;
_root.pisca2_mc._visible=true;
_root.corrig_mc._visible=false;
}
A.4.4.6 Botão “1,2,3,4,5,6,7,8,9,0”
on(release){//evento do botão número 1
_root.botaoNumero("1");
}
90
Apêndice A – Código ActionScript
Nota: Este segmento de código é semelhante para todos os botões do telemóvel, modificando
somente na função botaoNumero(“[número do botão]”) a string que contém o número
correspondente ao botão.
A.4.4.7 Clipe de filme “”
on(press){
_root.sons("beepTecla.wav");
}
on (release) {
_root.divis_mc._visible=false;
_root.pisca1_mc._visible=false;
_root.pisca2_mc._visible=false;
_root.denominador_txt._visible=false;
_root.numerador_txt._visible=false;
_root.verifica_mc.enabled=false;
_root.verifica_mc.gotoAndStop(1);
var res=_root.numerador/_root.denominador;
var vp=_root.valorPizza+_root.valorPizza2;
if(res==vp){
_root.resultado="Acertou\nPasse à fracção\nseguinte";
_root.sons("toketlmCerto.wav");
_root.next_mc.enabled=true;
_root.next_mc.gotoAndPlay(1);
_global.op=0;//para
caso clique em algum numero
não
deixar
piscar
o
botao
acertar
//**animacoes**
_root.contled++;//incrementar os leds
_root.led_mc.gotoAndStop(_root.contled);
if(_root.contBarriga==2){//incrementar
a
comida
barriga
_root.barrig_mc.gotoAndPlay(_root.contBarriga);
_root.contBarriga=41;
}else{
91
da
Apêndice A – Código ActionScript
_root.barrig_mc.gotoAndPlay(_root.contBarriga);
_root.contBarriga+=38;
}
if(_root.contAnim1==0){//fazer a animação do troca tintas
a comer as fatias
_root.contAnim1++;
_root.animacao_mc.gotoAndPlay(2);
}else if(_root.contAnim1==1){
_root.animacao_mc.gotoAndPlay(31);
_root.contAnim1=0;
}
//**********
}else{
_root.resultado="ERROU\n"+_root.numerador+mbchr(247)+_root.deno
minador+"="+res+"\n tente outra vez";
_root.sons("errado2.wav");
_root.pisca1_mc.gotoAndStop(1);
_root.pisca2_mc.gotoAndStop(1);
_root.numerador="";
_root.denominador="";
_global.op=0;//para não inserir no quadrado seleccionado
anteriormente sem clicar
_root.corrig_mc._visible=true;
_root.corrig_mc.gotoAndPlay(1);
_root.next_mc.enabled=false;
}
}
A.4.4.8 Clipe de filme “”
on(press){
_root.sons("beepTecla.wav");
}
on (release) {
_root.next_mc.enabled=false;
_root.next_mc.gotoAndStop(1);
92
Apêndice A – Código ActionScript
if(_root.contled <= 19){
var nm=_root.gerarAleatorio1(9);
var nm2=_root.gerarAleatorio2(9);
_root.piza_mc.gotoAndStop(nm);
_root.piza2_mc.gotoAndStop(nm2);
_root.pisca1_mc.gotoAndStop(1);
_root.pisca2_mc.gotoAndStop(1);
_root.resultado="";
_root.denominador_txt._visible=false;
_root.numerador_txt._visible=false;
_root.numerador="";
_root.denominador="";
_global.op=0;
_root.divis_mc._visible=true;
_root.pisca1_mc._visible=true;
_root.pisca2_mc._visible=true;
_root.corrig_mc._visible=false;
}else{
_root.piza_mc._visible=false;
_root.piza2_mc._visible=false;
_root.denominador_txt._visible=false;
_root.numerador_txt._visible=false;
_root.divis_mc._visible=false;
_root.pisca1_mc._visible=false;
_root.pisca2_mc._visible=false;
_root.resultado="Parabéns\nAcabaste\no jogo";
_root.num0_btn.enabled=false;
_root.num1_btn.enabled=false;
_root.num2_btn.enabled=false;
_root.num3_btn.enabled=false;
_root.num4_btn.enabled=false;
_root.num5_btn.enabled=false;
_root.num6_btn.enabled=false;
_root.num7_btn.enabled=false;
_root.num8_btn.enabled=false;
93
Apêndice A – Código ActionScript
_root.num9_btn.enabled=false;
_root.verifica_mc.enabled=false;
}
}
A.5 Jogo da Ordenação
A.5.1 Página Inicial
A.5.1.1 Botão “Menu”
on(release){
loadMovie("./paginaPrincipal.swf",_root)
}
A.5.1.2 Botão da parte 1 “Nível 1”
on(release){
loadMovie("nivel1Ordenacao.swf",_root);
}
A.5.1.3 Botão da parte 1 “Nível 2”
on(release){
loadMovie("nivel2Ordenacao.swf",_root);
}
A.5.1.4 Botão da parte 2 “Nível 1”
on(release){
loadMovie("nivel3Ordenacao.swf",_root);
94
Apêndice A – Código ActionScript
}
A.5.1.5 Botão da parte 2 “Nível 2”
on(release){
loadMovie("nivel4Ordenacao.swf",_root);
}
A.5.2 Parte 1 Nível 1
A.5.2.1 Camada de acções
_root.end_mc._visible=false;
_root.moto_mc.gotoAndStop(2);
_root.seguinte_btn._visible=false;
var verifica:Array=new Array();//array para guardar o valor 1 ou
zero de cada numero se foi ordenado ou não para se todos estiverem
ordenados montar a mota
var mostra:Boolean=false;
var monta:Number=2;
_root.fundores_mc._visible=false;
_root.resultado_txt._visible=false;
var resultado:String="";
var pontuacao:Number=0;
var pontuacaoAux:Number=0;
var cont:Number=0;
var numTentFalha:Number=0;
var inc:Number=1;
var expressao:Array=new
valores a ordenar
Array();//array
das
expressao[0]=_root.prg1_mc.pc11_mc.num1_txt;
expressao[1]=_root.prg1_mc.pc21_mc.num2_txt;
expressao[2]=_root.prg1_mc.pc31_mc.num3_txt;
expressao[3]=_root.prg1_mc.pc41_mc.num4_txt;
95
caixas
de
texto
dos
Apêndice A – Código ActionScript
expressao[4]=_root.prg1_mc.pc51_mc.num5_txt;
expressao[5]=_root.prg1_mc.pc61_mc.num6_txt;
expressao[6]=_root.prg1_mc.pc71_mc.num7_txt;
expressao[7]=_root.prg1_mc.pc81_mc.num8_txt;
var
res1:Array=new
Array(50,100,150,200,250,300,350,400);//arrays
das perguntas ordenadas
var res2:Array=new Array(135,150,300,400,450,500,800,900);
var res3:Array=new Array(900,850,800,750,700,650,600,550);
var res4:Array=new Array(728,478,325,104,75,59,28,6);
var res5:Array=new Array(20,55,68,81,128,328,598,1239);
var res6:Array=new Array(13,31,47,68,74,98,100,795);
var res7:Array=new Array(900,850,700,650,600,450,400,234);
var res8:Array=new Array(432,352,135,108,81,48,22,16);
var res9:Array=new Array(39,76,83,90,95,110,123,425);
var res10:Array=new Array(1250,375,125,87,86,68,33,12);
var colocados:Array=new Array();
var pergunta:Number=0;
var aux:Number=0;
gerarAleatorio();
pergSeguinte(pergunta);
var valor:Number=0;
var queNumero_mc:MovieClip;
function gerarAleatorio(){
//para nao repetir as operações
pergunta=random(10);
while (pergunta == aux) {
pergunta=random(10);
}
aux = pergunta;
}
96
Apêndice A – Código ActionScript
_root.prg1_mc.pc11_mc.onPress=function() {
this.startDrag();
_root.queNumero_mc=this;//variavel para guardar qual o movie
clip do valor seleccionado para ordenar
valor=this.num1_txt.text;//guardar
o
valor
do
numero
seleccionado para comparar com os valores do array ordenado que é o
colocados
cont=0;
_root.fundores_mc._visible=false;
_root.resultado_txt._visible=false;
//som clique
sons("clique.wav");
};
_root.prg1_mc.pc21_mc.onPress=function() {
this.startDrag();
_root.queNumero_mc=this;
valor=this.num2_txt.text;
cont=0;
_root.fundores_mc._visible=false;
_root.resultado_txt._visible=false;
sons("clique.wav");
};
_root.prg1_mc.pc31_mc.onPress=function() {
this.startDrag();
_root.queNumero_mc=this;
valor=this.num3_txt.text;
cont=0;
_root.fundores_mc._visible=false;
_root.resultado_txt._visible=false;
sons("clique.wav");
};
_root.prg1_mc.pc41_mc.onPress=function() {
this.startDrag();
_root.queNumero_mc=this;
valor=this.num4_txt.text;
cont=0;
_root.fundores_mc._visible=false;
_root.resultado_txt._visible=false;
sons("clique.wav");
97
Apêndice A – Código ActionScript
};
_root.prg1_mc.pc51_mc.onPress=function() {
this.startDrag();
_root.queNumero_mc=this;
valor=this.num5_txt.text;
cont=0;
_root.fundores_mc._visible=false;
_root.resultado_txt._visible=false;
sons("clique.wav");
};
_root.prg1_mc.pc61_mc.onPress=function() {
this.startDrag();
_root.queNumero_mc=this;
valor=this.num6_txt.text;
cont=0;
_root.fundores_mc._visible=false;
_root.resultado_txt._visible=false;
sons("clique.wav");
};
_root.prg1_mc.pc71_mc.onPress=function() {
this.startDrag();
_root.queNumero_mc=this;
valor=this.num7_txt.text;
cont=0;
_root.fundores_mc._visible=false;
_root.resultado_txt._visible=false;
sons("clique.wav");
};
_root.prg1_mc.pc81_mc.onPress=function() {
this.startDrag();
_root.queNumero_mc=this;
valor=this.num8_txt.text;
cont=0;
_root.fundores_mc._visible=false;
_root.resultado_txt._visible=false;
sons("clique.wav");
};
98
Apêndice A – Código ActionScript
function detectaColisao(){
if (_root.resCresce_mc.alvoC1_mc.hitTest(_root.queNumero_mc) &&
_root.resCresce_mc.alvoC1_mc._visible==true){//testar a colisão do
valor escolhido com o rectangulo que quer inserir
if(valor==colocados[0]){//testar a inserção dos valores
correctamente ordenados em que o valor é o valor escolhido para
colocar e o array dos colocados com os valores ordenados
_root.resCresce_mc.alvoC1_mc.gotoAndStop(2);//aparece
rectangulo verde se for esse o sitio onde se deve colocar
o
_global.colid1=1;
}else{
_root.resCresce_mc.alvoC1_mc.gotoAndStop(3);//aparece
se não for esse o sitio
vermelho
_global.colid1=0;
errou();
}
}else{
_root.resCresce_mc.alvoC1_mc.gotoAndStop(1);//senao
aparece o rectangulo branco normal
_global.colid1=0;
}
if( _root.resCresce_mc.alvoC2_mc.hitTest(_root.queNumero_mc) &&
_root.resCresce_mc.alvoC2_mc._visible==true){
if(valor==colocados[1]){
_root.resCresce_mc.alvoC2_mc.gotoAndStop(2);
_global.colid2=1;
}else{
_root.resCresce_mc.alvoC2_mc.gotoAndStop(3);
_global.colid2=0;
errou();
}
}else{
_root.resCresce_mc.alvoC2_mc.gotoAndStop(1);
_global.colid2=0;
}
if( _root.resCresce_mc.alvoC3_mc.hitTest(_root.queNumero_mc) &&
_root.resCresce_mc.alvoC3_mc._visible==true){
99
Apêndice A – Código ActionScript
if(valor==colocados[2]){
_root.resCresce_mc.alvoC3_mc.gotoAndStop(2);
_global.colid3=1;
}else{
_root.resCresce_mc.alvoC3_mc.gotoAndStop(3);
_global.colid3=0;
errou();
}
}else{
_root.resCresce_mc.alvoC3_mc.gotoAndStop(1);
_global.colid3=0;
}
if( _root.resCresce_mc.alvoC4_mc.hitTest(_root.queNumero_mc) &&
_root.resCresce_mc.alvoC4_mc._visible==true){
if(valor==colocados[3]){
_root.resCresce_mc.alvoC4_mc.gotoAndStop(2);
_global.colid4=1;
}else{
_root.resCresce_mc.alvoC4_mc.gotoAndStop(3);
_global.colid4=0;
errou();
}
}else{
_root.resCresce_mc.alvoC4_mc.gotoAndStop(1);
_global.colid4=0;
}
if( _root.resCresce_mc.alvoC5_mc.hitTest(_root.queNumero_mc) &&
_root.resCresce_mc.alvoC5_mc._visible==true){
if(valor==colocados[4]){
_root.resCresce_mc.alvoC5_mc.gotoAndStop(2);
_global.colid5=1;
}else{
_root.resCresce_mc.alvoC5_mc.gotoAndStop(3);
_global.colid5=0;
errou();
100
Apêndice A – Código ActionScript
}
}else{
_root.resCresce_mc.alvoC5_mc.gotoAndStop(1);
_global.colid5=0;
}
if( _root.resCresce_mc.alvoC6_mc.hitTest(_root.queNumero_mc) &&
_root.resCresce_mc.alvoC6_mc._visible==true){
if(valor==colocados[5]){
_root.resCresce_mc.alvoC6_mc.gotoAndStop(2);
_global.colid6=1;
}else{
_root.resCresce_mc.alvoC6_mc.gotoAndStop(3);
_global.colid6=0;
errou();
}
}else{
_root.resCresce_mc.alvoC6_mc.gotoAndStop(1);
_global.colid6=0;
}
if( _root.resCresce_mc.alvoC7_mc.hitTest(_root.queNumero_mc) &&
_root.resCresce_mc.alvoC7_mc._visible==true){
if(valor==colocados[6]){
_root.resCresce_mc.alvoC7_mc.gotoAndStop(2);
_global.colid7=1;
}else{
_root.resCresce_mc.alvoC7_mc.gotoAndStop(3);
_global.colid7=0;
errou();
}
}else{
_root.resCresce_mc.alvoC7_mc.gotoAndStop(1);
_global.colid7=0;
}
if( _root.resCresce_mc.alvoC8_mc.hitTest(_root.queNumero_mc) &&
_root.resCresce_mc.alvoC8_mc._visible==true){
if(valor==colocados[7]){
_root.resCresce_mc.alvoC8_mc.gotoAndStop(2);
101
Apêndice A – Código ActionScript
_global.colid8=1;
}else{
_root.resCresce_mc.alvoC8_mc.gotoAndStop(3);
_global.colid8=0;
errou();
}
}else{
_root.resCresce_mc.alvoC8_mc.gotoAndStop(1);
_global.colid8=0;
}
}
setInterval(detectaColisao,10);
_root.prg1_mc.pc11_mc.onRelease=function() {
this.stopDrag();
if(_global.colid1==1){//mediante o valor que tiver colidido do
rectangulo se o valor da variavel "valor" coincidir com um dos
valores
do
array
colocados
será
colocado
no
rectangulo
correspondente
this._x=1;//através das coordenadas do rectangulo
this._y=103;
verifica[0]=1;//actualiza-se o array de uns e zeros dos
valores preenchidos para guardar se e quais os valores que ja foram
ordenados
acertou();
_root.prg1_mc.pc11_mc.enabled=false;//não
numero depois de colocado
_root.resCresce_mc.alvoC1_mc._visible=false;
}else if(_global.colid2==1){
this._x=98;
this._y=103;
verifica[0]=1;
acertou();
_root.prg1_mc.pc11_mc.enabled=false;
_root.resCresce_mc.alvoC2_mc._visible=false;
}else if(_global.colid3==1){
this._x=194;
this._y=103;
verifica[0]=1;
102
arrastar
o
Apêndice A – Código ActionScript
acertou();
_root.prg1_mc.pc11_mc.enabled=false;
_root.resCresce_mc.alvoC3_mc._visible=false;
}else if(_global.colid4==1){
this._x=292;
this._y=103;
verifica[0]=1;
acertou();
_root.prg1_mc.pc11_mc.enabled=false;
_root.resCresce_mc.alvoC4_mc._visible=false;
}else if(_global.colid5==1){
this._x=387;
this._y=103;
verifica[0]=1;
acertou();
_root.prg1_mc.pc11_mc.enabled=false;
_root.resCresce_mc.alvoC5_mc._visible=false;
}else if(_global.colid6==1){
this._x=484;
this._y=103;
verifica[0]=1;
acertou();
_root.prg1_mc.pc11_mc.enabled=false;
_root.resCresce_mc.alvoC6_mc._visible=false;
}else if(_global.colid7==1){
this._x=579;
this._y=103;
verifica[0]=1;
acertou();
_root.prg1_mc.pc11_mc.enabled=false;
_root.resCresce_mc.alvoC7_mc._visible=false;
}else if(_global.colid8==1){
this._x=677;
this._y=103;
verifica[0]=1;
acertou();
_root.prg1_mc.pc11_mc.enabled=false;
_root.resCresce_mc.alvoC8_mc._visible=false;
103
Apêndice A – Código ActionScript
}else{
this._x=0;
this._y=0;
verifica[0]=0;
}
acaba();
};
_root.prg1_mc.pc21_mc.onRelease=function() {
this.stopDrag();
if(_global.colid1==1){
this._x=1;
this._y=103;
verifica[1]=1;
acertou();
_root.prg1_mc.pc21_mc.enabled=false;
_root.resCresce_mc.alvoC1_mc._visible=false;
}else if(_global.colid2==1){
this._x=98;
this._y=103;
verifica[1]=1;
acertou();
_root.prg1_mc.pc21_mc.enabled=false;
_root.resCresce_mc.alvoC2_mc._visible=false;
}else if(_global.colid3==1){
this._x=193;
this._y=103;
verifica[1]=1;
acertou();
_root.prg1_mc.pc21_mc.enabled=false;
_root.resCresce_mc.alvoC3_mc._visible=false;
}else if(_global.colid4==1){
this._x=292;
this._y=103;
verifica[1]=1;
acertou();
_root.prg1_mc.pc21_mc.enabled=false;
_root.resCresce_mc.alvoC4_mc._visible=false;
104
Apêndice A – Código ActionScript
}else if(_global.colid5==1){
this._x=387;
this._y=103;
verifica[1]=1;
acertou();
_root.prg1_mc.pc21_mc.enabled=false;
_root.resCresce_mc.alvoC5_mc._visible=false;
}else if(_global.colid6==1){
this._x=484;
this._y=103;
verifica[1]=1;
acertou();
_root.prg1_mc.pc21_mc.enabled=false;
_root.resCresce_mc.alvoC6_mc._visible=false;
}else if(_global.colid7==1){
this._x=579;
this._y=103;
verifica[1]=1;
acertou();
_root.prg1_mc.pc21_mc.enabled=false;
_root.resCresce_mc.alvoC7_mc._visible=false;
}else if(_global.colid8==1){
this._x=677;
this._y=103;
verifica[1]=1;
acertou();
_root.prg1_mc.pc21_mc.enabled=false;
_root.resCresce_mc.alvoC8_mc._visible=false;
}else{
this._x=98;
this._y=0;
verifica[1]=0;
}
acaba();
};
_root.prg1_mc.pc31_mc.onRelease=function() {
this.stopDrag();
105
Apêndice A – Código ActionScript
if(_global.colid1==1){
this._x=1;
this._y=103;
verifica[2]=1;
acertou();
_root.prg1_mc.pc31_mc.enabled=false;
_root.resCresce_mc.alvoC1_mc._visible=false;
}else if(_global.colid2==1){
this._x=98;
this._y=103;
verifica[2]=1;
acertou();
_root.prg1_mc.pc31_mc.enabled=false;
_root.resCresce_mc.alvoC2_mc._visible=false;
}else if(_global.colid3==1){
this._x=193;
this._y=103;
verifica[2]=1;
acertou();
_root.prg1_mc.pc31_mc.enabled=false;
_root.resCresce_mc.alvoC3_mc._visible=false;
}else if(_global.colid4==1){
this._x=292;
this._y=103;
verifica[2]=1;
acertou();
_root.prg1_mc.pc31_mc.enabled=false;
_root.resCresce_mc.alvoC4_mc._visible=false;
}else if(_global.colid5==1){
this._x=387;
this._y=103;
verifica[2]=1;
acertou();
_root.prg1_mc.pc31_mc.enabled=false;
_root.resCresce_mc.alvoC5_mc._visible=false;
}else if(_global.colid6==1){
this._x=484;
this._y=103;
106
Apêndice A – Código ActionScript
verifica[2]=1;
acertou();
_root.prg1_mc.pc31_mc.enabled=false;
_root.resCresce_mc.alvoC6_mc._visible=false;
}else if(_global.colid7==1){
this._x=579;
this._y=103;
verifica[2]=1;
acertou();
_root.prg1_mc.pc31_mc.enabled=false;
_root.resCresce_mc.alvoC7_mc._visible=false;
}else if(_global.colid8==1){
this._x=677;
this._y=103;
verifica[2]=1;
acertou();
_root.prg1_mc.pc31_mc.enabled=false;
_root.resCresce_mc.alvoC8_mc._visible=false;
}else{
this._x=194;
this._y=0;
verifica[2]=0;
}
acaba();
};
_root.prg1_mc.pc41_mc.onRelease=function() {
this.stopDrag();
if(_global.colid1==1){
this._x=1;
this._y=103;
verifica[3]=1;
acertou();
_root.prg1_mc.pc41_mc.enabled=false;
_root.resCresce_mc.alvoC1_mc._visible=false;
}else if(_global.colid2==1){
this._x=98;
this._y=103;
107
Apêndice A – Código ActionScript
verifica[3]=1;
acertou();
_root.prg1_mc.pc41_mc.enabled=false;
_root.resCresce_mc.alvoC2_mc._visible=false;
}else if(_global.colid3==1){
this._x=194;
this._y=103;
verifica[3]=1;
acertou();
_root.prg1_mc.pc41_mc.enabled=false;
_root.resCresce_mc.alvoC3_mc._visible=false;
}else if(_global.colid4==1){
this._x=292;
this._y=103;
verifica[3]=1;
acertou();
_root.prg1_mc.pc41_mc.enabled=false;
_root.resCresce_mc.alvoC4_mc._visible=false;
}else if(_global.colid5==1){
this._x=387;
this._y=103;
verifica[3]=1;
acertou();
_root.prg1_mc.pc41_mc.enabled=false;
_root.resCresce_mc.alvoC5_mc._visible=false;
}else if(_global.colid6==1){
this._x=484;
this._y=103;
verifica[3]=1;
acertou();
_root.prg1_mc.pc41_mc.enabled=false;
_root.resCresce_mc.alvoC6_mc._visible=false;
}else if(_global.colid7==1){
this._x=579;
this._y=103;
verifica[3]=1;
acertou();
_root.prg1_mc.pc41_mc.enabled=false;
108
Apêndice A – Código ActionScript
_root.resCresce_mc.alvoC7_mc._visible=false;
}else if(_global.colid8==1){
this._x=677;
this._y=103;
verifica[3]=1;
acertou();
_root.prg1_mc.pc41_mc.enabled=false;
_root.resCresce_mc.alvoC8_mc._visible=false;
}else{
this._x=292;
this._y=0;
verifica[3]=0;
}
acaba();
};
_root.prg1_mc.pc51_mc.onRelease=function() {
this.stopDrag();
if(_global.colid1==1){
this._x=1;
this._y=103;
verifica[4]=1;
acertou();
_root.prg1_mc.pc51_mc.enabled=false;
_root.resCresce_mc.alvoC1_mc._visible=false;
}else if(_global.colid2==1){
this._x=98;
this._y=103;
verifica[4]=1;
acertou();
_root.prg1_mc.pc51_mc.enabled=false;
_root.resCresce_mc.alvoC2_mc._visible=false;
}else if(_global.colid3==1){
this._x=194;
this._y=103;
verifica[4]=1;
acertou();
_root.prg1_mc.pc51_mc.enabled=false;
109
Apêndice A – Código ActionScript
_root.resCresce_mc.alvoC3_mc._visible=false;
}else if(_global.colid4==1){
this._x=292;
this._y=103;
verifica[4]=1;
acertou();
_root.prg1_mc.pc51_mc.enabled=false;
_root.resCresce_mc.alvoC4_mc._visible=false;
}else if(_global.colid5==1){
this._x=387;
this._y=103;
verifica[4]=1;
acertou();
_root.prg1_mc.pc51_mc.enabled=false;
_root.resCresce_mc.alvoC5_mc._visible=false;
}else if(_global.colid6==1){
this._x=484;
this._y=103;
verifica[4]=1;
acertou();
_root.prg1_mc.pc51_mc.enabled=false;
_root.resCresce_mc.alvoC6_mc._visible=false;
}else if(_global.colid7==1){
this._x=579;
this._y=103;
verifica[4]=1;
acertou();
_root.prg1_mc.pc51_mc.enabled=false;
_root.resCresce_mc.alvoC7_mc._visible=false;
}else if(_global.colid8==1){
this._x=677;
this._y=103;
verifica[4]=1;
acertou();
_root.prg1_mc.pc51_mc.enabled=false;
_root.resCresce_mc.alvoC8_mc._visible=false;
}else{
this._x=387;
110
Apêndice A – Código ActionScript
this._y=0;
verifica[4]=0;
}
acaba();
};
_root.prg1_mc.pc61_mc.onRelease=function() {
this.stopDrag();
if(_global.colid1==1){
this._x=1;
this._y=103;
verifica[5]=1;
acertou();
_root.prg1_mc.pc61_mc.enabled=false;
_root.resCresce_mc.alvoC1_mc._visible=false;
}else if(_global.colid2==1){
this._x=98;
this._y=103;
verifica[5]=1;
acertou();
_root.prg1_mc.pc61_mc.enabled=false;
_root.resCresce_mc.alvoC2_mc._visible=false;
}else if(_global.colid3==1){
this._x=194;
this._y=103;
verifica[5]=1;
acertou();
_root.prg1_mc.pc61_mc.enabled=false;
_root.resCresce_mc.alvoC3_mc._visible=false;
}else if(_global.colid4==1){
this._x=292;
this._y=103;
verifica[5]=1;
acertou();
_root.prg1_mc.pc61_mc.enabled=false;
_root.resCresce_mc.alvoC4_mc._visible=false;
}else if(_global.colid5==1){
this._x=387;
111
Apêndice A – Código ActionScript
this._y=103;
verifica[5]=1;
acertou();
_root.prg1_mc.pc61_mc.enabled=false;
_root.resCresce_mc.alvoC5_mc._visible=false;
}else if(_global.colid6==1){
this._x=484;
this._y=103;
verifica[5]=1;
acertou();
_root.prg1_mc.pc61_mc.enabled=false;
_root.resCresce_mc.alvoC6_mc._visible=false;
}else if(_global.colid7==1){
this._x=579;
this._y=103;
verifica[5]=1;
acertou();
_root.prg1_mc.pc61_mc.enabled=false;
_root.resCresce_mc.alvoC7_mc._visible=false;
}else if(_global.colid8==1){
this._x=677;
this._y=103;
verifica[5]=1;
acertou();
_root.prg1_mc.pc61_mc.enabled=false;
_root.resCresce_mc.alvoC8_mc._visible=false;
}else{
this._x=484;
this._y=0;
verifica[5]=0;
}
acaba();
};
_root.prg1_mc.pc71_mc.onRelease=function() {
this.stopDrag();
if(_global.colid1==1){
this._x=1;
112
Apêndice A – Código ActionScript
this._y=103;
verifica[6]=1;
acertou();
_root.prg1_mc.pc71_mc.enabled=false;
_root.resCresce_mc.alvoC1_mc._visible=false;
}else if(_global.colid2==1){
this._x=98;
this._y=103;
verifica[6]=1;
acertou();
_root.prg1_mc.pc71_mc.enabled=false;
_root.resCresce_mc.alvoC2_mc._visible=false;
}else if(_global.colid3==1){
this._x=194;
this._y=103;
verifica[6]=1;
acertou();
_root.prg1_mc.pc71_mc.enabled=false;
_root.resCresce_mc.alvoC3_mc._visible=false;
}else if(_global.colid4==1){
this._x=292;
this._y=103;
verifica[6]=1;
acertou();
_root.prg1_mc.pc71_mc.enabled=false;
_root.resCresce_mc.alvoC4_mc._visible=false;
}else if(_global.colid5==1){
this._x=387;
this._y=103;
verifica[6]=1;
acertou();
_root.prg1_mc.pc71_mc.enabled=false;
_root.resCresce_mc.alvoC5_mc._visible=false;
}else if(_global.colid6==1){
this._x=484;
this._y=103;
verifica[6]=1;
acertou();
113
Apêndice A – Código ActionScript
_root.prg1_mc.pc71_mc.enabled=false;
_root.resCresce_mc.alvoC6_mc._visible=false;
}else if(_global.colid7==1){
this._x=579;
this._y=103;
verifica[6]=1;
acertou();
_root.prg1_mc.pc71_mc.enabled=false;
_root.resCresce_mc.alvoC7_mc._visible=false;
}else if(_global.colid8==1){
this._x=677;
this._y=103;
verifica[6]=1;
acertou();
_root.prg1_mc.pc71_mc.enabled=false;
_root.resCresce_mc.alvoC8_mc._visible=false;
}else{
this._x=579;
this._y=0;
verifica[6]=0;
}
acaba();
};
_root.prg1_mc.pc81_mc.onRelease=function() {
this.stopDrag();
if(_global.colid1==1){//verifica qual é que foi o rectangulo em
que o valor tocou e caso seja o rectangulo correcto mete o valor
nessa posição
this._x=1;
this._y=103;
verifica[7]=1;
acertou();
_root.prg1_mc.pc81_mc.enabled=false;
_root.resCresce_mc.alvoC1_mc._visible=false;
}else if(_global.colid2==1){
this._x=98;
this._y=103;
114
Apêndice A – Código ActionScript
verifica[7]=1;
acertou();
_root.prg1_mc.pc81_mc.enabled=false;
_root.resCresce_mc.alvoC2_mc._visible=false;
}else if(_global.colid3==1){
this._x=194;
this._y=103;
verifica[7]=1;
acertou();
_root.prg1_mc.pc81_mc.enabled=false;
_root.resCresce_mc.alvoC3_mc._visible=false;
}else if(_global.colid4==1){
this._x=292;
this._y=103;
verifica[7]=1;
acertou();
_root.prg1_mc.pc81_mc.enabled=false;
_root.resCresce_mc.alvoC4_mc._visible=false;
}else if(_global.colid5==1){
this._x=387;
this._y=103;
verifica[7]=1;
acertou();
_root.prg1_mc.pc81_mc.enabled=false;
_root.resCresce_mc.alvoC5_mc._visible=false;
}else if(_global.colid6==1){
this._x=484;
this._y=103;
verifica[7]=1;
acertou();
_root.prg1_mc.pc81_mc.enabled=false;
_root.resCresce_mc.alvoC6_mc._visible=false;
}else if(_global.colid7==1){
this._x=579;
this._y=103;
verifica[7]=1;
acertou();
_root.prg1_mc.pc81_mc.enabled=false;
115
Apêndice A – Código ActionScript
_root.resCresce_mc.alvoC7_mc._visible=false;
}else if(_global.colid8==1){
this._x=677;
this._y=103;
verifica[7]=1;
acertou();
_root.prg1_mc.pc81_mc.enabled=false;
_root.resCresce_mc.alvoC8_mc._visible=false;
}else{
this._x=676;
this._y=0;
verifica[7]=0;
}
acaba();
};
//verifica se os valores estao todos colocados por ordem para depois
aparecer as peças da mota
function acaba(){
for(var j:Number=0; j<=7; j++){
if(verifica[j]==1){
mostra=true;
}else{
mostra=false;
j=8;
}
}
if(mostra){
_root.seguinte_btn._visible=true;
//som certo
stopAllSounds();
sons("certo.wav");
inc++;
if(monta==2){//para controlar o inicio pois a animação
começa em 2 para depois incrementar correctamente de 40 em 40 cada
peça da moto adicionada
_root.moto_mc.gotoAndPlay(monta);
monta=0;
monta+=40;
116
Apêndice A – Código ActionScript
}else{
if(monta==360){
_root.end_mc._visible=true;
if(pontuacao>=10000){
_root.moto_mc.gotoAndPlay(monta);
_root.end_mc.gotoAndPlay(2);
}else{
_root.moto_mc.gotoAndPlay(monta);
_root.end_mc.gotoAndPlay(81);
}
}else{
_root.moto_mc.gotoAndPlay(monta);
monta+=40;
}
}
}
}
function pergSeguinte(c:Number){//função para mudar de pergunta
_root.fundores_mc._visible=false;
_root.resultado_txt._visible=false;
//por os numeros seguintes nas coordenadas iniciais
_root.prg1_mc.pc11_mc._x=0;
_root.prg1_mc.pc11_mc._y=0;
_root.prg1_mc.pc21_mc._x=97.5;
_root.prg1_mc.pc21_mc._y=0;
_root.prg1_mc.pc31_mc._x=193.5;
_root.prg1_mc.pc31_mc._y=0;
_root.prg1_mc.pc41_mc._x=290.4;
_root.prg1_mc.pc41_mc._y=0;
_root.prg1_mc.pc51_mc._x=386.4;
_root.prg1_mc.pc51_mc._y=0;
_root.prg1_mc.pc61_mc._x=483.4;
_root.prg1_mc.pc61_mc._y=0;
_root.prg1_mc.pc71_mc._x=578.5;
_root.prg1_mc.pc71_mc._y=0;
117
Apêndice A – Código ActionScript
_root.prg1_mc.pc81_mc._x=675.5;
_root.prg1_mc.pc81_mc._y=0;
_root.resCresce_mc.alvoC1_mc._visible=true;
_root.resCresce_mc.alvoC2_mc._visible=true;
_root.resCresce_mc.alvoC3_mc._visible=true;
_root.resCresce_mc.alvoC4_mc._visible=true;
_root.resCresce_mc.alvoC5_mc._visible=true;
_root.resCresce_mc.alvoC6_mc._visible=true;
_root.resCresce_mc.alvoC7_mc._visible=true;
_root.resCresce_mc.alvoC8_mc._visible=true;
_root.prg1_mc.pc11_mc.enabled=true;
_root.prg1_mc.pc21_mc.enabled=true;
_root.prg1_mc.pc31_mc.enabled=true;
_root.prg1_mc.pc41_mc.enabled=true;
_root.prg1_mc.pc51_mc.enabled=true;
_root.prg1_mc.pc61_mc.enabled=true;
_root.prg1_mc.pc71_mc.enabled=true;
_root.prg1_mc.pc81_mc.enabled=true;
for(var j:Number=0; j<=7; j++){
verifica[j]=0;
}
if(c==0){
expressao[0].text=400;
expressao[1].text=150;
expressao[2].text=300;
expressao[3].text=250;
expressao[4].text=200;
expressao[5].text=50;
expressao[6].text=100;
expressao[7].text=350;
colocados=res1;
sinais("<");
}else if(c==1){
expressao[0].text=300;
expressao[1].text=150;
118
Apêndice A – Código ActionScript
expressao[2].text=400;
expressao[3].text=500;
expressao[4].text=450;
expressao[5].text=800;
expressao[6].text=900;
expressao[7].text=135;
colocados=res2;
sinais("<");
}else if(c==2){
expressao[0].text=800;
expressao[1].text=600;
expressao[2].text=750;
expressao[3].text=650;
expressao[4].text=900;
expressao[5].text=850;
expressao[6].text=550;
expressao[7].text=700;
colocados=res3;
sinais(">");
}else if(c==3){
expressao[0].text=75;
expressao[1].text=104;
expressao[2].text=728;
expressao[3].text=28;
expressao[4].text=325;
expressao[5].text=6;
expressao[6].text=478;
expressao[7].text=59;
colocados=res4;
sinais(">");
}else if(c==4){
expressao[0].text=81;
expressao[1].text=68;
expressao[2].text=598;
expressao[3].text=128;
expressao[4].text=1239;
expressao[5].text=328;
119
Apêndice A – Código ActionScript
expressao[6].text=55;
expressao[7].text=20;
colocados=res5;
sinais("<");
}else if(c==5){
expressao[0].text=13;
expressao[1].text=74;
expressao[2].text=31;
expressao[3].text=795;
expressao[4].text=47;
expressao[5].text=68;
expressao[6].text=98;
expressao[7].text=100;
colocados=res6;
sinais("<");
}else if(c==6){
expressao[0].text=450;
expressao[1].text=900;
expressao[2].text=234;
expressao[3].text=400;
expressao[4].text=600;
expressao[5].text=850;
expressao[6].text=650;
expressao[7].text=700;
colocados=res7;
sinais(">");
}else if(c==7){
expressao[0].text=22;
expressao[1].text=108;
expressao[2].text=81;
expressao[3].text=352;
expressao[4].text=16;
expressao[5].text=432;
expressao[6].text=135;
expressao[7].text=48;
colocados=res8;
sinais(">");
}else if(c==8){
120
Apêndice A – Código ActionScript
expressao[0].text=110;
expressao[1].text=83;
expressao[2].text=123;
expressao[3].text=76;
expressao[4].text=425;
expressao[5].text=90;
expressao[6].text=39;
expressao[7].text=95;
colocados=res9;
sinais("<");
}else if(c==9){
expressao[0].text=68;
expressao[1].text=125;
expressao[2].text=1250;
expressao[3].text=87;
expressao[4].text=375;
expressao[5].text=12;
expressao[6].text=33;
expressao[7].text=86;
colocados=res10;
sinais(">");
}
}
function acertou(){
_root.resultado_txt._visible=true;
_root.fundores_mc._visible=true;
if(numTentFalha==0){
_root.resultado_txt.text="Parabéns
acertaste\nà
primeira
";
pontuacao += 125;
}else if(numTentFalha==1){
pontuacao +=100;
_root.resultado_txt.text="Correcto
"+numTentFalha+" vez";
}else{
121
mas
erraste\n
Apêndice A – Código ActionScript
_root.resultado_txt.text="Correcto
"+numTentFalha+" vezes";
mas
erraste\n
pontuacaoAux = 125/numTentFalha;
pontuacao += Math.round(pontuacaoAux);
}
numTentFalha=0;
//som semicerto
sons("semiCerto2_ordena.wav");
}
function errou(){
_root.resultado_txt._visible=true;
_root.fundores_mc._visible=true;
if(cont==0){//deixar colidir so uma unica vez para contar uma
so colisao
_root.resultado_txt.text="Falhou\ntente outra vez ";
numTentFalha++;//contar o numero de tentativas falahadas
quando a colisao e fica vermelho
cont++;//nao deixar colidir mais nenhuma vez enquanto o
cont nao tornar a ser zero
//som errado
sons("errado2.wav");
}
}
function sons(s:String){
var som:Sound= new Sound();
som.attachSound(s);
som.start();
}
function sinais(sn:String){
_root.resCresce_mc.sinal_txt.text=sn;
_root.resCresce_mc.sinal2_txt.text=sn;
_root.resCresce_mc.sinal3_txt.text=sn;
_root.resCresce_mc.sinal4_txt.text=sn;
_root.resCresce_mc.sinal5_txt.text=sn;
_root.resCresce_mc.sinal6_txt.text=sn;
122
Apêndice A – Código ActionScript
_root.resCresce_mc.sinal7_txt.text=sn;
if(sn==">"){
_root.titulo_txt.text="Completa
(atendendo ao sinal maior do que)";
os
espaços
em
branco
os
espaços
em
branco
}else{
_root.titulo_txt.text="Completa
(atendendo ao sinal menor do que)";
}
}
A.5.2.2 Botão “Início”
on(release){
loadMovie("inicioOrdenacao.swf",_root);
}
A.5.2.3 Botão “Seguinte”
on(release){
if(_root.inc <=10){
gerarAleatorio();
pergSeguinte(pergunta);
_root.seguinte_btn._visible=false;
}else{
_root.seguinte_btn._visible=false;
}
}
A.5.3 Parte 1 Nível 2
Nota: O código deste Apêndice é semelhante ao código do Apêndice anterior (Apêndice 5.2),
modificando apenas os arrays dos números a ordenar que passam a ser maiores, a animação
do veículo a montar, entre outras pequenas coisas.
123
Apêndice A – Código ActionScript
A.5.4 Parte 2 Nível 1
A.5.4.1 Camada de acções
_root.end_mc._visible=false;
_root.moto_mc.gotoAndStop(2);
_root.resSomb_mc._visible=false;
_root.seguinte_btn._visible=false;
var verifica:Array=new Array();//array para guardar o valor 1 0u
zero de cada numero se foi ordenado ou não para se todos estiverem
ordenados montar a mota
var mostra:Boolean=false;
var monta:Number=2;
_root.resultado_txt._visible=false;
_root.fundores_mc._visible=false;
_root.prg1_mc._visible=false;
var resultado:String="";
var resultado2:String="";
var subperg:Number=0;
var pontuacao:Number=0;
var pontuacaoAux:Number=0;
var cont:Number=0;
var numTentFalha:Number=0;
var inc:Number=1;
var expressao:Array=new
valores a ordenar
Array();//array
das
caixas
de
texto
dos
expressao[0]=_root.prg1_mc.pc11_mc.num1_txt;
expressao[1]=_root.prg1_mc.pc21_mc.num2_txt;
expressao[2]=_root.prg1_mc.pc31_mc.num3_txt;
expressao[3]=_root.prg1_mc.pc41_mc.num4_txt;
var
res1:Array=new
Array(50,100,150,200,250,300,350,400);//arrays
das perguntas ordenadas
var res1op1:Array=new Array(125,100,60,160);//2
var res1op2:Array=new Array(220,180,200,240);//4
124
Apêndice A – Código ActionScript
var res1op3:Array=new Array(270,280,310,300);//6
var res1op4:Array=new Array(400,365,380,450);//8
var res2:Array=new Array(20,40,60,80,100,120,140,160);//+20
var res2op1:Array=new Array(30,20,10,15);//1
var res2op2:Array=new Array(50,55,60,65);//3
var res2op3:Array=new Array(90,100,110,112);//5
var res2op4:Array=new Array(138,128,140,130);//7
var res3:Array=new Array(225,200,175,150,125,100,75,50);//-25
var res3op1:Array=new Array(180,190,200,210);//2
var res3op2:Array=new Array(120,125,130,135);//5
var res3op3:Array=new Array(55,60,75,65);//7
var res3op4:Array=new Array(25,30,40,50);//8
var res4:Array=new Array(300,284,268,252,236,220,204,188);//-16
var res4op1:Array=new Array(200,224,248,284);//2
var res4op2:Array=new Array(250,252,246,238);//4
var res4op3:Array=new Array(236,234,222,227);//5
var res4op4:Array=new Array(201,190,188,184);//8
var res5:Array=new Array(68,74,80,86,92,98,104,110);//+6
var res5op1:Array=new Array(54,58,74,78);//2
var res5op2:Array=new Array(79,80,81,86);//4
var res5op3:Array=new Array(88,95,93,98);//6
var res5op4:Array=new Array(106,99,110,116);//8
var res6:Array=new Array(36,54,72,90,108,126,144,162);//+18
var res6op1:Array=new Array(10,21,32,36);//1
var res6op2:Array=new Array(38,42,54,68);//2
var res6op3:Array=new Array(98,108,118,128);//5
var res6op4:Array=new Array(126,136,138,142);//6
var res7:Array=new Array(180,171,162,153,144,135,126,117);//-9
var res7op1:Array=new Array(190,195,180,179);//1
var res7op2:Array=new Array(170,171,166,162);//3
var res7op3:Array=new Array(151,144,142,138);//5
125
Apêndice A – Código ActionScript
var res7op4:Array=new Array(132,127,126,119);//7
var res8:Array=new Array(280,245,210,175,140,105,70,35);//-35
var res8op1:Array=new Array(260,250,245,240);//2
var res8op2:Array=new Array(200,195,185,175);//4
var res8op3:Array=new Array(105,95,85,75);//6
var res8op4:Array=new Array(45,35,25,20);//8
var res9:Array=new Array(62,124,186,248,310,372,434,496);//+62
var res9op1:Array=new Array(136,148,166,186);//3
var res9op2:Array=new Array(242,278,310,327);//5
var res9op3:Array=new Array(434,467,489,354);//7
var res9op4:Array=new Array(490,496,510,512);//8
var res10:Array=new Array(513,500,487,474,461,448,435,422);//-13
var res10op1:Array=new Array(515,513,510,505);//1
var res10op2:Array=new Array(487,478,476,480);//3
var res10op3:Array=new Array(469,465,461,450);//5
var res10op4:Array=new Array(445,440,436,435);//7
var colocados:Array=new Array();
var pergunta:Number=0;
var aux:Number=0;
gerarAleatorio();
pergSeguinte(pergunta);
var valor:Number=0;
var queNumero_mc:MovieClip;
function gerarAleatorio(){
//para nao repetir as operações
pergunta=random(10);
while (pergunta == aux) {
pergunta=random(10);
}
aux = pergunta;
126
Apêndice A – Código ActionScript
}
_root.prg1_mc.pc11_mc.onPress=function() {
this.startDrag();
_root.queNumero_mc=this;//variavel para guardar qual o movie
clip do valor seleccionado para ordenar
valor=this.num1_txt.text;//guardar
o
valor
do
numero
seleccionado para comparar com os valores do array ordenado que é o
colocados
_root.fundores_mc._visible=false;
_root.resultado_txt._visible=false;
cont=0;
//som clique
sons("clique.wav");
};
_root.prg1_mc.pc21_mc.onPress=function() {
this.startDrag();
_root.queNumero_mc=this;
valor=this.num2_txt.text;
_root.fundores_mc._visible=false;
_root.resultado_txt._visible=false;
cont=0;
sons("clique.wav");
};
_root.prg1_mc.pc31_mc.onPress=function() {
this.startDrag();
_root.queNumero_mc=this;
valor=this.num3_txt.text;
_root.fundores_mc._visible=false;
_root.resultado_txt._visible=false;
cont=0;
sons("clique.wav");
};
_root.prg1_mc.pc41_mc.onPress=function() {
this.startDrag();
_root.queNumero_mc=this;
valor=this.num4_txt.text;
_root.fundores_mc._visible=false;
_root.resultado_txt._visible=false;
127
Apêndice A – Código ActionScript
cont=0;
sons("clique.wav");
};
function errou(){
_root.resultado_txt._visible=true;
_root.fundores_mc._visible=true;
if(cont==0){//deixar colidir so uma unica vez para contar uma
so colisao
_root.resultado_txt.text="Falhou\ntente outra vez ";
numTentFalha++;//contar o numero de tentativas falahadas
quando a colisao e fica vermelho
cont++;//nao deixar colidir mais nenhuma vez enquanto o
cont nao tornar a ser zero
sons("errado2.wav");
}
}
function acertou(){
_root.resultado_txt._visible=true;
_root.fundores_mc._visible=true;
if(numTentFalha==0){
_root.resultado_txt.text="Parabéns
acertaste\nà
primeira
";
pontuacao += 125;
}else if(numTentFalha==1){
pontuacao +=100;
_root.resultado_txt.text="Correcto
"+numTentFalha+" vez";
mas
erraste\n
mas
erraste\n
}else{
_root.resultado_txt.text="Correcto
"+numTentFalha+" vezes";
pontuacaoAux = 125/numTentFalha;
pontuacao += Math.round(pontuacaoAux);
}
sons("semiCerto2_ordena.wav");
}
128
Apêndice A – Código ActionScript
function detectaColisao(){
if (_root.resCresce_mc.alvoC1_mc.hitTest(_root.queNumero_mc) &&
_root.resCresce_mc.alvoC1_mc._visible==true){//testar a colisão do
valor escolhido com o rectangulo que quer inserir
if(valor==colocados[0]){//testar a inserção dos valores
correctamente ordenados em que o valor é o valor escolhido para
colocar e o array dos colocados com os valores ordenados
//aparece
colocar
o
_root.resCresce_mc.alvoC1_mc.gotoAndStop(2);
rectangulo verde se for esse o sitio onde se
deve
_global.colid1=1;
}else if(_root.resCresce_mc.resp1_txt.length
nao mudar de cor nos rectangulos que ja têm numeros
!=0){//para
_root.resCresce_mc.alvoC1_mc.gotoAndStop(1);
_global.colid1=0;
}else{
_root.resCresce_mc.alvoC1_mc.gotoAndStop(3);//aparece
se não for esse o sitio
vermelho
_global.colid1=0;
errou();
}
}else{
_root.resCresce_mc.alvoC1_mc.gotoAndStop(1);//senao
aparece o rectangulo branco normal
_global.colid1=0;
}
if( _root.resCresce_mc.alvoC2_mc.hitTest(_root.queNumero_mc) &&
_root.resCresce_mc.alvoC2_mc._visible==true){//_root.resCresce_mc.al
voC2_mc._visible==true --> isto é para não aparecer o resultado se
errou ou acertou quando o rectangulo onde ele detecta a colisao está
invisivel
if(valor==colocados[1]){
_root.resCresce_mc.alvoC2_mc.gotoAndStop(2);
_global.colid2=1;
}else if(_root.resCresce_mc.resp2_txt.length !=0){
_root.resCresce_mc.alvoC2_mc.gotoAndStop(1);
_global.colid2=0;
}else{
_root.resCresce_mc.alvoC2_mc.gotoAndStop(3);
129
Apêndice A – Código ActionScript
_global.colid2=0;
errou();
}
}else{
_root.resCresce_mc.alvoC2_mc.gotoAndStop(1);
_global.colid2=0;
}
if(_root.resCresce_mc.alvoC3_mc.hitTest(_root.queNumero_mc)
_root.resCresce_mc.alvoC3_mc._visible==true){
&&
if(valor==colocados[2]){
_root.resCresce_mc.alvoC3_mc.gotoAndStop(2);
_global.colid3=1;
}else if(_root.resCresce_mc.resp3_txt.length !=0){
_root.resCresce_mc.alvoC3_mc.gotoAndStop(1);
_global.colid3=0;
}else{
_root.resCresce_mc.alvoC3_mc.gotoAndStop(3);
_global.colid3=0;
errou();
}
}else{
_root.resCresce_mc.alvoC3_mc.gotoAndStop(1);
_global.colid3=0;
}
if(_root.resCresce_mc.alvoC4_mc.hitTest(_root.queNumero_mc)
_root.resCresce_mc.alvoC4_mc._visible==true){
if(valor==colocados[3]){
_root.resCresce_mc.alvoC4_mc.gotoAndStop(2);
_global.colid4=1;
}else if(_root.resCresce_mc.resp4_txt.length !=0){
_root.resCresce_mc.alvoC4_mc.gotoAndStop(1);
_global.colid4=0;
}else{
_root.resCresce_mc.alvoC4_mc.gotoAndStop(3);
_global.colid4=0;
130
&&
Apêndice A – Código ActionScript
errou();
}
}else{
_root.resCresce_mc.alvoC4_mc.gotoAndStop(1);
_global.colid4=0;
}
if(_root.resCresce_mc.alvoC5_mc.hitTest(_root.queNumero_mc)
_root.resCresce_mc.alvoC5_mc._visible==true){
&&
if(valor==colocados[4]){
_root.resCresce_mc.alvoC5_mc.gotoAndStop(2);
_global.colid5=1;
}else if(_root.resCresce_mc.resp5_txt.length !=0){
_root.resCresce_mc.alvoC5_mc.gotoAndStop(1);
_global.colid5=0;
}else{
_root.resCresce_mc.alvoC5_mc.gotoAndStop(3);
_global.colid5=0;
errou();
}
}else{
_root.resCresce_mc.alvoC5_mc.gotoAndStop(1);
_global.colid5=0;
}
if( _root.resCresce_mc.alvoC6_mc.hitTest(_root.queNumero_mc) &&
_root.resCresce_mc.alvoC6_mc._visible==true){
if(valor==colocados[5]){
_root.resCresce_mc.alvoC6_mc.gotoAndStop(2);
_global.colid6=1;
}else if(_root.resCresce_mc.resp6_txt.length !=0){
_root.resCresce_mc.alvoC6_mc.gotoAndStop(1);
_global.colid6=0;
}else{
_root.resCresce_mc.alvoC6_mc.gotoAndStop(3);
_global.colid6=0;
errou();
}
131
Apêndice A – Código ActionScript
}else{
_root.resCresce_mc.alvoC6_mc.gotoAndStop(1);
_global.colid6=0;
}
if(_root.resCresce_mc.alvoC7_mc.hitTest(_root.queNumero_mc)
_root.resCresce_mc.alvoC7_mc._visible==true){
&&
if(valor==colocados[6]){
_root.resCresce_mc.alvoC7_mc.gotoAndStop(2);
_global.colid7=1;
}else if(_root.resCresce_mc.resp7_txt.length !=0){
_root.resCresce_mc.alvoC7_mc.gotoAndStop(1);
_global.colid7=0;
}else{
_root.resCresce_mc.alvoC7_mc.gotoAndStop(3);
_global.colid7=0;
errou();
}
}else{
_root.resCresce_mc.alvoC7_mc.gotoAndStop(1);
_global.colid7=0;
}
if(_root.resCresce_mc.alvoC8_mc.hitTest(_root.queNumero_mc)
_root.resCresce_mc.alvoC8_mc._visible==true){
if(valor==colocados[7]){
_root.resCresce_mc.alvoC8_mc.gotoAndStop(2);
_global.colid8=1;
}else if(_root.resCresce_mc.resp8_txt.length !=0){
_root.resCresce_mc.alvoC8_mc.gotoAndStop(1);
_global.colid8=0;
}else{
_root.resCresce_mc.alvoC8_mc.gotoAndStop(3);
_global.colid8=0;
errou();
}
}else{
_root.resCresce_mc.alvoC8_mc.gotoAndStop(1);
132
&&
Apêndice A – Código ActionScript
_global.colid8=0;
}
}
setInterval(detectaColisao,10);
_root.prg1_mc.pc11_mc.onRelease=function() {
this.stopDrag();
if(_global.colid1==0 && _global.colid2==0 && _global.colid3==0
&& _global.colid4==0 && _global.colid5==0 && _global.colid6==0 &&
_global.colid7==0 && _global.colid8==0){
this._x=0;
this._y=0;
}else{
colocaNumero(this);
quadVisiveis();//para por os rectangulos que nao estavam
visiveis em visiveis
acertou();
}
acaba();
};
_root.prg1_mc.pc21_mc.onRelease=function() {
this.stopDrag();
if(_global.colid1==0 && _global.colid2==0 && _global.colid3==0
&& _global.colid4==0 && _global.colid5==0 && _global.colid6==0 &&
_global.colid7==0 && _global.colid8==0){
this._x=98;
this._y=0;
}else{
colocaNumero(this);
quadVisiveis();
acertou();
}
acaba();
};
133
Apêndice A – Código ActionScript
_root.prg1_mc.pc31_mc.onRelease=function() {
this.stopDrag();
if(_global.colid1==0 && _global.colid2==0 && _global.colid3==0
&& _global.colid4==0 && _global.colid5==0 && _global.colid6==0 &&
_global.colid7==0 && _global.colid8==0){
this._x=194;
this._y=0;
}else{
colocaNumero(this);
quadVisiveis();
acertou();
}
acaba();
};
_root.prg1_mc.pc41_mc.onRelease=function() {
this.stopDrag();
if(_global.colid1==0 && _global.colid2==0 && _global.colid3==0
&& _global.colid4==0 && _global.colid5==0 && _global.colid6==0 &&
_global.colid7==0 && _global.colid8==0){
this._x=292;
this._y=0;
}else{
colocaNumero(this);
quadVisiveis();
acertou();
}
acaba();
};
//verifica se os valores estao todos colocados por ordem para depois
aparecer as peças da mota
function acaba(){
for(var j:Number=0; j<=3; j++){
if(verifica[j]==1){
mostra=true;
}else{
134
Apêndice A – Código ActionScript
mostra=false;
j=4;
}
}
if(mostra){
_root.seguinte_btn._visible=true;
_root.prg1_mc.pc11_mc.enabled=false;
_root.prg1_mc.pc21_mc.enabled=false;//para
arrastar quando acertar na expressao
não
deixar
_root.prg1_mc.pc31_mc.enabled=false;
_root.prg1_mc.pc41_mc.enabled=false;
stopAllSounds();
sons("certo.wav");
inc++;
if(monta==2){//para contrololar o inicio pois a animação
começa em 2 para depois incrementar correctamente de 40 em 40 cada
peça da moto adicionada
_root.moto_mc.gotoAndPlay(monta);
monta=0;
monta+=40;
}else{
if(monta==360){
_root.end_mc._visible=true;
if(pontuacao>=5000){
_root.moto_mc.gotoAndPlay(monta);
_root.end_mc.gotoAndPlay(2);
}else{
_root.moto_mc.gotoAndPlay(monta);
_root.end_mc.gotoAndPlay(81);
}
}else{
_root.moto_mc.gotoAndPlay(monta);
monta+=40;
}
}
}
}
135
Apêndice A – Código ActionScript
function pergSeguinte(c:Number){//função para mudar de pergunta
//por os numeros seguintes nas coordenadas iniciais
posicaoInicial();
_root.fundores_mc._visible=false;
_root.resultado_txt._visible=false;
_root.resCresce_mc.resp1_txt._visible=true;
_root.resCresce_mc.resp2_txt._visible=true;
_root.resCresce_mc.resp3_txt._visible=true;
_root.resCresce_mc.resp4_txt._visible=true;
_root.resCresce_mc.resp5_txt._visible=true;
_root.resCresce_mc.resp6_txt._visible=true;
_root.resCresce_mc.resp7_txt._visible=true;
_root.resCresce_mc.resp8_txt._visible=true;
_root.prg1_mc.pc11_mc.enabled=true;
_root.prg1_mc.pc21_mc.enabled=true;
_root.prg1_mc.pc31_mc.enabled=true;
_root.prg1_mc.pc41_mc.enabled=true;
_root.resCresce_mc.resp1_txt.text="";
_root.resCresce_mc.resp2_txt.text="";
_root.resCresce_mc.resp3_txt.text="";
_root.resCresce_mc.resp4_txt.text="";
_root.resCresce_mc.resp5_txt.text="";
_root.resCresce_mc.resp6_txt.text="";
_root.resCresce_mc.resp7_txt.text="";
_root.resCresce_mc.resp8_txt.text="";
_root.resCresce_mc.alvoC1_mc.enabled=true;
_root.resCresce_mc.alvoC2_mc.enabled=true;
_root.resCresce_mc.alvoC3_mc.enabled=true;
_root.resCresce_mc.alvoC4_mc.enabled=true;
_root.resCresce_mc.alvoC5_mc.enabled=true;
_root.resCresce_mc.alvoC6_mc.enabled=true;
_root.resCresce_mc.alvoC7_mc.enabled=true;
_root.resCresce_mc.alvoC8_mc.enabled=true;
136
Apêndice A – Código ActionScript
for(var j:Number=0; j<=3; j++){
verifica[j]=0;
}
if(c==0){
_root.resCresce_mc.resp1_txt.text="50";
_root.resCresce_mc.resp2_txt._visible=false;
_root.resCresce_mc.resp3_txt.text="150";
_root.resCresce_mc.resp4_txt._visible=false;
_root.resCresce_mc.resp5_txt.text="250";
_root.resCresce_mc.resp6_txt._visible=false;
_root.resCresce_mc.resp7_txt.text="350";
_root.resCresce_mc.resp8_txt._visible=false;
colocados=res1;
sinais("<");
_root.incDec_mc.incDec_txt.text="+50";
}else if(c==1){
_root.resCresce_mc.resp1_txt._visible=false;
_root.resCresce_mc.resp2_txt.text="40";
_root.resCresce_mc.resp3_txt._visible=false;
_root.resCresce_mc.resp4_txt.text="80";
_root.resCresce_mc.resp5_txt._visible=false;
_root.resCresce_mc.resp6_txt.text="120";
_root.resCresce_mc.resp7_txt._visible=false;
_root.resCresce_mc.resp8_txt.text="160";
colocados=res2;
sinais("<");
_root.incDec_mc.incDec_txt.text="+20";
}else if(c==2){
_root.resCresce_mc.resp1_txt.text="225";
_root.resCresce_mc.resp2_txt._visible=false;
_root.resCresce_mc.resp3_txt.text="175";
_root.resCresce_mc.resp4_txt.text="150";
_root.resCresce_mc.resp5_txt._visible=false;
_root.resCresce_mc.resp6_txt.text="100";
_root.resCresce_mc.resp7_txt._visible=false;
137
Apêndice A – Código ActionScript
_root.resCresce_mc.resp8_txt._visible=false;
colocados=res3;
sinais(">");
_root.incDec_mc.incDec_txt.text="-25";
}else if(c==3){
_root.resCresce_mc.resp1_txt.text="300";
_root.resCresce_mc.resp2_txt._visible=false;
_root.resCresce_mc.resp3_txt.text="268";
_root.resCresce_mc.resp4_txt._visible=false;
_root.resCresce_mc.resp5_txt._visible=false;
_root.resCresce_mc.resp6_txt.text="220";
_root.resCresce_mc.resp7_txt.text="204";
_root.resCresce_mc.resp8_txt._visible=false;
colocados=res4;
sinais(">");
_root.incDec_mc.incDec_txt.text="-16";
}else if(c==4){
_root.resCresce_mc.resp1_txt.text="68";
_root.resCresce_mc.resp2_txt._visible=false;
_root.resCresce_mc.resp3_txt.text="80";
_root.resCresce_mc.resp4_txt._visible=false;
_root.resCresce_mc.resp5_txt.text="92";
_root.resCresce_mc.resp6_txt._visible=false;
_root.resCresce_mc.resp7_txt.text="104";
_root.resCresce_mc.resp8_txt._visible=false;
colocados=res5;
sinais("<");
_root.incDec_mc.incDec_txt.text="+6";
}else if(c==5){
_root.resCresce_mc.resp1_txt._visible=false;
_root.resCresce_mc.resp2_txt._visible=false;
_root.resCresce_mc.resp3_txt.text="72";
_root.resCresce_mc.resp4_txt.text="90";
_root.resCresce_mc.resp5_txt._visible=false;
_root.resCresce_mc.resp6_txt._visible=false;
138
Apêndice A – Código ActionScript
_root.resCresce_mc.resp7_txt.text="144";
_root.resCresce_mc.resp8_txt.text="162";
colocados=res6;
sinais("<");
_root.incDec_mc.incDec_txt.text="+18";
}else if(c==6){
_root.resCresce_mc.resp1_txt._visible=false;
_root.resCresce_mc.resp2_txt.text="171";
_root.resCresce_mc.resp3_txt._visible=false;
_root.resCresce_mc.resp4_txt.text="153";
_root.resCresce_mc.resp5_txt._visible=false;
_root.resCresce_mc.resp6_txt.text="135";
_root.resCresce_mc.resp7_txt._visible=false;
_root.resCresce_mc.resp8_txt.text="117";
colocados=res7;
sinais(">");
_root.incDec_mc.incDec_txt.text="-9";
}else if(c==7){
_root.resCresce_mc.resp1_txt.text="280";
_root.resCresce_mc.resp2_txt._visible=false;
_root.resCresce_mc.resp3_txt.text="210";
_root.resCresce_mc.resp4_txt._visible=false;
_root.resCresce_mc.resp5_txt.text="140";
_root.resCresce_mc.resp6_txt._visible=false;
_root.resCresce_mc.resp7_txt.text="70";
_root.resCresce_mc.resp8_txt._visible=false;
colocados=res8;
sinais(">");
_root.incDec_mc.incDec_txt.text="-35";
}else if(c==8){
_root.resCresce_mc.resp1_txt.text="62";
_root.resCresce_mc.resp2_txt.text="124";
_root.resCresce_mc.resp3_txt._visible=false;
_root.resCresce_mc.resp4_txt.text="248";
_root.resCresce_mc.resp5_txt._visible=false;
139
Apêndice A – Código ActionScript
_root.resCresce_mc.resp6_txt.text="372";
_root.resCresce_mc.resp7_txt._visible=false;
_root.resCresce_mc.resp8_txt._visible=false;
colocados=res9;
sinais("<");
_root.incDec_mc.incDec_txt.text="+62";
}else if(c==9){
_root.resCresce_mc.resp1_txt._visible=false;
_root.resCresce_mc.resp2_txt.text="500";
_root.resCresce_mc.resp3_txt._visible=false;
_root.resCresce_mc.resp4_txt.text="474";
_root.resCresce_mc.resp5_txt._visible=false;
_root.resCresce_mc.resp6_txt.text="448";
_root.resCresce_mc.resp7_txt._visible=false;
_root.resCresce_mc.resp8_txt.text="422";
colocados=res10;
sinais(">");
_root.incDec_mc.incDec_txt.text="-13";
}
}
_root.resCresce_mc.alvoC1_mc.onRelease=function(){
//ao clicar no rectangulo de resposta para onde
arrastar o numero preenche -se a sub-pergunta do
seleccionado e da pergunta em questao
numTentFalha=0;
_root.resultado_txt._visible=false;
_root.fundores_mc._visible=false;
quadnaoVisiveis(this);
if(pergunta==1){
_root.prg1_mc._visible=true;
for(var j:Number=0; j<=3; j++){
expressao[j].text=res2op1[j];
}
subPerg=0;
}else if(pergunta==5){
140
se quer
quadrado
Apêndice A – Código ActionScript
_root.prg1_mc._visible=true;
for(var j:Number=0; j<=3; j++){
expressao[j].text=res6op1[j];
}
subPerg=0;
}else if(pergunta==6){
_root.prg1_mc._visible=true;
for(var j:Number=0; j<=3; j++){
expressao[j].text=res7op1[j];
}
subPerg=0;
}else if(pergunta==9){
_root.prg1_mc._visible=true;
for(var j:Number=0; j<=3; j++){
expressao[j].text=res10op1[j];
}
subPerg=0;
}
}
_root.resCresce_mc.alvoC2_mc.onRelease=function(){
numTentFalha=0;
_root.resultado_txt._visible=false;
_root.fundores_mc._visible=false;
quadnaoVisiveis(this);
if(pergunta==0){
_root.prg1_mc._visible=true;
for(var j:Number=0; j<=3; j++){
expressao[j].text=res1op1[j];
}
subPerg=0;
}else if(pergunta==2){
_root.prg1_mc._visible=true;
for(var j:Number=0; j<=3; j++){
expressao[j].text=res3op1[j];
}
subPerg=0;
}else if(pergunta==3){
_root.prg1_mc._visible=true;
141
Apêndice A – Código ActionScript
for(var j:Number=0; j<=3; j++){
expressao[j].text=res4op1[j];
}
subPerg=0;
}else if(pergunta==4){
_root.prg1_mc._visible=true;
for(var j:Number=0; j<=3; j++){
expressao[j].text=res5op1[j];
}
subPerg=0;
}else if(pergunta==5){
_root.prg1_mc._visible=true;
for(var j:Number=0; j<=3; j++){
expressao[j].text=res6op2[j];
}
subPerg=1;
}else if(pergunta==7){
_root.prg1_mc._visible=true;
for(var j:Number=0; j<=3; j++){
expressao[j].text=res8op1[j];
}
subPerg=0;
}
}
_root.resCresce_mc.alvoC3_mc.onRelease=function(){
numTentFalha=0;
_root.resultado_txt._visible=false;
_root.fundores_mc._visible=false;
quadnaoVisiveis(this);
if(pergunta==1){
_root.prg1_mc._visible=true;
for(var j:Number=0; j<=3; j++){
expressao[j].text=res2op2[j];
}
subPerg=1;
}else if(pergunta==6){
_root.prg1_mc._visible=true;
142
Apêndice A – Código ActionScript
for(var j:Number=0; j<=3; j++){
expressao[j].text=res7op2[j];
}
subPerg=1;
}else if(pergunta==8){
_root.prg1_mc._visible=true;
for(var j:Number=0; j<=3; j++){
expressao[j].text=res9op1[j];
}
subPerg=0;
}else if(pergunta==9){
_root.prg1_mc._visible=true;
for(var j:Number=0; j<=3; j++){
expressao[j].text=res10op2[j];
}
subPerg=1;
}
}
_root.resCresce_mc.alvoC4_mc.onRelease=function(){
numTentFalha=0;
_root.resultado_txt._visible=false;
_root.fundores_mc._visible=false;
quadnaoVisiveis(this);
if(pergunta==0){
_root.prg1_mc._visible=true;
for(var j:Number=0; j<=3; j++){
expressao[j].text=res1op2[j];
}
subPerg=1;
}else if(pergunta==3){
_root.prg1_mc._visible=true;
for(var j:Number=0; j<=3; j++){
expressao[j].text=res4op2[j];
}
subPerg=1;
}else if(pergunta==4){
_root.prg1_mc._visible=true;
143
Apêndice A – Código ActionScript
for(var j:Number=0; j<=3; j++){
expressao[j].text=res5op2[j];
}
subPerg=1;
}else if(pergunta==7){
_root.prg1_mc._visible=true;
for(var j:Number=0; j<=3; j++){
expressao[j].text=res8op2[j];
}
subPerg=1;
}
}
_root.resCresce_mc.alvoC5_mc.onRelease=function(){
numTentFalha=0;
_root.resultado_txt._visible=false;
_root.fundores_mc._visible=false;
quadnaoVisiveis(this);
if(pergunta==1){
_root.prg1_mc._visible=true;
for(var j:Number=0; j<=3; j++){
expressao[j].text=res2op3[j];
}
subPerg=2;
}else if(pergunta==2){
_root.prg1_mc._visible=true;
for(var j:Number=0; j<=3; j++){
expressao[j].text=res3op2[j];
}
subPerg=1;
}else if(pergunta==3){
_root.prg1_mc._visible=true;
for(var j:Number=0; j<=3; j++){
expressao[j].text=res4op3[j];
}
subPerg=2;
}else if(pergunta==5){
_root.prg1_mc._visible=true;
144
Apêndice A – Código ActionScript
for(var j:Number=0; j<=3; j++){
expressao[j].text=res6op3[j];
}
subPerg=2;
}else if(pergunta==6){
_root.prg1_mc._visible=true;
for(var j:Number=0; j<=3; j++){
expressao[j].text=res7op3[j];
}
subPerg=2;
}else if(pergunta==8){
_root.prg1_mc._visible=true;
for(var j:Number=0; j<=3; j++){
expressao[j].text=res9op2[j];
}
subPerg=1;
}else if(pergunta==9){
_root.prg1_mc._visible=true;
for(var j:Number=0; j<=3; j++){
expressao[j].text=res10op3[j];
}
subPerg=2;
}
}
_root.resCresce_mc.alvoC6_mc.onRelease=function(){
numTentFalha=0;
_root.resultado_txt._visible=false;
_root.fundores_mc._visible=false;
quadnaoVisiveis(this);
if(pergunta==0){
_root.prg1_mc._visible=true;
for(var j:Number=0; j<=3; j++){
expressao[j].text=res1op3[j];
}
subPerg=2;
}else if(pergunta==4){
_root.prg1_mc._visible=true;
145
Apêndice A – Código ActionScript
for(var j:Number=0; j<=3; j++){
expressao[j].text=res5op3[j];
}
subPerg=2;
}else if(pergunta==5){
_root.prg1_mc._visible=true;
for(var j:Number=0; j<=3; j++){
expressao[j].text=res6op4[j];
}
subPerg=3;
} else if(pergunta==7){
_root.prg1_mc._visible=true;
for(var j:Number=0; j<=3; j++){
expressao[j].text=res8op3[j];
}
subPerg=2;
}
}
_root.resCresce_mc.alvoC7_mc.onRelease=function(){
numTentFalha=0;
_root.resultado_txt._visible=false;
_root.fundores_mc._visible=false;
quadnaoVisiveis(this);
if(pergunta==1){
_root.prg1_mc._visible=true;
for(var j:Number=0; j<=3; j++){
expressao[j].text=res2op4[j];
}
subPerg=3;
}else if(pergunta==2){
_root.prg1_mc._visible=true;
for(var j:Number=0; j<=3; j++){
expressao[j].text=res3op3[j];
}
subPerg=2;
}else if(pergunta==6){
_root.prg1_mc._visible=true;
146
Apêndice A – Código ActionScript
for(var j:Number=0; j<=3; j++){
expressao[j].text=res7op4[j];
}
subPerg=3;
}else if(pergunta==8){
_root.prg1_mc._visible=true;
for(var j:Number=0; j<=3; j++){
expressao[j].text=res9op3[j];
}
subPerg=2;
}else if(pergunta==9){
_root.prg1_mc._visible=true;
for(var j:Number=0; j<=3; j++){
expressao[j].text=res10op4[j];
}
subPerg=3;
}
}
_root.resCresce_mc.alvoC8_mc.onRelease=function(){
numTentFalha=0;
_root.resultado_txt._visible=false;
_root.fundores_mc._visible=false;
quadnaoVisiveis(this);
if(pergunta==0){
_root.prg1_mc._visible=true;
for(var j:Number=0; j<=3; j++){
expressao[j].text=res1op4[j];
}
subPerg=3;
}else if(pergunta==2){
_root.prg1_mc._visible=true;
for(var j:Number=0; j<=3; j++){
expressao[j].text=res3op4[j];
}
subPerg=3;
}else if(pergunta==3){
_root.prg1_mc._visible=true;
147
Apêndice A – Código ActionScript
for(var j:Number=0; j<=3; j++){
expressao[j].text=res4op4[j];
}
subPerg=3;
}else if(pergunta==4){
_root.prg1_mc._visible=true;
for(var j:Number=0; j<=3; j++){
expressao[j].text=res5op4[j];
}
subPerg=3;
}else if(pergunta==7){
_root.prg1_mc._visible=true;
for(var j:Number=0; j<=3; j++){
expressao[j].text=res8op4[j];
}
subPerg=3;
}else if(pergunta==8){
_root.prg1_mc._visible=true;
for(var j:Number=0; j<=3; j++){
expressao[j].text=res9op4[j];
}
subPerg=3;
}
}
function posicaoInicial(){
_root.prg1_mc.pc11_mc._x=0;
_root.prg1_mc.pc11_mc._y=0;
_root.prg1_mc.pc21_mc._x=97.5;
_root.prg1_mc.pc21_mc._y=0;
_root.prg1_mc.pc31_mc._x=193.5;
_root.prg1_mc.pc31_mc._y=0;
_root.prg1_mc.pc41_mc._x=290.4;
_root.prg1_mc.pc41_mc._y=0;
}
148
Apêndice A – Código ActionScript
function colocaNumero(num_mc:MovieClip){//mediante a pergunta e
depois a subpergunta faz desaparecer a subpergunta e escreve o
numero no rectangulo da resposta e poe a subpergunta na posicao
inicial
if(pergunta==0){
if(subPerg==0){
_root.resCresce_mc.resp2_txt._visible=true;
_root.resCresce_mc.resp2_txt.text=num_mc.num2_
txt.text;
verifica[0]=1;
posicaoInicial();
_root.prg1_mc._visible=false;
}else if(subPerg==1){
_root.resCresce_mc.resp4_txt._visible=true;
_root.resCresce_mc.resp4_txt.text=num_mc.num3_
txt.text;
verifica[1]=1;
posicaoInicial();
_root.prg1_mc._visible=false;
}else if(subPerg==2){
_root.resCresce_mc.resp6_txt._visible=true;
_root.resCresce_mc.resp6_txt.text=num_mc.num4_
txt.text;
verifica[2]=1;
posicaoInicial();
_root.prg1_mc._visible=false;
}else{
_root.resCresce_mc.resp8_txt._visible=true;
_root.resCresce_mc.resp8_txt.text=num_mc.num1_
txt.text;
verifica[3]=1;
posicaoInicial();
_root.prg1_mc._visible=false;
}
}else if(pergunta==1){
if(subPerg==0){
_root.resCresce_mc.resp1_txt._visible=true;
_root.resCresce_mc.resp1_txt.text=num_mc.num2_
txt.text;
verifica[0]=1;
149
Apêndice A – Código ActionScript
posicaoInicial();
_root.prg1_mc._visible=false;
}else if(subPerg==1){
_root.resCresce_mc.resp3_txt._visible=true;
_root.resCresce_mc.resp3_txt.text=num_mc.num3_
txt.text;
verifica[1]=1;
posicaoInicial();
_root.prg1_mc._visible=false;
}else if(subPerg==2){
_root.resCresce_mc.resp5_txt._visible=true;
_root.resCresce_mc.resp5_txt.text=num_mc.num2_
txt.text;
verifica[2]=1;
posicaoInicial();
_root.prg1_mc._visible=false;
}else{
_root.resCresce_mc.resp7_txt._visible=true;
_root.resCresce_mc.resp7_txt.text=num_mc.num3_
txt.text;
verifica[3]=1;
posicaoInicial();
_root.prg1_mc._visible=false;
}
}else if(pergunta==2){
if(subPerg==0){
_root.resCresce_mc.resp2_txt._visible=true;
_root.resCresce_mc.resp2_txt.text=num_mc.num3_
txt.text;
verifica[0]=1;
posicaoInicial();
_root.prg1_mc._visible=false;
}else if(subPerg==1){
_root.resCresce_mc.resp5_txt._visible=true;
_root.resCresce_mc.resp5_txt.text=num_mc.num2_
txt.text;
verifica[1]=1;
posicaoInicial();
_root.prg1_mc._visible=false;
150
Apêndice A – Código ActionScript
}else if(subPerg==2){
_root.resCresce_mc.resp7_txt._visible=true;
_root.resCresce_mc.resp7_txt.text=num_mc.num3_
txt.text;
verifica[2]=1;
posicaoInicial();
_root.prg1_mc._visible=false;
}else{
_root.resCresce_mc.resp8_txt._visible=true;
_root.resCresce_mc.resp8_txt.text=num_mc.num4_
txt.text;
verifica[3]=1;
posicaoInicial();
_root.prg1_mc._visible=false;
}
}else if(pergunta==3){
if(subPerg==0){
_root.resCresce_mc.resp2_txt._visible=true;
_root.resCresce_mc.resp2_txt.text=num_mc.num4_
txt.text;
verifica[0]=1;
posicaoInicial();
_root.prg1_mc._visible=false;
}else if(subPerg==1){
_root.resCresce_mc.resp4_txt._visible=true;
_root.resCresce_mc.resp4_txt.text=num_mc.num2_
txt.text;
verifica[1]=1;
posicaoInicial();
_root.prg1_mc._visible=false;
}else if(subPerg==2){
_root.resCresce_mc.resp5_txt._visible=true;
_root.resCresce_mc.resp5_txt.text=num_mc.num1_
txt.text;
verifica[2]=1;
posicaoInicial();
_root.prg1_mc._visible=false;
}else{
_root.resCresce_mc.resp8_txt._visible=true;
151
Apêndice A – Código ActionScript
_root.resCresce_mc.resp8_txt.text=num_mc.num3_
txt.text;
verifica[3]=1;
posicaoInicial();
_root.prg1_mc._visible=false;
}
}else if(pergunta==4){
if(subPerg==0){
_root.resCresce_mc.resp2_txt._visible=true;
_root.resCresce_mc.resp2_txt.text=num_mc.num3_
txt.text;
verifica[0]=1;
posicaoInicial();
_root.prg1_mc._visible=false;
}else if(subPerg==1){
_root.resCresce_mc.resp4_txt._visible=true;
_root.resCresce_mc.resp4_txt.text=num_mc.num4_
txt.text;
verifica[1]=1;
posicaoInicial();
_root.prg1_mc._visible=false;
}else if(subPerg==2){
_root.resCresce_mc.resp6_txt._visible=true;
_root.resCresce_mc.resp6_txt.text=num_mc.num4_
txt.text;
verifica[2]=1;
posicaoInicial();
_root.prg1_mc._visible=false;
}else{
_root.resCresce_mc.resp8_txt._visible=true;
_root.resCresce_mc.resp8_txt.text=num_mc.num3_
txt.text;
verifica[3]=1;
posicaoInicial();
_root.prg1_mc._visible=false;
}
}else if(pergunta==5){
if(subPerg==0){
_root.resCresce_mc.resp1_txt._visible=true;
152
Apêndice A – Código ActionScript
_root.resCresce_mc.resp1_txt.text=num_mc.num4_
txt.text;
verifica[0]=1;
posicaoInicial();
_root.prg1_mc._visible=false;
}else if(subPerg==1){
_root.resCresce_mc.resp2_txt._visible=true;
_root.resCresce_mc.resp2_txt.text=num_mc.num3_
txt.text;
verifica[1]=1;
posicaoInicial();
_root.prg1_mc._visible=false;
}else if(subPerg==2){
_root.resCresce_mc.resp5_txt._visible=true;
_root.resCresce_mc.resp5_txt.text=num_mc.num2_
txt.text;
verifica[2]=1;
posicaoInicial();
_root.prg1_mc._visible=false;
}else{
_root.resCresce_mc.resp6_txt._visible=true;
_root.resCresce_mc.resp6_txt.text=num_mc.num1_
txt.text;
verifica[3]=1;
posicaoInicial();
_root.prg1_mc._visible=false;
}
}else if(pergunta==6){
if(subPerg==0){
_root.resCresce_mc.resp1_txt._visible=true;
_root.resCresce_mc.resp1_txt.text=num_mc.num3_
txt.text;
verifica[0]=1;
posicaoInicial();
_root.prg1_mc._visible=false;
}else if(subPerg==1){
_root.resCresce_mc.resp3_txt._visible=true;
_root.resCresce_mc.resp3_txt.text=num_mc.num4_
txt.text;
verifica[1]=1;
153
Apêndice A – Código ActionScript
posicaoInicial();
_root.prg1_mc._visible=false;
}else if(subPerg==2){
_root.resCresce_mc.resp5_txt._visible=true;
_root.resCresce_mc.resp5_txt.text=num_mc.num2_
txt.text;
verifica[2]=1;
posicaoInicial();
_root.prg1_mc._visible=false;
}else{
_root.resCresce_mc.resp7_txt._visible=true;
_root.resCresce_mc.resp7_txt.text=num_mc.num3_
txt.text;
verifica[3]=1;
posicaoInicial();
_root.prg1_mc._visible=false;
}
}else if(pergunta==7){
if(subPerg==0){
_root.resCresce_mc.resp2_txt._visible=true;
_root.resCresce_mc.resp2_txt.text=num_mc.num3_
txt.text;
verifica[0]=1;
posicaoInicial();
_root.prg1_mc._visible=false;
}else if(subPerg==1){
_root.resCresce_mc.resp4_txt._visible=true;
_root.resCresce_mc.resp4_txt.text=num_mc.num4_
txt.text;
verifica[1]=1;
posicaoInicial();
_root.prg1_mc._visible=false;
}else if(subPerg==2){
_root.resCresce_mc.resp6_txt._visible=true;
_root.resCresce_mc.resp6_txt.text=num_mc.num1_
txt.text;
verifica[2]=1;
posicaoInicial();
_root.prg1_mc._visible=false;
154
Apêndice A – Código ActionScript
}else{
_root.resCresce_mc.resp8_txt._visible=true;
_root.resCresce_mc.resp8_txt.text=num_mc.num2_
txt.text;
verifica[3]=1;
posicaoInicial();
_root.prg1_mc._visible=false;
}
}else if(pergunta==8){
if(subPerg==0){
_root.resCresce_mc.resp3_txt._visible=true;
_root.resCresce_mc.resp3_txt.text=num_mc.num4_
txt.text;
verifica[0]=1;
posicaoInicial();
_root.prg1_mc._visible=false;
}else if(subPerg==1){
_root.resCresce_mc.resp5_txt._visible=true;
_root.resCresce_mc.resp5_txt.text=num_mc.num3_
txt.text;
verifica[1]=1;
posicaoInicial();
_root.prg1_mc._visible=false;
}else if(subPerg==2){
_root.resCresce_mc.resp7_txt._visible=true;
_root.resCresce_mc.resp7_txt.text=num_mc.num1_
txt.text;
verifica[2]=1;
posicaoInicial();
_root.prg1_mc._visible=false;
}else{
_root.resCresce_mc.resp8_txt._visible=true;
_root.resCresce_mc.resp8_txt.text=num_mc.num2_
txt.text;
verifica[3]=1;
posicaoInicial();
_root.prg1_mc._visible=false;
}
}else if(pergunta==9){
155
Apêndice A – Código ActionScript
if(subPerg==0){
_root.resCresce_mc.resp1_txt._visible=true;
_root.resCresce_mc.resp1_txt.text=num_mc.num2_
txt.text;
verifica[0]=1;
posicaoInicial();
_root.prg1_mc._visible=false;
}else if(subPerg==1){
_root.resCresce_mc.resp3_txt._visible=true;
_root.resCresce_mc.resp3_txt.text=num_mc.num1_
txt.text;
verifica[1]=1;
posicaoInicial();
_root.prg1_mc._visible=false;
}else if(subPerg==2){
_root.resCresce_mc.resp5_txt._visible=true;
_root.resCresce_mc.resp5_txt.text=num_mc.num3_
txt.text;
verifica[2]=1;
posicaoInicial();
_root.prg1_mc._visible=false;
}else{
_root.resCresce_mc.resp7_txt._visible=true;
_root.resCresce_mc.resp7_txt.text=num_mc.num4_
txt.text;
verifica[3]=1;
posicaoInicial();
_root.prg1_mc._visible=false;
}
}
}
function
quadnaoVisiveis(mov_mc:MovieClip){//para
desaparecerem
todos os rectangulos da resposta excepto aqueles que tivrem valores
e aquele que foi clicado
mov_mc.enabled=false;//para nao carregar outra vez quando
carregado a primeira vez para assim por o cont=0 uma unica vez
naquela subpergunta
var
resposta
expResposta:Array=new
Array();//array
156
dos
quadrados
de
Apêndice A – Código ActionScript
expResposta[0]=_root.resCresce_mc.alvoC1_mc;
expResposta[1]=_root.resCresce_mc.alvoC2_mc;
expResposta[2]=_root.resCresce_mc.alvoC3_mc;
expResposta[3]=_root.resCresce_mc.alvoC4_mc;
expResposta[4]=_root.resCresce_mc.alvoC5_mc;
expResposta[5]=_root.resCresce_mc.alvoC6_mc;
expResposta[6]=_root.resCresce_mc.alvoC7_mc;
expResposta[7]=_root.resCresce_mc.alvoC8_mc;
var expRespostatxt:Array=new Array();//array dos quadrados de
resposta
expRespostatxt[0]=_root.resCresce_mc.resp1_txt
expRespostatxt[1]=_root.resCresce_mc.resp2_txt
expRespostatxt[2]=_root.resCresce_mc.resp3_txt
expRespostatxt[3]=_root.resCresce_mc.resp4_txt
expRespostatxt[4]=_root.resCresce_mc.resp5_txt
expRespostatxt[5]=_root.resCresce_mc.resp6_txt
expRespostatxt[6]=_root.resCresce_mc.resp7_txt
expRespostatxt[7]=_root.resCresce_mc.resp8_txt
for(var i:Number=0; i<=8; i++){
if(expRespostatxt[i].length==0
&&
expResposta[i]
!=mov_mc){
expResposta[i]._visible=false;
}
}
_root.resSomb_mc._visible=true;//quando
desaparecem
quadrados aparecem outros que estao por tras com um efeito sombra
}
function quadVisiveis(){
_root.resCresce_mc.alvoC1_mc._visible=true;
_root.resCresce_mc.alvoC2_mc._visible=true;
_root.resCresce_mc.alvoC3_mc._visible=true;
_root.resCresce_mc.alvoC4_mc._visible=true;
_root.resCresce_mc.alvoC5_mc._visible=true;
_root.resCresce_mc.alvoC6_mc._visible=true;
_root.resCresce_mc.alvoC7_mc._visible=true;
_root.resCresce_mc.alvoC8_mc._visible=true;
157
os
Apêndice A – Código ActionScript
_root.resSomb_mc._visible=false;//quando
tornam
a
visiveis os quadrados desaparecem aqueles com o efeito sombra
}
function sons(s:String){
var som:Sound= new Sound();
som.attachSound(s);
som.start();
}
_root.resCresce_mc.alvoC1_mc.onPress=function(){
sons("clique.wav");
}
_root.resCresce_mc.alvoC2_mc.onPress=function(){
sons("clique.wav");
}
_root.resCresce_mc.alvoC3_mc.onPress=function(){
sons("clique.wav");
}
_root.resCresce_mc.alvoC4_mc.onPress=function(){
sons("clique.wav");
}
_root.resCresce_mc.alvoC5_mc.onPress=function(){
sons("clique.wav");
}
_root.resCresce_mc.alvoC6_mc.onPress=function(){
sons("clique.wav");
}
_root.resCresce_mc.alvoC7_mc.onPress=function(){
sons("clique.wav");
}
_root.resCresce_mc.alvoC8_mc.onPress=function(){
sons("clique.wav");
}
function sinais(sn:String){
_root.resCresce_mc.sinal_txt.text=sn;
_root.resCresce_mc.sinal2_txt.text=sn;
_root.resCresce_mc.sinal3_txt.text=sn;
158
estar
Apêndice A – Código ActionScript
_root.resCresce_mc.sinal4_txt.text=sn;
_root.resCresce_mc.sinal5_txt.text=sn;
_root.resCresce_mc.sinal6_txt.text=sn;
_root.resCresce_mc.sinal7_txt.text=sn;
if(sn==">"){
_root.titulo_txt.text="Completa
(atendendo ao sinal maior do que)";
os
espaços
em
branco
os
espaços
em
branco
}else{
_root.titulo_txt.text="Completa
(atendendo ao sinal menor do que)";
}
}
A.5.4.2 Botão “Início”
on(release){
loadMovie("inicioOrdenacao.swf",_root);
}
A.5.4.3 Botão “Seguinte”
on(release){
if(_root.inc <=10){
_root.gerarAleatorio();
pergSeguinte(pergunta);
_root.seguinte_btn._visible=false;
}else{
_root.seguinte_btn._visible=false;
}
}
159
Apêndice A – Código ActionScript
A.5.5 Parte 2 Nível 2
Nota: O código deste Apêndice é semelhante ao código do Apêndice anterior (Apêndice 5.4),
modificando apenas os arrays dos números a ordenar que passam a ser maiores, a animação
do veículo a montar, entre outras pequenas coisas.
A.6 Jogo das Horas
A.6.1 Página Inicial
A.6.1.1 Botão “Menu”
on(release){
loadMovie("./paginaPrincipal.swf",_root)
}
A.6.1.2 Botão “Nível 1”
on(release){
loadMovie("nivel1Horas.swf",_root);
}
A.6.1.3 Botão “Nível 2”
on(release){
loadMovie("nivel2Horas.swf",_root);
}
160
Apêndice A – Código ActionScript
A.6.2 Nível 1
A.6.2.1 Camada de acções
_root.fundoResp_mc._visible=false;
_root.pergseguinte_btn._visible=false;
var hora:String="";
var minuto:String="";
var pergunta:Number=0;
var inc:Number=0;
var resultado:String="";
var aux:Number=0;
gerarAleatorio();
pergSeguinte(pergunta);
function pergSeguinte(c:Number){
_root.pergseguinte_btn._visible=false;
_root.fundoResp_mc._visible=false;
_root.resultado_txt._visible=false;
bloquearRelogios(true);
_root.reldig1_mc.caixaRelDig1_mc.gotoAndStop(1);
_root.reldig2_mc.caixaRelDig2_mc.gotoAndStop(1);
_root.reldig3_mc.caixaRelDig3_mc.gotoAndStop(1);
_root.reldig4_mc.caixaRelDig4_mc.gotoAndStop(1);
if(c==0){
_root.relog_mc.gotoAndStop(1);
_root.reldig1_mc.hora1_txt.text="14";
_root.reldig1_mc.min1_txt.text="12";
_root.reldig2_mc.hora2_txt.text="01";
_root.reldig2_mc.min2_txt.text="00";
_root.reldig3_mc.hora3_txt.text="12";
_root.reldig3_mc.min3_txt.text="00";
161
Apêndice A – Código ActionScript
_root.reldig4_mc.hora4_txt.text="15";
_root.reldig4_mc.min4_txt.text="30";
}else if(c==1){
_root.relog_mc.gotoAndStop(2);
_root.reldig1_mc.hora1_txt.text="14";
_root.reldig1_mc.min1_txt.text="20";
_root.reldig2_mc.hora2_txt.text="13";
_root.reldig2_mc.min2_txt.text="15";
_root.reldig3_mc.hora3_txt.text="16";
_root.reldig3_mc.min3_txt.text="00";
_root.reldig4_mc.hora4_txt.text="15";
_root.reldig4_mc.min4_txt.text="05";
}else if(c==2){
_root.relog_mc.gotoAndStop(3);
_root.reldig1_mc.hora1_txt.text="03";
_root.reldig1_mc.min1_txt.text="30";
_root.reldig2_mc.hora2_txt.text="18";
_root.reldig2_mc.min2_txt.text="15";
_root.reldig3_mc.hora3_txt.text="03";
_root.reldig3_mc.min3_txt.text="06";
_root.reldig4_mc.hora4_txt.text="16";
_root.reldig4_mc.min4_txt.text="30";
}else if(c==3){
_root.relog_mc.gotoAndStop(4);
_root.reldig1_mc.hora1_txt.text="14";
_root.reldig1_mc.min1_txt.text="45";
_root.reldig2_mc.hora2_txt.text="02";
_root.reldig2_mc.min2_txt.text="15";
_root.reldig3_mc.hora3_txt.text="21";
_root.reldig3_mc.min3_txt.text="10";
_root.reldig4_mc.hora4_txt.text="09";
_root.reldig4_mc.min4_txt.text="02";
}else if(c==4){
_root.relog_mc.gotoAndStop(5);
_root.reldig1_mc.hora1_txt.text="09";
_root.reldig1_mc.min1_txt.text="10";
_root.reldig2_mc.hora2_txt.text="11";
_root.reldig2_mc.min2_txt.text="45";
162
Apêndice A – Código ActionScript
_root.reldig3_mc.hora3_txt.text="21";
_root.reldig3_mc.min3_txt.text="50";
_root.reldig4_mc.hora4_txt.text="10";
_root.reldig4_mc.min4_txt.text="45";
}else if(c==5){
_root.relog_mc.gotoAndStop(6);
_root.reldig1_mc.hora1_txt.text="06";
_root.reldig1_mc.min1_txt.text="40";
_root.reldig2_mc.hora2_txt.text="20";
_root.reldig2_mc.min2_txt.text="32";
_root.reldig3_mc.hora3_txt.text="08";
_root.reldig3_mc.min3_txt.text="30";
_root.reldig4_mc.hora4_txt.text="06";
_root.reldig4_mc.min4_txt.text="08";
}else if(c==6){
_root.relog_mc.gotoAndStop(7);
_root.reldig1_mc.hora1_txt.text="16";
_root.reldig1_mc.min1_txt.text="57";
_root.reldig2_mc.hora2_txt.text="12";
_root.reldig2_mc.min2_txt.text="20";
_root.reldig3_mc.hora3_txt.text="23";
_root.reldig3_mc.min3_txt.text="25";
_root.reldig4_mc.hora4_txt.text="04";
_root.reldig4_mc.min4_txt.text="55";
}else if(c==7){
_root.relog_mc.gotoAndStop(8);
_root.reldig1_mc.hora1_txt.text="04";
_root.reldig1_mc.min1_txt.text="30";
_root.reldig2_mc.hora2_txt.text="18";
_root.reldig2_mc.min2_txt.text="19";
_root.reldig3_mc.hora3_txt.text="17";
_root.reldig3_mc.min3_txt.text="30";
_root.reldig4_mc.hora4_txt.text="03";
_root.reldig4_mc.min4_txt.text="25";
}else if(c==8){
_root.relog_mc.gotoAndStop(9);
_root.reldig1_mc.hora1_txt.text="01";
_root.reldig1_mc.min1_txt.text="08";
163
Apêndice A – Código ActionScript
_root.reldig2_mc.hora2_txt.text="21";
_root.reldig2_mc.min2_txt.text="05";
_root.reldig3_mc.hora3_txt.text="08";
_root.reldig3_mc.min3_txt.text="05";
_root.reldig4_mc.hora4_txt.text="13";
_root.reldig4_mc.min4_txt.text="42";
}else if(c==9){
_root.relog_mc.gotoAndStop(10);
_root.reldig1_mc.hora1_txt.text="05";
_root.reldig1_mc.min1_txt.text="10";
_root.reldig2_mc.hora2_txt.text="02";
_root.reldig2_mc.min2_txt.text="25";
_root.reldig3_mc.hora3_txt.text="02";
_root.reldig3_mc.min3_txt.text="30";
_root.reldig4_mc.hora4_txt.text="14";
_root.reldig4_mc.min4_txt.text="05";
}else if(c==10){
_root.relog_mc.gotoAndStop(11);
_root.reldig1_mc.hora1_txt.text="05";
_root.reldig1_mc.min1_txt.text="40";
_root.reldig2_mc.hora2_txt.text="08";
_root.reldig2_mc.min2_txt.text="25";
_root.reldig3_mc.hora3_txt.text="20";
_root.reldig3_mc.min3_txt.text="05";
_root.reldig4_mc.hora4_txt.text="05";
_root.reldig4_mc.min4_txt.text="08";
}else if(c==11){
_root.relog_mc.gotoAndStop(12);
_root.reldig1_mc.hora1_txt.text="11";
_root.reldig1_mc.min1_txt.text="26";
_root.reldig2_mc.hora2_txt.text="10";
_root.reldig2_mc.min2_txt.text="25";
_root.reldig3_mc.hora3_txt.text="23";
_root.reldig3_mc.min3_txt.text="05";
_root.reldig4_mc.hora4_txt.text="11";
_root.reldig4_mc.min4_txt.text="05";
}else if(c==12){
_root.relog_mc.gotoAndStop(13);
164
Apêndice A – Código ActionScript
_root.reldig1_mc.hora1_txt.text="12";
_root.reldig1_mc.min1_txt.text="06";
_root.reldig2_mc.hora2_txt.text="00";
_root.reldig2_mc.min2_txt.text="06";
_root.reldig3_mc.hora3_txt.text="06";
_root.reldig3_mc.min3_txt.text="00";
_root.reldig4_mc.hora4_txt.text="12";
_root.reldig4_mc.min4_txt.text="30";
}else if(c==13){
_root.relog_mc.gotoAndStop(14);
_root.reldig1_mc.hora1_txt.text="07";
_root.reldig1_mc.min1_txt.text="09";
_root.reldig2_mc.hora2_txt.text="08";
_root.reldig2_mc.min2_txt.text="45";
_root.reldig3_mc.hora3_txt.text="19";
_root.reldig3_mc.min3_txt.text="43";
_root.reldig4_mc.hora4_txt.text="18";
_root.reldig4_mc.min4_txt.text="43";
}else if(c==14){
_root.relog_mc.gotoAndStop(15);
_root.reldig1_mc.hora1_txt.text="16";
_root.reldig1_mc.min1_txt.text="02";
_root.reldig2_mc.hora2_txt.text="04";
_root.reldig2_mc.min2_txt.text="10";
_root.reldig3_mc.hora3_txt.text="05";
_root.reldig3_mc.min3_txt.text="10";
_root.reldig4_mc.hora4_txt.text="14";
_root.reldig4_mc.min4_txt.text="04";
}else if(c==15){
_root.relog_mc.gotoAndStop(16);
_root.reldig1_mc.hora1_txt.text="20";
_root.reldig1_mc.min1_txt.text="25";
_root.reldig2_mc.hora2_txt.text="06";
_root.reldig2_mc.min2_txt.text="40";
_root.reldig3_mc.hora3_txt.text="17";
_root.reldig3_mc.min3_txt.text="40";
_root.reldig4_mc.hora4_txt.text="05";
_root.reldig4_mc.min4_txt.text="08";
165
Apêndice A – Código ActionScript
}else if(c==16){
_root.relog_mc.gotoAndStop(17);
_root.reldig1_mc.hora1_txt.text="13";
_root.reldig1_mc.min1_txt.text="55";
_root.reldig2_mc.hora2_txt.text="01";
_root.reldig2_mc.min2_txt.text="11";
_root.reldig3_mc.hora3_txt.text="11";
_root.reldig3_mc.min3_txt.text="05";
_root.reldig4_mc.hora4_txt.text="14";
_root.reldig4_mc.min4_txt.text="54";
}else if(c==17){
_root.relog_mc.gotoAndStop(18);
_root.reldig1_mc.hora1_txt.text="04";
_root.reldig1_mc.min1_txt.text="09";
_root.reldig2_mc.hora2_txt.text="20";
_root.reldig2_mc.min2_txt.text="20";
_root.reldig3_mc.hora3_txt.text="09";
_root.reldig3_mc.min3_txt.text="04";
_root.reldig4_mc.hora4_txt.text="09";
_root.reldig4_mc.min4_txt.text="21";
}else if(c==18){
_root.relog_mc.gotoAndStop(19);
_root.reldig1_mc.hora1_txt.text="22";
_root.reldig1_mc.min1_txt.text="14";
_root.reldig2_mc.hora2_txt.text="10";
_root.reldig2_mc.min2_txt.text="03";
_root.reldig3_mc.hora3_txt.text="15";
_root.reldig3_mc.min3_txt.text="55";
_root.reldig4_mc.hora4_txt.text="03";
_root.reldig4_mc.min4_txt.text="10";
}else if(c==19){
_root.relog_mc.gotoAndStop(20);
_root.reldig1_mc.hora1_txt.text="07";
_root.reldig1_mc.min1_txt.text="12";
_root.reldig2_mc.hora2_txt.text="07";
_root.reldig2_mc.min2_txt.text="05";
_root.reldig3_mc.hora3_txt.text="07";
_root.reldig3_mc.min3_txt.text="00";
166
Apêndice A – Código ActionScript
_root.reldig4_mc.hora4_txt.text="12";
_root.reldig4_mc.min4_txt.text="35";
}else{
bloquearRelogios(false);
_root.resultado_txt._visible=true;
_root.fundoResp_mc._visible=true;
_root.resultado_txt.textColor=0xFFCC00;
_root.resultado_txt.text="Parabéns\nchegaste
jogo.";
_root.pergseguinte_btn._visible=false;
}
}
function bloquearRelogios(b:Boolean){
_root.reldig1_mc.enabled=b;
_root.reldig2_mc.enabled=b;
_root.reldig3_mc.enabled=b;
_root.reldig4_mc.enabled=b;
}
//gerar aleatóriamente a primeira pergunta
function gerarAleatorio(){
//para nao repetir as operações
pergunta=random(20);
while (pergunta == aux) {
pergunta=random(20);
}
aux = pergunta;
}
function sons(s:String){
var som:Sound= new Sound();
som.attachSound(s);
som.start();
}
167
ao
fim\ndo
Apêndice A – Código ActionScript
A.6.2.2 Clipe de filme “relógio digital 1”
on(rollOver){
_root.reldig1_mc.caixaRelDig1_mc.gotoAndPlay(2);
}
on(rollOut){
_root.reldig1_mc.caixaRelDig1_mc.gotoAndPlay(1);
}
on(press){
_root.reldig1_mc.caixaRelDig1_mc.gotoAndPlay(3);
//som clique
_root.sons("clique.wav");
}
on(release){
_root.fundoResp_mc._visible=true;
_root.resultado_txt._visible=true;
_root.reldig1_mc.caixaRelDig1_mc.gotoAndPlay(2);
if(_root.hora==_root.reldig1_mc.hora1_txt.text
_root.minuto==_root.reldig1_mc.min1_txt.text){
&&
_root.resultado_txt.textColor=0x006600;
_root.resultado_txt.text="Certo,
pergunta\nseguinte";
passa
para\n
//som certo
_root.sons("certo.wav");
_root.pergseguinte_btn._visible=true;
_root.bloquearRelogios(false);
}else{
_root.resultado_txt.textColor=0xFF0000;
_root.resultado_txt.text="Errado, tenta\noutra vez";
//som errado
_root.sons("errado2.wav");
}
}
168
a
Apêndice A – Código ActionScript
A.6.2.3 Clipe de filme “relógio digital 2”
on(rollOver){
_root.reldig2_mc.caixaRelDig2_mc.gotoAndPlay(2);
}
on(rollOut){
_root.reldig2_mc.caixaRelDig2_mc.gotoAndPlay(1);
}
on(press){
_root.reldig2_mc.caixaRelDig2_mc.gotoAndPlay(3);
//som clique
_root.sons("clique.wav");
}
on(release){
_root.fundoResp_mc._visible=true;
_root.resultado_txt._visible=true;
_root.reldig2_mc.caixaRelDig2_mc.gotoAndPlay(2);
if(_root.hora==_root.reldig2_mc.hora2_txt.text
_root.minuto==_root.reldig2_mc.min2_txt.text){
&&
_root.resultado_txt.textColor=0x006600;
_root.resultado_txt.text="Certo,
pergunta\nseguinte";
passa
para\n
//som certo
_root.sons("certo.wav");
_root.pergseguinte_btn._visible=true;
_root.bloquearRelogios(false);
}else{
_root.resultado_txt.textColor=0xFF0000;
_root.resultado_txt.text="Errado, tenta\noutra vez";
//som errado
_root.sons("errado2.wav");
}
}
169
a
Apêndice A – Código ActionScript
A.6.2.4 Clipe de filme “relógio digital 3”
on(rollOver){
_root.reldig3_mc.caixaRelDig3_mc.gotoAndPlay(2);
}
on(rollOut){
_root.reldig3_mc.caixaRelDig3_mc.gotoAndPlay(1);
}
on(press){
_root.reldig3_mc.caixaRelDig3_mc.gotoAndPlay(3);
//som clique
_root.sons("clique.wav");
}
on(release){
_root.fundoResp_mc._visible=true;
_root.resultado_txt._visible=true;
_root.reldig3_mc.caixaRelDig3_mc.gotoAndPlay(2);
if(_root.hora==_root.reldig3_mc.hora3_txt.text
_root.minuto==_root.reldig3_mc.min3_txt.text){
&&
_root.resultado_txt.textColor=0x006600;
_root.resultado_txt.text="Certo,
pergunta\nseguinte";
passa
para\n
//som certo
_root.sons("certo.wav");
_root.pergseguinte_btn._visible=true;
_root.bloquearRelogios(false);
}else{
_root.resultado_txt.textColor=0xFF0000;
_root.resultado_txt.text="Errado, tenta\noutra vez";
//som errado
_root.sons("errado2.wav");
}
}
170
a
Apêndice A – Código ActionScript
A.6.2.5 Clipe de filme “relógio digital 4”
on(rollOver){
_root.reldig4_mc.caixaRelDig4_mc.gotoAndPlay(2);
}
on(rollOut){
_root.reldig4_mc.caixaRelDig4_mc.gotoAndPlay(1);
}
on(press){
_root.reldig4_mc.caixaRelDig4_mc.gotoAndPlay(3);
//som clique
_root.sons("clique.wav");
}
on(release){
_root.fundoResp_mc._visible=true;
_root.resultado_txt._visible=true;
_root.reldig4_mc.caixaRelDig4_mc.gotoAndPlay(2);
if(_root.hora==_root.reldig4_mc.hora4_txt.text
_root.minuto==_root.reldig4_mc.min4_txt.text){
&&
_root.resultado_txt.textColor=0x006600;
_root.resultado_txt.text="Certo,
pergunta\nseguinte";
passa
para\n
//som certo
_root.sons("certo.wav");
_root.pergseguinte_btn._visible=true;
_root.bloquearRelogios(false);
}else{
_root.resultado_txt.textColor=0xFF0000;
_root.resultado_txt.text="Errado, tenta\noutra vez";
//som errado
_root.sons("errado2.wav");
}
}
171
a
Apêndice A – Código ActionScript
A.6.2.6 Botão “Início”
on(release){
loadMovie("inicioHoras.swf",_root);
}
A.6.2.7 Botão “Seguinte”
on(release){
if(_root.inc < 15){
gerarAleatorio();
pergSeguinte(pergunta);
_root.inc++;
}else{
pergunta=21;
pergSeguinte(pergunta);
}
}
A.6.3 Nível 2
A.6.3.1 Camada de acções
_root.verify_btn._visible=false;
var horas:String="";
_root.fundoResp_mc._visible=false;
_root.pergseguinte_btn._visible=false;
var pergunta:Number=0;
var inc:Number=0;
var resultado:String="";
var aux:Number=0;
gerarAleatorio();
172
Apêndice A – Código ActionScript
pergSeguinte(pergunta);
function pergSeguinte(c:Number){
_root.horas_cmb.enabled=true;
_root.pergseguinte_btn._visible=false;
_root.fundoResp_mc._visible=false;
_root.resultado_txt._visible=false;
if(c==0){
_root.relog_mc.gotoAndStop(1);
_root.horas_cmb.removeAll();
_root.horas_cmb.addItem("--selecciona um item--",0);
_root.horas_cmb.addItem("cinco horas","cinco horas");
_root.horas_cmb.addItem("três
minutos","três horas e cinco minutos");
horas
e
cinco
_root.horas_cmb.addItem("dez horas","dez horas");//*
_root.horas_cmb.addItem("meio dia e cinquenta minutos");
}else if(c==1){
_root.relog_mc.gotoAndStop(2);
_root.horas_cmb.removeAll();
_root.horas_cmb.addItem("--selecciona um item--",0);
_root.horas_cmb.addItem("dezanove
minutos","dezanove horas e cinco minutos");//*
horas
_root.horas_cmb.addItem("treze horas e
minutos","treze horas e trinta e cinco minutos");
_root.horas_cmb.addItem("sete
horas e um minuto");
_root.horas_cmb.addItem("uma
hora e sete minutos");
horas
hora
e
e
e
trinta
cinco
e
cinco
um
minuto","sete
sete
minutos","uma
}else if(c==2){
_root.relog_mc.gotoAndStop(3);
_root.horas_cmb.removeAll();
_root.horas_cmb.addItem("--selecciona um item--",0);
_root.horas_cmb.addItem("vinte e três horas e cinquenta
minutos","vinte e três horas e cinquenta minutos");
_root.horas_cmb.addItem("vinte e duas horas e cinquenta e
três minutos","vinte e duas horas e cinquenta e três minutos");//*
_root.horas_cmb.addItem("dez
horas e onze minutos");
horas
_root.horas_cmb.addItem("dez
minutos","dez horas e cinquenta minutos");
173
e
horas
onze
e
minutos","dez
cinquenta
Apêndice A – Código ActionScript
}else if(c==3){
_root.relog_mc.gotoAndStop(4);
_root.horas_cmb.removeAll();
_root.horas_cmb.addItem("--selecciona um item--",0);
_root.horas_cmb.addItem("vinte e três
minutos","vinte e três horas e quatro minutos");
horas
e
quatro
_root.horas_cmb.addItem("quatro horas e cinquenta e cinco
minutos","quatro horas e cinquenta e cinco minutos");
_root.horas_cmb.addItem("onze
horas
e
minutos","onze horas e vinte e dois minutos");//*
_root.horas_cmb.addItem("dezasseis
minutos","dezasseis horas e onze minutos");
vinte
horas
e
dois
e
onze
}else if(c==4){
_root.relog_mc.gotoAndStop(5);
_root.horas_cmb.removeAll();
_root.horas_cmb.addItem("--selecciona um item--",0);
_root.horas_cmb.addItem("vinte e uma
minutos","vinte e uma horas e quinze minutos");//*
horas
e
quinze
_root.horas_cmb.addItem("quinze horas e quarenta e cinco
minutos","quinze horas e quarenta e cinco minutos");
_root.horas_cmb.addItem("nove horas e três minutos","nove
horas e três minutos");
_root.horas_cmb.addItem("três horas e nove minutos","três
horas e nove minutos");
}else if(c==5){
_root.relog_mc.gotoAndStop(6);
_root.horas_cmb.removeAll();
_root.horas_cmb.addItem("--selecciona um item--",0);
_root.horas_cmb.addItem("nove
minutos","nove horas e cinco minutos");
horas
_root.horas_cmb.addItem("cinco
minutos","cinco horas e nove minutos");
horas
e
e
cinco
nove
_root.horas_cmb.addItem("vinte e uma horas e vinte
cinco minutos","vinte e uma horas e vinte e cinco minutos");
e
_root.horas_cmb.addItem("dezassete horas e quarenta e
quatro minutos","dezassete horas e quarenta e quatro minutos");//*
}else if(c==6){
_root.relog_mc.gotoAndStop(7);
_root.horas_cmb.removeAll();
_root.horas_cmb.addItem("--selecciona um item--",0);
_root.horas_cmb.addItem("vinte
três horas");
174
e
três
horas","vinte
e
Apêndice A – Código ActionScript
_root.horas_cmb.addItem("vinte e três horas e cinquenta e
sete minutos","vinte e três horas e cinquenta e sete minutos");//*
_root.horas_cmb.addItem("vinte e três horas e cinquenta e
cinco minutos","vinte e três horas e cinquenta e cinco minutos");
_root.horas_cmb.addItem("doze horas","doze horas");
}else if(c==7){
_root.relog_mc.gotoAndStop(8);
_root.horas_cmb.removeAll();
_root.horas_cmb.addItem("--selecciona um item--",0);
_root.horas_cmb.addItem("doze
minutos","doze horas e trinta minutos");
horas
e
trinta
_root.horas_cmb.addItem("seis horas e doze minutos","seis
horas e doze minutos");
_root.horas_cmb.addItem("dezoito
horas");//*
horas","dezoito
_root.horas_cmb.addItem("dezassete
horas","dezassete
horas");
}else if(c==8){
_root.relog_mc.gotoAndStop(9);
_root.horas_cmb.removeAll();
_root.horas_cmb.addItem("--selecciona um item--",0);
_root.horas_cmb.addItem("doze horas e seis minutos","doze
horas e seis minutos");
_root.horas_cmb.addItem("meio dia e meia hora","meio dia
e meia hora");//*
_root.horas_cmb.addItem("seis horas","seis horas");
_root.horas_cmb.addItem("meio dia","meio dia");
}else if(c==9){
_root.relog_mc.gotoAndStop(10);
_root.horas_cmb.removeAll();
_root.horas_cmb.addItem("--selecciona um item--",0);
_root.horas_cmb.addItem("onze
menos um quarto");//*
_root.horas_cmb.addItem("dez
horas e um quarto");
menos
horas
um
e
um
quarto","onze
quarto","dez
_root.horas_cmb.addItem("nove horas e onze minutos","nove
horas e onze minutos");
_root.horas_cmb.addItem("vinte e uma horas e cinquenta e
cinco minutos","vinte e uma horas e cinquenta e cinco minutos");
}else if(c==10){
_root.relog_mc.gotoAndStop(11);
_root.horas_cmb.removeAll();
175
Apêndice A – Código ActionScript
_root.horas_cmb.addItem("--selecciona um item--",0);
_root.horas_cmb.addItem("cinco
minutos","cinco horas e vinte minutos");
horas
_root.horas_cmb.addItem("quatro
minutos","quatro horas e cinco minutos");
horas
_root.horas_cmb.addItem("três horas
minutos","três horas e vinte e cinco minutos");
e
e
vinte
e
cinco
vinte
_root.horas_cmb.addItem("quatro horas e vinte
minutos","quatro horas e vinte e cinco minutos");//*
e
cinco
e
cinco
}else if(c==11){
_root.relog_mc.gotoAndStop(12);
_root.horas_cmb.removeAll();
_root.horas_cmb.addItem("--selecciona um item--",0);
_root.horas_cmb.addItem("meia noite","meia noite");
_root.horas_cmb.addItem("doze horas e cinquenta e cinco
minutos","doze horas e cinquenta e cinco minutos");
_root.horas_cmb.addItem("vinte
três horas");//*
e
três
horas","vinte
e
_root.horas_cmb.addItem("vinte
duas horas");
e
duas
horas","vinte
e
}else if(c==12){
_root.relog_mc.gotoAndStop(13);
_root.horas_cmb.removeAll();
_root.horas_cmb.addItem("--selecciona um item--",0);
_root.horas_cmb.addItem("nove horas e meia","nove horas e
meia");
_root.horas_cmb.addItem("três
quarto","três horas menos um quarto");//*
_root.horas_cmb.addItem("nove
horas e um quarto");
horas
horas
_root.horas_cmb.addItem("vinte
e
minutos","vinte e uma horas e três minutos");
e
menos
um
uma
um
quarto","nove
horas
e
três
}else if(c==13){
_root.relog_mc.gotoAndStop(14);
_root.horas_cmb.removeAll();
_root.horas_cmb.addItem("--selecciona um item--",0);
_root.horas_cmb.addItem("cinco
horas
minutos","cinco horas e quarenta minutos");//*
_root.horas_cmb.addItem("cinco
minutos","cinco horas e oito minutos");
horas
_root.horas_cmb.addItem("vinte horas
minutos","vinte horas e vinte e cinco minutos");
176
e
e
quarenta
e
vinte
oito
e
cinco
Apêndice A – Código ActionScript
_root.horas_cmb.addItem("seis
minutos","seis horas e quarenta minutos");
horas
e
quarenta
}else if(c==14){
_root.relog_mc.gotoAndStop(15);
_root.horas_cmb.removeAll();
_root.horas_cmb.addItem("--selecciona um item--",0);
_root.horas_cmb.addItem("treze horas e um quarto","treze
horas e um quarto");
_root.horas_cmb.addItem("quinze
minutos","quinze horas e cinco minutos");//*
_root.horas_cmb.addItem("três
horas e um minuto");
_root.horas_cmb.addItem("uma
hora e três minutos");
horas
horas
hora
e
e
e
cinco
um
minuto","três
três
minutos","uma
}else if(c==15){
_root.relog_mc.gotoAndStop(16);
_root.horas_cmb.removeAll();
_root.horas_cmb.addItem("--selecciona um item--",0);
_root.horas_cmb.addItem("passam cinco minutos das catorze
horas","passam cinco minutos das catorze horas");
_root.horas_cmb.addItem("catorze
minutos","catorze horas e cinco minutos");
horas
e
_root.horas_cmb.addItem("passam dez minutos
horas","passam dez minutos das treze horas");//*
cinco
das
treze
_root.horas_cmb.addItem("treze horas","treze horas");
}else if(c==16){
_root.relog_mc.gotoAndStop(17);
_root.horas_cmb.removeAll();
_root.horas_cmb.addItem("--selecciona um item--",0);
_root.horas_cmb.addItem("faltam vinte minutos
onze horas","faltam vinte minutos para as onze horas");
para
_root.horas_cmb.addItem("vinte e três horas
minutos","vinte e três horas e quarenta minutos");
e
quarenta
_root.horas_cmb.addItem("vinte
minutos","vinte horas e onze minutos");
e
onze
menos
cinco
horas
_root.horas_cmb.addItem("oito
horas
minutos","oito horas menos cinco minutos");//*
}else if(c==17){
_root.relog_mc.gotoAndStop(18);
_root.horas_cmb.removeAll();
_root.horas_cmb.addItem("--selecciona um item--",0);
177
as
Apêndice A – Código ActionScript
_root.horas_cmb.addItem("passam vinte e cinco minutos das
duas horas","passam vinte e cinco minutos das duas horas");//*
_root.horas_cmb.addItem("catorze
minutos","catorze horas e cinco minutos");
horas
_root.horas_cmb.addItem("duas
minutos","duas horas e vinte minutos");
e
horas
_root.horas_cmb.addItem("passam quinze
horas","passam quinze minutos das duas horas");
cinco
e
vinte
minutos
das
duas
}else if(c==18){
_root.relog_mc.gotoAndStop(19);
_root.horas_cmb.removeAll();
_root.horas_cmb.addItem("--selecciona um item--",0);
_root.horas_cmb.addItem("nove horas","nove horas");
_root.horas_cmb.addItem("faltam vinte minutos para as dez
horas","faltam vinte minutos para as dez horas");//*
_root.horas_cmb.addItem("oito
minutos","oito horas e quarenta minutos");
horas
e
quarenta
_root.horas_cmb.addItem("faltam quinze minutos
dez horas","faltam quinze minutos para as dez horas");
para
as
}else if(c==19){
_root.relog_mc.gotoAndStop(20);
_root.horas_cmb.removeAll();
_root.horas_cmb.addItem("--selecciona um item--",0);
_root.horas_cmb.addItem("dez horas e vinte minutos","dez
horas e vinte minutos");
_root.horas_cmb.addItem("quatro
minutos","quatro horas e dez minutos");
horas
_root.horas_cmb.addItem("dezasseis
horas
minutos","dezasseis horas menos dez minutos");//*
_root.horas_cmb.addItem("vinte e duas
minutos","vinte e duas horas e quatro minutos");
e
dez
menos
dez
horas
e
quatro
}else{
_root.horas_cmb.removeAll();
_root.resultado_txt._visible=true;
_root.fundoResp_mc._visible=true;
_root.resultado_txt.textColor=0xFFCC00;
_root.resultado_txt.text="Parabéns\nchegaste
jogo.";
_root.pergseguinte_btn._visible=false;
_root.horas_cmb.enabled=false;
}
}
178
ao
fim\ndo
Apêndice A – Código ActionScript
//gerar aleatóriamente a primeira pergunta
function gerarAleatorio(){
//para nao repetir as operações
pergunta=random(20);
while (pergunta == aux) {
pergunta=random(20);
}
aux = pergunta;
}
function sons(s:String){
var som:Sound= new Sound();
som.attachSound(s);
som.start();
}
A.6.3.2 Caixa de selecção (comboBox)
on(change){
_root.verify_btn._visible=true;
//som clique
_root.sons("clique.wav");
}
on(open){
//som clique
_root.sons("clique.wav");
}
A.6.3.3 Botão “Verifica”
on(release){
_root.fundoResp_mc._visible=true;
_root.resultado_txt._visible=true;
if(horas==_root.horas_cmb.getValue()){
_root.resultado_txt.textColor=0x006600;
179
Apêndice A – Código ActionScript
_root.resultado_txt.text="Certo,
pergunta\nseguinte";
passa
para\n
//som certo
_root.sons("certo.wav");
_root.pergseguinte_btn._visible=true;
_root.horas_cmb.enabled=false;
_root.verify_btn._visible=false;
}else{
_root.resultado_txt.textColor=0xFF0000;
_root.resultado_txt.text="Errado, tenta\noutra vez";
//som errado
_root.sons("errado2.wav");
}
}
A.6.3.4 Botão “Início”
on(release){
loadMovie("inicioHoras.swf",_root);
}
A.6.3.5 Botão “Seguinte”
on(release){
if(_root.inc < 15){
_root.gerarAleatorio();
pergSeguinte(pergunta);
_root.inc++;
}else{
pergunta=21;
pergSeguinte(pergunta);
}
}
180
a
Apêndice A – Código ActionScript
A.7 Página Principal
A.7.1 Camada de acções
var permissao:Boolean=false;
fscommand("fullscreen", true);
fscommand("showmenu", false);
var flag:Boolean=true;
//inciar o som de fundo
var somFundo:Sound= new Sound();
somFundo.attachSound("menuPrincipal.wav");
somFundo.start();
//quando a reprodução do som de fundo chega ao fim
somFundo.onSoundComplete=function(){
somFundo.start();
}
A.7.2 Botão “1º e 2º ano”
on(release){
loadMovie("./index.swf",_root);
_root.somFundo.setVolume(100);
}
on(rollOver){
if(_root.permissao==true){
_root.apresent_mc._alpha=20;
_root.printsjogs_mc.gotoAndPlay(60);
}
}
on(rollOut){
if(_root.permissao==true){
_root.apresent_mc._alpha=100;
_root.printsjogs_mc.gotoAndPlay(66);
181
começa do inicio
Apêndice A – Código ActionScript
}
}
A.7.3 Botão “3º e 4º ano”
on(release){
_root.submenu_mc.gotoAndPlay(1);
}
A.7.4 Botão “Operações”
on(release){
loadMovie("./inicioMinhoca.swf",_root);
_root.somFundo.setVolume(100);//para
reproduzidos todos os sons dos mesmos
nos
jogos
serem
//e também para dar som quando regressar a esta página
}
on(rollOver){
if(_root.permissao==true){//para mostrar as imagens do jogo no
fim da animação
_root.apresent_mc._alpha=20;
_root.printsjogs_mc.gotoAndPlay(2);
}
}
on(rollOut){
if(_root.permissao==true){
_root.apresent_mc._alpha=100;
_root.printsjogs_mc.gotoAndPlay(6);
}
}
182
Apêndice A – Código ActionScript
A.7.5 Botão “Dinheiro”
on(release){
loadMovie("./inicioProblemas.swf",_root);
_root.somFundo.setVolume(100);
}
on(rollOver){
if(_root.permissao==true){
_root.apresent_mc._alpha=20;
_root.printsjogs_mc.gotoAndPlay(12);
}
}
on(rollOut){
if(_root.permissao==true){
_root.apresent_mc._alpha=100;
_root.printsjogs_mc.gotoAndPlay(18);
}
}
A.7.6 Botão “Múltiplos”
on(release){
loadMovie("./inicioPeixe.swf",_root);
_root.somFundo.setVolume(100);
}
on(rollOver){
if(_root.permissao==true){
_root.apresent_mc._alpha=20;
_root.printsjogs_mc.gotoAndPlay(24);
}
}
on(rollOut){
if(_root.permissao==true){
_root.apresent_mc._alpha=100;
183
Apêndice A – Código ActionScript
_root.printsjogs_mc.gotoAndPlay(30);
}
}
A.7.7 Botão “Fracções”
on(release){
loadMovie("./inicioPizza.swf",_root);
_root.somFundo.setVolume(100);
}
on(rollOver){
if(_root.permissao==true){
_root.apresent_mc._alpha=20;
_root.printsjogs_mc.gotoAndPlay(36);
}
}
on(rollOut){
if(_root.permissao==true){
_root.apresent_mc._alpha=100;
_root.printsjogs_mc.gotoAndPlay(42);
}
}
A.7.8 Botão “Ordenação”
on(release){
loadMovie("./inicioOrdenacao.swf",_root);
_root.somFundo.setVolume(100);
}
on(rollOver){
if(_root.permissao==true){
_root.apresent_mc._alpha=20;
_root.printsjogs_mc.gotoAndPlay(72);
}
}
184
Apêndice A – Código ActionScript
on(rollOut){
if(_root.permissao==true){
_root.apresent_mc._alpha=100;
_root.printsjogs_mc.gotoAndPlay(78);
}
}
A.7.9 Botão “Horas”
on(release){
loadMovie("./inicioHoras.swf",_root);
_root.somFundo.setVolume(100);
}
on(rollOver){
if(_root.permissao==true){
_root.apresent_mc._alpha=20;
_root.printsjogs_mc.gotoAndPlay(48);
}
}
on(rollOut){
if(_root.permissao==true){
_root.apresent_mc._alpha=100;
_root.printsjogs_mc.gotoAndPlay(54);
}
}
A.7.10 Clipe de filme “Com/Sem Som”
on(rollOver){
if(_root.flag==true){
_root.botaoSom_mc.gotoAndStop(2);
}else{
_root.botaoSom_mc.gotoAndStop(5);
}
}
185
Apêndice A – Código ActionScript
on(rollOut){
if(_root.flag==true){
_root.botaoSom_mc.gotoAndStop(1);
}else{
_root.botaoSom_mc.gotoAndStop(4);
}
}
on(press){
if(_root.flag==true){
_root.botaoSom_mc.gotoAndStop(3);
}else{
_root.botaoSom_mc.gotoAndStop(6);
}
var som2:Sound= new Sound();
som2.attachSound("clique.wav");
som2.setVolume(100);//para se ouvir o som do clique do botao do
som
som2.start();
}
on(release){
_root.botaoSom_mc.gotoAndStop(2);
if(_root.flag==true){
_root.somFundo.setVolume(0);//sem som
_root.flag=false;
_root.botaoSom_mc.gotoAndStop(5);
}else{
_root.somFundo.setVolume(100);//com som
_root.flag=true;
_root.botaoSom_mc.gotoAndStop(2);
}
}
186

Documentos relacionados