198
- 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

Exemolo relatorio

  • Upload
    2011990

  • View
    222

  • Download
    1

Embed Size (px)

Citation preview

Page 1: Exemolo relatorio

-

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

Page 2: Exemolo relatorio

-

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

Page 3: Exemolo relatorio

- iii -

A Escola Superior de Tecnologia e Gestão não se responsabiliza pelas opiniões expressas neste relatório.

Page 4: Exemolo relatorio

- iv -

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> Arguente Aceite para avaliação da disciplina de Projecto

Page 5: Exemolo relatorio

- v -

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.

Page 6: Exemolo relatorio

- vi -

Conteúdo

1 Introdução ..................................................................................................................... 1

2 Objectivos ...................................................................................................................... 2

3 Conteúdos Utilizados..................................................................................................... 3

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

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

4.2 Piano ........................................................................................................................ 9

4.3 Audacity ..................................................................................................................10

4.4 Adobe Photoshop CS2 .............................................................................................10

5 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

Page 7: Exemolo relatorio

- vii -

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

Page 8: Exemolo relatorio

- viii -

A.2.2.4 Botão “Verifica se acertaste” ..........................................................................55 A.2.2.5 Botão “Problema seguinte” ............................................................................55 A.2.2.6 Botão “Problema anterior” .............................................................................56 A.2.2.7 Clipe de filme “Nota de 500 €” ......................................................................56 A.2.2.8 Clipe de filme “Nota de 200 €” ......................................................................57 A.2.2.9 Clipe de filme “Nota de 100 €” ......................................................................57 A.2.2.10 Clipe de filme “Nota de 50 €” .....................................................................58 A.2.2.11 Clipe de filme “Nota de 20 €” .....................................................................58 A.2.2.12 Clipe de filme “Nota de 10 €” .....................................................................59 A.2.2.13 Clipe de filme “Nota de 5 €” .......................................................................59 A.2.2.14 Clipe de filme “Moeda de 2 €” ....................................................................60 A.2.2.15 Clipe de filme “Moeda de 1 €” ....................................................................60 A.2.2.16 Clipe de filme “Moeda de 50 cent.” ............................................................61 A.2.2.17 Clipe de filme “Moeda de 20 cent.” ............................................................61 A.2.2.18 Clipe de filme “Moeda de 10 cent.” ............................................................62 A.2.2.19 Clipe de filme “Moeda de 5 cent.” ..............................................................62 A.2.2.20 Clipe de filme “Moeda de 2 cent.” ..............................................................63 A.2.2.21 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

Page 9: Exemolo relatorio

- ix -

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

Page 10: Exemolo relatorio

- x -

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

Page 11: Exemolo relatorio

- xi -

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

Page 12: Exemolo relatorio
Page 13: Exemolo relatorio

CAPÍTULO 1. Introdução

1

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 dando-lhes 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.

Page 14: Exemolo relatorio

CAPÍTULO 2. Objectivos

2

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.

Page 15: Exemolo relatorio

CAPÍTULO 3. Conteúdos Utilizados

3

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).

Page 16: Exemolo relatorio

CAPÍTULO 3. Conteúdos Utilizados

4

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

Page 17: Exemolo relatorio

CAPÍTULO 4. Software Utilizado

5

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).

Page 18: Exemolo relatorio

CAPÍTULO 4. Software Utilizado

6

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.

Page 19: Exemolo relatorio

CAPÍTULO 4. Software Utilizado

7

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.

Page 20: Exemolo relatorio

CAPÍTULO 4. Software Utilizado

8

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

Page 21: Exemolo relatorio

CAPÍTULO 4. Software Utilizado

9

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.

Page 22: Exemolo relatorio

CAPÍTULO 4. Software Utilizado

10

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.

Page 23: Exemolo relatorio

CAPÍTULO 4. Software Utilizado

11

Figura .7 - Janela do Adobe Photoshop CS2.

Esta aplicação serviu para editar todas as imagens inseridas nos jogos do projecto.

Page 24: Exemolo relatorio

CAPÍTULO 5. Estrutura e Funcionamento do Site

12

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).

Page 25: Exemolo relatorio

CAPÍTULO 5. Estrutura e Funcionamento do Site

13

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

Page 26: Exemolo relatorio

CAPÍTULO 5. Estrutura e Funcionamento do Site

14

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.

Page 27: Exemolo relatorio

