-
Ana Alexandra Nunes da Silva
Francisco Josué Mendes Gonçalves
Jogo Interactivo de Matemática (Cálculo de operações)
Engenharia Informática Setembro 2008
-
Jogo Interactivo de Matemática (Cálculo de operações)
Relatório da Disciplina de Projecto Engenharia Informática
Escola Superior de Tecnologia e de Gestão
Ana Silva, Francisco Gonçalves
Setembro 2008
- iii -
A Escola Superior de Tecnologia e Gestão não se responsabiliza pelas opiniões expressas neste relatório.
- 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
- 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.
- 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
- 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
- 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
- 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
- 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
- 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
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.
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.
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).
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
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).
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.
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.
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
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.
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.
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.
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).
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
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.
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.
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
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.
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.
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.
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).
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”).
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:
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.
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.
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:
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 <.
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.
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:
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
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).
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.
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.
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
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); }
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);
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);
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;
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");
}
};
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");
}
};
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);
}
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";
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();
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;
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);
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);
}
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);
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;
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;
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)
}
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;
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;
}
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;
}
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;
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;
}
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;
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){
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
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{
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;
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;
}
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;
}
}
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;
}
}
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;
}
}
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;
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;
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;
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]){
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");
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;
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);
}
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;
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);
}
}
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);
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.
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);
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="";
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;
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){
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);
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);
}
}
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);
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");
}
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);
//**********
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{
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="";
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;
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();
}
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();
}
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
}
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");
}
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{
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);
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;
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);
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;
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;
}
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");
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");
};
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){
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();
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);
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;
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;
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;
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();
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;
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;
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;
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;
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;
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;
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;
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();
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;
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;
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;
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;
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;
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;
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){
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{
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;
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.
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
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
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;
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;
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");
}
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);
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;
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();
}
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);
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();
};
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{
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;
}
}
}
}
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;
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;
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;
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;
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){
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;
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;
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;
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;
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;
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;
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;
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;
}
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;
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;
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;
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;
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;
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;
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){
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
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;
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;
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;
}
}
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);
}
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";
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";
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";
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);
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";
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";
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();
}
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");
}
}
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");
}
}
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");
}
}
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");
}
}
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();
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");
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");
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();
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");
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);
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;
}
}
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;
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);
}
}
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);
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);
}
}
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;
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);
}
}
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);
}
}
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);
}
}