CAPÍTULO 5. Estrutura e Funcionamento do Site

15

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.

Page 28: Exemolo relatorio

CAPÍTULO 5. Estrutura e Funcionamento do Site

16

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

Page 29: Exemolo relatorio

CAPÍTULO 5. Estrutura e Funcionamento do Site

17

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.

Page 30: Exemolo relatorio

CAPÍTULO 5. Estrutura e Funcionamento do Site

18

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.

Page 31: Exemolo relatorio

CAPÍTULO 5. Estrutura e Funcionamento do Site

19

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.

Page 32: Exemolo relatorio

CAPÍTULO 5. Estrutura e Funcionamento do Site

20

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).

Page 33: Exemolo relatorio

CAPÍTULO 5. Estrutura e Funcionamento do Site

21

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”).

Page 34: Exemolo relatorio

CAPÍTULO 5. Estrutura e Funcionamento do Site

22

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:

Page 35: Exemolo relatorio

CAPÍTULO 5. Estrutura e Funcionamento do Site

23

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.

Page 36: Exemolo relatorio

CAPÍTULO 5. Estrutura e Funcionamento do Site

24

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.

Page 37: Exemolo relatorio

CAPÍTULO 5. Estrutura e Funcionamento do Site

25

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:

Page 38: Exemolo relatorio

CAPÍTULO 5. Estrutura e Funcionamento do Site

26

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 <.

Page 39: Exemolo relatorio

CAPÍTULO 5. Estrutura e Funcionamento do Site

27

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.

Page 40: Exemolo relatorio

CAPÍTULO 5. Estrutura e Funcionamento do Site

28

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:

Page 41: Exemolo relatorio

CAPÍTULO 5. Estrutura e Funcionamento do Site

29

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

Page 42: Exemolo relatorio

CAPÍTULO 5. Estrutura e Funcionamento do Site

30

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).

Page 43: Exemolo relatorio

CAPÍTULO 6. Teste ao Software

31

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.

Page 44: Exemolo relatorio

CAPÍTULO 7. Conclusões

32

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.

Page 45: Exemolo relatorio

Bibliografia

33

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

Page 46: Exemolo relatorio

Apêndice A – Código ActionScript

34

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); }

Page 47: Exemolo relatorio

Apêndice A – Código ActionScript

35

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);

Page 48: Exemolo relatorio

Apêndice A – Código ActionScript

36

//++++++++++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);

Page 49: Exemolo relatorio

Apêndice A – Código ActionScript

37

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;

Page 50: Exemolo relatorio

Apêndice A – Código ActionScript

38

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");

}

};

Page 51: Exemolo relatorio

Apêndice A – Código ActionScript

39

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");

}

};

Page 52: Exemolo relatorio

Apêndice A – Código ActionScript

40

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);

}

Page 53: Exemolo relatorio

Apêndice A – Código ActionScript

41

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";

Page 54: Exemolo relatorio

Apêndice A – Código ActionScript

42

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();

Page 55: Exemolo relatorio

Apêndice A – Código ActionScript

43

}

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;

Page 56: Exemolo relatorio

Apêndice A – Código ActionScript

44

}

};

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);

Page 57: Exemolo relatorio

Apêndice A – Código ActionScript

45

_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);

}

Page 58: Exemolo relatorio

Apêndice A – Código ActionScript

46

A.1.3.5 Clipe de filme “pisca1”

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);

Page 59: Exemolo relatorio

Apêndice A – Código ActionScript

47

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;

Page 60: Exemolo relatorio

Apêndice A – Código ActionScript

48

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;

Page 61: Exemolo relatorio

Apêndice A – Código ActionScript

49

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)

}

Page 62: Exemolo relatorio

Apêndice A – Código ActionScript

50

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;

Page 63: Exemolo relatorio

Apêndice A – Código ActionScript

51

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;

}

Page 64: Exemolo relatorio

Apêndice A – Código ActionScript

52

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;

}

Page 65: Exemolo relatorio

Apêndice A – Código ActionScript

53

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,true)){

_root.verifica_btn._visible=true;

_root.maqregist_mc.gotoAndStop(2);

if(cont==0){

soma+=euro;

Page 66: Exemolo relatorio

Apêndice A – Código ActionScript

54

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;

}

Page 67: Exemolo relatorio

Apêndice A – Código ActionScript

55

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 à\npergunta\n seguinte.";

_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 temos\ntrocos clica\nem corrigir e\ntenta outra\nvez.";

_root.corrigir_btn._visible=true;

_root.sons("errado2.wav");

}else{

_root.resultado_txt.textColor=0xFF0000;

_root.resultado_txt.text="O dinheiro\nque deste não\nchega, tens\nque dar mais\ndinheiro.";

_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;

Page 68: Exemolo relatorio

Apêndice A – Código ActionScript

56

_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){

Page 69: Exemolo relatorio

Apêndice A – Código ActionScript

57

this.gotoAndPlay(2);//efeito da nota quando acertou proveniente do gráfico do movie clip

_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 da nota quando acertou proveniente do gráfico do movie clip

_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 da nota quando acertou proveniente do gráfico do movie clip

Page 70: Exemolo relatorio

Apêndice A – Código ActionScript

58

_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 da nota quando acertou proveniente do gráfico do movie clip

_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 da nota quando acertou proveniente do gráfico do movie clip

_root.sons("largar nota2.wav");

}else{

Page 71: Exemolo relatorio

Apêndice A – Código ActionScript

59

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 da nota quando acertou proveniente do gráfico do movie clip

_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 da nota quando acertou proveniente do gráfico do movie clip

_root.sons("largar nota2.wav");

}else{

this._x=817;

Page 72: Exemolo relatorio

Apêndice A – Código ActionScript

60

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 da nota quando acertou proveniente do gráfico do movie clip

_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 da nota quando acertou proveniente do gráfico do movie clip

_root.sons("largar nota2.wav");

}else{

this._x=945;

this._y=318;

}

Page 73: Exemolo relatorio

Apêndice A – Código ActionScript

61

}

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 da nota quando acertou proveniente do gráfico do movie clip

_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 da nota quando acertou proveniente do gráfico do movie clip

_root.sons("largar nota2.wav");

}else{

this._x=945;

this._y=410;

}

}

Page 74: Exemolo relatorio

Apêndice A – Código ActionScript

62

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 da nota quando acertou proveniente do gráfico do movie clip

_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 da nota quando acertou proveniente do gráfico do movie clip

_root.sons("largar nota2.wav");

}else{

this._x=945;

this._y=500;

}

}

Page 75: Exemolo relatorio

Apêndice A – Código ActionScript

63

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 da nota quando acertou proveniente do gráfico do movie clip

_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 da nota quando acertou proveniente do gráfico do movie clip

_root.sons("largar nota2.wav");

}else{

this._x=944;

this._y=584;

}

}

Page 76: Exemolo relatorio

Apêndice A – Código ActionScript

64

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;

Page 77: Exemolo relatorio

Apêndice A – Código ActionScript

65

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;

Page 78: Exemolo relatorio

Apêndice A – Código ActionScript

66

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;

Page 79: Exemolo relatorio

Apêndice A – Código ActionScript

67

//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]){

Page 80: Exemolo relatorio

Apêndice A – Código ActionScript

68

_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");

Page 81: Exemolo relatorio

Apêndice A – Código ActionScript

69

_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;

Page 82: Exemolo relatorio

Apêndice A – Código ActionScript

70

}

}

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);

}

Page 83: Exemolo relatorio

Apêndice A – Código ActionScript

71

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;

Page 84: Exemolo relatorio

Apêndice A – Código ActionScript

72

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);

}

}

Page 85: Exemolo relatorio

Apêndice A – Código ActionScript

73

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);

Page 86: Exemolo relatorio

Apêndice A – Código ActionScript

74

}

_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.

Page 87: Exemolo relatorio

Apêndice A – Código ActionScript

75

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 não deixar piscar o botao acertar caso clique em algum numero

_root.sons("toketlmCerto.wav");

//**animacoes**

_root.contled++;//incrementar os leds

_root.led_mc.gotoAndStop(_root.contled);

if(_root.contBarriga==2){//incrementar a comida da 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);

Page 88: Exemolo relatorio

Apêndice A – Código ActionScript

76

//**********

}else{

_root.resultado="ERROU\n"+_root.numerador+mbchr(247)+_root.denominador+"="+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="";

Page 89: Exemolo relatorio

Apêndice A – Código ActionScript

77

_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;

Page 90: Exemolo relatorio

Apêndice A – Código ActionScript

78

_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){

Page 91: Exemolo relatorio

Apêndice A – Código ActionScript

79

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);

Page 92: Exemolo relatorio

Apêndice A – Código ActionScript

80

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);

}

}

Page 93: Exemolo relatorio

Apêndice A – Código ActionScript

81

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);

Page 94: Exemolo relatorio

Apêndice A – Código ActionScript

82

}

_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");

}

Page 95: Exemolo relatorio

Apêndice A – Código ActionScript

83

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 não deixar piscar o botao acertar caso clique em algum numero

//**animacoes**

_root.contled++;//incrementar os leds

_root.led_mc.gotoAndStop(_root.contled);

if(_root.contBarriga==2){//incrementar a comida da 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);

//**********

Page 96: Exemolo relatorio

Apêndice A – Código ActionScript

84

}else{

_root.resultado="ERROU\n"+_root.numerador+mbchr(247)+_root.denominador+"="+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{

Page 97: Exemolo relatorio

Apêndice A – Código ActionScript

85

_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="";

Page 98: Exemolo relatorio

Apêndice A – Código ActionScript

86

_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;

Page 99: Exemolo relatorio

Apêndice A – Código ActionScript

87

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();

}

Page 100: Exemolo relatorio

Apêndice A – Código ActionScript

88

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();

}

Page 101: Exemolo relatorio

Apêndice A – Código ActionScript

89

}

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

}

Page 102: Exemolo relatorio

Apêndice A – Código ActionScript

90

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");

}

Page 103: Exemolo relatorio

Apêndice A – Código ActionScript

91

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 não deixar piscar o botao acertar caso clique em algum numero

//**animacoes**

_root.contled++;//incrementar os leds

_root.led_mc.gotoAndStop(_root.contled);

if(_root.contBarriga==2){//incrementar a comida da barriga

_root.barrig_mc.gotoAndPlay(_root.contBarriga);

_root.contBarriga=41;

}else{

Page 104: Exemolo relatorio

Apêndice A – Código ActionScript

92

_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.denominador+"="+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);

Page 105: Exemolo relatorio

Apêndice A – Código ActionScript

93

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;

Page 106: Exemolo relatorio

Apêndice A – Código ActionScript

94

_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);

Page 107: Exemolo relatorio

Apêndice A – Código ActionScript

95

}

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 Array();//array das caixas de texto dos valores a ordenar

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;

Page 108: Exemolo relatorio

Apêndice A – Código ActionScript

96

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;

}

Page 109: Exemolo relatorio

Apêndice A – Código ActionScript

97

_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");

Page 110: Exemolo relatorio

Apêndice A – Código ActionScript

98

};

_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");

};

Page 111: Exemolo relatorio

Apêndice A – Código ActionScript

99

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 o rectangulo verde se for esse o sitio onde se deve colocar

_global.colid1=1;

}else{

_root.resCresce_mc.alvoC1_mc.gotoAndStop(3);//aparece vermelho se não for esse o sitio

_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){

Page 112: Exemolo relatorio

Apêndice A – Código ActionScript

100

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();

Page 113: Exemolo relatorio

Apêndice A – Código ActionScript

101

}

}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);

Page 114: Exemolo relatorio

Apêndice A – Código ActionScript

102

_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 arrastar 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;

Page 115: Exemolo relatorio

Apêndice A – Código ActionScript

103

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;

Page 116: Exemolo relatorio

Apêndice A – Código ActionScript

104

}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;

Page 117: Exemolo relatorio

Apêndice A – Código ActionScript

105

}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();

Page 118: Exemolo relatorio

Apêndice A – Código ActionScript

106

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;

Page 119: Exemolo relatorio

Apêndice A – Código ActionScript

107

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;

Page 120: Exemolo relatorio

Apêndice A – Código ActionScript

108

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;

Page 121: Exemolo relatorio

Apêndice A – Código ActionScript

109

_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;

Page 122: Exemolo relatorio

Apêndice A – Código ActionScript

110

_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;

Page 123: Exemolo relatorio

Apêndice A – Código ActionScript

111

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;

Page 124: Exemolo relatorio

Apêndice A – Código ActionScript

112

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;

Page 125: Exemolo relatorio

Apêndice A – Código ActionScript

113

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();

Page 126: Exemolo relatorio

Apêndice A – Código ActionScript

114

_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;

Page 127: Exemolo relatorio

Apêndice A – Código ActionScript

115

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;

Page 128: Exemolo relatorio

Apêndice A – Código ActionScript

116

_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;

Page 129: Exemolo relatorio

Apêndice A – Código ActionScript

117

}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;

Page 130: Exemolo relatorio

Apêndice A – Código ActionScript

118

_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;

Page 131: Exemolo relatorio

Apêndice A – Código ActionScript

119

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;

Page 132: Exemolo relatorio

Apêndice A – Código ActionScript

120

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){

Page 133: Exemolo relatorio

Apêndice A – Código ActionScript

121

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 mas erraste\n "+numTentFalha+" vez";

}else{

Page 134: Exemolo relatorio

Apêndice A – Código ActionScript

122

_root.resultado_txt.text="Correcto mas erraste\n "+numTentFalha+" vezes";

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;

Page 135: Exemolo relatorio

Apêndice A – Código ActionScript

123

_root.resCresce_mc.sinal7_txt.text=sn;

if(sn==">"){

_root.titulo_txt.text="Completa os espaços em branco (atendendo ao sinal maior do que)";

}else{

_root.titulo_txt.text="Completa os espaços em branco (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.

Page 136: Exemolo relatorio

Apêndice A – Código ActionScript

124

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 Array();//array das caixas de texto dos valores a ordenar

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

Page 137: Exemolo relatorio

Apêndice A – Código ActionScript

125

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

Page 138: Exemolo relatorio

Apêndice A – Código ActionScript

126

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;

Page 139: Exemolo relatorio

Apêndice A – Código ActionScript

127

}

_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;

Page 140: Exemolo relatorio

Apêndice A – Código ActionScript

128

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 mas erraste\n "+numTentFalha+" vez";

}else{

_root.resultado_txt.text="Correcto mas erraste\n "+numTentFalha+" vezes";

pontuacaoAux = 125/numTentFalha;

pontuacao += Math.round(pontuacaoAux);

}

sons("semiCerto2_ordena.wav");

}

Page 141: Exemolo relatorio

Apêndice A – Código ActionScript

129

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 o rectangulo verde se for esse o sitio onde se deve colocar

_global.colid1=1;

}else if(_root.resCresce_mc.resp1_txt.length !=0){//para nao mudar de cor nos rectangulos que ja têm numeros

_root.resCresce_mc.alvoC1_mc.gotoAndStop(1);

_global.colid1=0;

}else{

_root.resCresce_mc.alvoC1_mc.gotoAndStop(3);//aparece vermelho se não for esse o sitio

_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.alvoC2_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);

Page 142: Exemolo relatorio

Apêndice A – Código ActionScript

130

_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;

Page 143: Exemolo relatorio

Apêndice A – Código ActionScript

131

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();

}

Page 144: Exemolo relatorio

Apêndice A – Código ActionScript

132

}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);

Page 145: Exemolo relatorio

Apêndice A – Código ActionScript

133

_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();

};

Page 146: Exemolo relatorio

Apêndice A – Código ActionScript

134

_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{

Page 147: Exemolo relatorio

Apêndice A – Código ActionScript

135

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 não deixar arrastar quando acertar na expressao

_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;

}

}

}

}

Page 148: Exemolo relatorio

Apêndice A – Código ActionScript

136

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;

Page 149: Exemolo relatorio

Apêndice A – Código ActionScript

137

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;

Page 150: Exemolo relatorio

Apêndice A – Código ActionScript

138

_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;

Page 151: Exemolo relatorio

Apêndice A – Código ActionScript

139

_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;

Page 152: Exemolo relatorio

Apêndice A – Código ActionScript

140

_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 se quer arrastar o numero preenche -se a sub-pergunta do quadrado 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){

Page 153: Exemolo relatorio

Apêndice A – Código ActionScript

141

_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;

Page 154: Exemolo relatorio

Apêndice A – Código ActionScript

142

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;

Page 155: Exemolo relatorio

Apêndice A – Código ActionScript

143

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;

Page 156: Exemolo relatorio

Apêndice A – Código ActionScript

144

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;

Page 157: Exemolo relatorio

Apêndice A – Código ActionScript

145

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;

Page 158: Exemolo relatorio

Apêndice A – Código ActionScript

146

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;

Page 159: Exemolo relatorio

Apêndice A – Código ActionScript

147

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;

Page 160: Exemolo relatorio

Apêndice A – Código ActionScript

148

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;

}

Page 161: Exemolo relatorio

Apêndice A – Código ActionScript

149

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;

Page 162: Exemolo relatorio

Apêndice A – Código ActionScript

150

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;

Page 163: Exemolo relatorio

Apêndice A – Código ActionScript

151

}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;

Page 164: Exemolo relatorio

Apêndice A – Código ActionScript

152

_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;

Page 165: Exemolo relatorio

Apêndice A – Código ActionScript

153

_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;

Page 166: Exemolo relatorio

Apêndice A – Código ActionScript

154

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;

Page 167: Exemolo relatorio

Apêndice A – Código ActionScript

155

}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){

Page 168: Exemolo relatorio

Apêndice A – Código ActionScript

156

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 expResposta:Array=new Array();//array dos quadrados de resposta

Page 169: Exemolo relatorio

Apêndice A – Código ActionScript

157

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 os 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;

Page 170: Exemolo relatorio

Apêndice A – Código ActionScript

158

_root.resSomb_mc._visible=false;//quando tornam a estar 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;

Page 171: Exemolo relatorio

Apêndice A – Código ActionScript

159

_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 os espaços em branco (atendendo ao sinal maior do que)";

}else{

_root.titulo_txt.text="Completa os espaços em branco (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;

}

}

Page 172: Exemolo relatorio

Apêndice A – Código ActionScript

160

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);

}

Page 173: Exemolo relatorio

Apêndice A – Código ActionScript

161

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";

Page 174: Exemolo relatorio

Apêndice A – Código ActionScript

162

_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";

Page 175: Exemolo relatorio

Apêndice A – Código ActionScript

163

_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";

Page 176: Exemolo relatorio

Apêndice A – Código ActionScript

164

_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);

Page 177: Exemolo relatorio

Apêndice A – Código ActionScript

165

_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";

Page 178: Exemolo relatorio

Apêndice A – Código ActionScript

166

}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";

Page 179: Exemolo relatorio

Apêndice A – Código ActionScript

167

_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 ao fim\ndo 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();

}

Page 180: Exemolo relatorio

Apêndice A – Código ActionScript

168

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, passa para\n a pergunta\nseguinte";

//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");

}

}

Page 181: Exemolo relatorio

Apêndice A – Código ActionScript

169

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, passa para\n a pergunta\nseguinte";

//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");

}

}

Page 182: Exemolo relatorio

Apêndice A – Código ActionScript

170

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, passa para\n a pergunta\nseguinte";

//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");

}

}

Page 183: Exemolo relatorio

Apêndice A – Código ActionScript

171

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, passa para\n a pergunta\nseguinte";

//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");

}

}

Page 184: Exemolo relatorio

Apêndice A – Código ActionScript

172

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();

Page 185: Exemolo relatorio

Apêndice A – Código ActionScript

173

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 horas e cinco minutos","três horas e cinco minutos");

_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 horas e cinco minutos","dezanove horas e cinco minutos");//*

_root.horas_cmb.addItem("treze horas e trinta e cinco minutos","treze horas e trinta e cinco minutos");

_root.horas_cmb.addItem("sete horas e um minuto","sete horas e um minuto");

_root.horas_cmb.addItem("uma hora e sete minutos","uma hora e sete minutos");

}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","dez horas e onze minutos");

_root.horas_cmb.addItem("dez horas e cinquenta minutos","dez horas e cinquenta minutos");

Page 186: Exemolo relatorio

Apêndice A – Código ActionScript

174

}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 horas e quatro minutos","vinte e três horas e quatro minutos");

_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 vinte e dois minutos","onze horas e vinte e dois minutos");//*

_root.horas_cmb.addItem("dezasseis horas e onze minutos","dezasseis horas e onze minutos");

}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 horas e quinze minutos","vinte e uma horas e quinze minutos");//*

_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 horas e cinco minutos","nove horas e cinco minutos");

_root.horas_cmb.addItem("cinco horas e nove minutos","cinco horas e nove minutos");

_root.horas_cmb.addItem("vinte e uma horas e vinte e cinco minutos","vinte e uma horas e vinte e cinco minutos");

_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 e três horas","vinte e três horas");

Page 187: Exemolo relatorio

Apêndice A – Código ActionScript

175

_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 horas e trinta minutos","doze horas e trinta minutos");

_root.horas_cmb.addItem("seis horas e doze minutos","seis horas e doze minutos");

_root.horas_cmb.addItem("dezoito horas","dezoito horas");//*

_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","onze menos um quarto");//*

_root.horas_cmb.addItem("dez horas e um quarto","dez horas e um quarto");

_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();

Page 188: Exemolo relatorio

Apêndice A – Código ActionScript

176

_root.horas_cmb.addItem("--selecciona um item--",0);

_root.horas_cmb.addItem("cinco horas e vinte minutos","cinco horas e vinte minutos");

_root.horas_cmb.addItem("quatro horas e cinco minutos","quatro horas e cinco minutos");

_root.horas_cmb.addItem("três horas e vinte e cinco minutos","três horas e vinte e cinco minutos");

_root.horas_cmb.addItem("quatro horas e vinte e cinco minutos","quatro horas e vinte e cinco minutos");//*

}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 e três horas","vinte e três horas");//*

_root.horas_cmb.addItem("vinte e duas horas","vinte e duas horas");

}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 horas menos um quarto","três horas menos um quarto");//*

_root.horas_cmb.addItem("nove horas e um quarto","nove horas e um quarto");

_root.horas_cmb.addItem("vinte e uma horas e três minutos","vinte e uma horas e três minutos");

}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 e quarenta minutos","cinco horas e quarenta minutos");//*

_root.horas_cmb.addItem("cinco horas e oito minutos","cinco horas e oito minutos");

_root.horas_cmb.addItem("vinte horas e vinte e cinco minutos","vinte horas e vinte e cinco minutos");

Page 189: Exemolo relatorio

Apêndice A – Código ActionScript

177

_root.horas_cmb.addItem("seis horas e quarenta minutos","seis horas e quarenta minutos");

}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 horas e cinco minutos","quinze horas e cinco minutos");//*

_root.horas_cmb.addItem("três horas e um minuto","três horas e um minuto");

_root.horas_cmb.addItem("uma hora e três minutos","uma hora e três minutos");

}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 horas e cinco minutos","catorze horas e cinco minutos");

_root.horas_cmb.addItem("passam dez minutos das treze horas","passam dez minutos das treze horas");//*

_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 para as onze horas","faltam vinte minutos para as onze horas");

_root.horas_cmb.addItem("vinte e três horas e quarenta minutos","vinte e três horas e quarenta minutos");

_root.horas_cmb.addItem("vinte horas e onze minutos","vinte horas e onze minutos");

_root.horas_cmb.addItem("oito horas menos cinco 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);

Page 190: Exemolo relatorio

Apêndice A – Código ActionScript

178

_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 horas e cinco minutos","catorze horas e cinco minutos");

_root.horas_cmb.addItem("duas horas e vinte minutos","duas horas e vinte minutos");

_root.horas_cmb.addItem("passam quinze minutos das duas horas","passam quinze minutos das duas horas");

}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 horas e quarenta minutos","oito horas e quarenta minutos");

_root.horas_cmb.addItem("faltam quinze minutos para as dez horas","faltam quinze minutos para as dez horas");

}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 horas e dez minutos","quatro horas e dez minutos");

_root.horas_cmb.addItem("dezasseis horas menos dez minutos","dezasseis horas menos dez minutos");//*

_root.horas_cmb.addItem("vinte e duas horas e quatro minutos","vinte e duas horas e quatro minutos");

}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 ao fim\ndo jogo.";

_root.pergseguinte_btn._visible=false;

_root.horas_cmb.enabled=false;

}

}

Page 191: Exemolo relatorio

Apêndice A – Código ActionScript

179

//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;

Page 192: Exemolo relatorio

Apêndice A – Código ActionScript

180

_root.resultado_txt.text="Certo, passa para\n a pergunta\nseguinte";

//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);

}

}

Page 193: Exemolo relatorio

Apêndice A – Código ActionScript

181

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 começa do inicio

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);

Page 194: Exemolo relatorio

Apêndice A – Código ActionScript

182

}

}

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 nos jogos serem reproduzidos todos os sons dos mesmos

//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);

}

}

Page 195: Exemolo relatorio

Apêndice A – Código ActionScript

183

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;

Page 196: Exemolo relatorio

Apêndice A – Código ActionScript

184

_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);

}

}

Page 197: Exemolo relatorio

Apêndice A – Código ActionScript

185

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);

}

}

Page 198: Exemolo relatorio

Apêndice A – Código ActionScript

186

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);

}

}