RICARDO TEIXEIRA (40 pts)

DENIS CARAVALHO (85 pts)

SASHA GUDEY (235 pts)

EDUARDO CARREGA (150 pts)

LEANDRO AMANO (83 pts)

FÁBIO DUARTE (79 pts)

LUIZ HERRERA (117 pts)

HELEN TRIOLO (444 pts)

JOÃO NETO (78 pts)

JOTA LAGO (40 pts)

NETO LEAL (116 pts)

ÉMERSON ROCHA (85 pts)
Treinamento PontoFlash de Flash e ActionScript

Como validar um email no Flash 5?

Queria fazer uma barra de rolagem no Flash.

Como envio um valor para uma variável em um movieclip duplicado com o nome de (varbola+n) e que cada bola tenha um valor?

Quero colocar um som de fundo sem interrupções ou cortes.

Como criar uma sistema de senhas e login usando Flash e ASP?

O que é a opção Interlaced quando vou salvar um bitmap PNG?

Qual é, em pixels, a altura e largura da área utilizável do browser para uma resolução de 800x600.

Como determinar o tempo que uma HTML ficará aberta?

Como pegar um objeto (movieclip) da biblioteca sem instanciá-lo no palco?

Tenho 3 botões e quero que cada um toque uma música diferente.

Como arrastar um objeto que está dentro de um componente para fora dele?

É possível carregar um filme (loadmovie) numa cena determinada?

Quero alterar as cores de um movieclip dinamicamente através de actions.

Como duplicar um movieclip (duplicateMovieclip) e colocá-los abaixo do original?
Comunicação Flash-PHp-MySql - Objeto LoadVars

Número randômicos sem repetições no Flash 5.

Clica nuaicon - Photoshop 6

Detectando funções de browser usando ASP

Controle de som no Flash 5.

Parâmetro - Get camera().

Família Macromedia Studio MX 2004

Load Múltiplos.

Fórmula do efeito de elasticidade

Loops Alternados (Objeto Sound).

Grandene - Avaliação e sites

Janelas pop-up e semi-full no flash
Swirl

Preloader run

Hitest eat

Duplicate MC

Nome obrigatório

3dbuilderv

Dropzoom

Oposição

3d particle

Drag Square

Fakeload

Arrasta e atrito
HOME | TUTORIAIS
Jogo da Forca (segunda parte)
por Alexandre Porto

1 / 2 / 3

 

Nessa segunda parte do tutorial Jogo da Forca, vamos criar os botões/letras para que o jogador possa ter também essa opção, além de digitar a letra. É claro que poderíamos criar 26 botões normalmente e atribuir uma letra a cada um, mas eu tenho uma idéia melhor que, além de tudo, fará com que o filme fique bem menor.

   Na verdade, usaremos um código muito parecido com o que usamos para duplicar os campos de texto no tutorial anterior. Na pior das hipóteses, você vai aprender a criar uma função simples.

   Pretendo criar um filme novo exclusivo para os botões. Por isso introduza uma ação "load movie into level", para abrire esse novo filme. Coloquei isso como FrameAction junto ao Load Variables.

loadVariablesNum ("forca.txt", 0);
loadMovieNum ("botao.swf", 1);

Para que os botões fiquem alinhados na parte de baixo do jogo, abra o arquivo "Forca.fla", pressione Ctrl+M e aumente a altura de 300 para 400. Assim criamos um espaço extra.

   Agora crie um novo filme idêntico ao filme principal (750X400). Vamos utilizar apenas os 100 pixels da parte de baixo desse novo filme, para não sobrepor a animação do principal.

   Criaremos um movieclip com dois frames. No primeiro frame colocaremos um botão ativo. No segundo, apenas um gráfico simulando o botão inativo. Numa camada superior colocaremos um campo de texto "letra" com os dois frames do movieclip. Assim a letra será mostrada nos dois estágios do botão (ativo/inativo). No primeiro frame desse movieclip, coloque uma ação de stop. Arraste esse movieclip para o canto inferior esquerdo do filme.

Crie agora um movieclip "action", nos mesmos moldes do anterior. A action introduzida nesse movieclip é muito semelhante.

onClipEvent (load) {
 nome = _parent._name;
 linha = nome.substr(1);
}
onClipEvent (enterFrame) {
 _parent.letra = _root.actionb.palavraB.charAt(linha);
}

   Nele, eu checo o nome do movieclip/botão e capturo suas strings, que serão usadas para importar a letra correspondente ao botão. Praticamente a mesma ação usada anteriormente.

Pronto o botão está feito. Agora vamos duplicá-lo 25 vezes.

   Na timeline principal crie um novo movieclip "actionb". Agora, como já introduzi, vamos criar uma função como sub-rotina. Algo bem simples.

O que é uma função e porque eu a usaria nesse caso?

O código que vou criar agora vai duplicar o movieclip/botão e gerar as diversas variáveis que serão capturadas por esses mesmos botões. Para cada botão uma letra. OK. Já fizemos isso antes na primeira parte desse tutorial. Tentei imaginar quantas vezes vou querer repetir essa ação.

1 - no início do jogo;
2 - quando o jogo for reiniciado
    2a - quando o jogador acerta a palavra;
    2b - quando o jogador ultrapassa o número de erros permitido;
3 - quando der na telha do jogador começar tudo de novo.

   Será que vou ter que copiar esse código 4 vezes? Será que não podemos colocar esse código num local pré-determinado e apenas "chamá-lo" no momento desejado? Como uma macro do MSWord, por exemplo? Podemos sim. Exatamente criando uma função.

Mas como se cria essa coisa?

Primeiro, temos que verificar as instruções que se repetiriam "n" vezes. Feito isso, vamos começar a trabalhar na função. Sempre comece nomeando a função:

function Botoes(){
}

Escreva sempre a palavra "function" seguida do nome escolhido (Botoes). Os parênteses sempre seguem o nome de uma função. Você pode acessar também pela janela de actions: Action / function. Nesse exemplo trataremos apenas de funções sem parâmetros, portanto os parênteses estarão sempre vazios.

onClipEvent (load) {
  function Botoes () {
    _root.b0._x = 20;
    posB = b0._x+45;
    palavraB = "abcdefghijklmnopqrstuvwxyz";
    nQB = 25;
    for (ib=1; ib<=nQB; ib++) {
      duplicateMovieClip (_root.b0, "b"+ib, ib);
      _root["b"+ib]._x = posB;
      posB += 25;
      }
    _root.b0.gotoAndStop(1);
    }
  Botoes();
}

   Novamente, o código é bastante similar. As diferenças se resumem ao fato de que a variável "palavrab" não é o resultado de uma função randômica. Seu valor, que será capturado pelos botões, é o abcdário. As 26 letras que compõem o nosso alfabeto. O número de quadros (nqb) também é fixo (25).

nota: para entender melhor esse código, volte ao movieclip "action" da primeira parte do tutorial.

O que é aquele "Botões()" no final do código?

Ainda bem que você perguntou. Pensei que ninguém iria notar. Será que não dá para adivinhar? Estou chamando a função. Esse movieclip será a primeira coisa a ser carregada nesse filme dos botões. Então eu o escolhi para ser o local onde vou criar a função (poderia ser no primeiro frame da timeline principal). Gosto de trabalhar com clips/actions, pois facilitam a visualização posterior. Tudo bem, cada um tem a sua mania.

   Você pode verificar que, além de criar a função, eu a chamei no mesmo evento. Preste bem atenção: a linha que chama a função não faz parte da mesma. Está diretamente subordinada ao evento "Load". É isso, primeiro crio a função e logo em seguida eu a chamo.

E naquelas outras situações em que vamos precisar reordenar os botões?

Simplérrimo.
Coloque um botão no stage e insira o seguinte código (delete-o logo depois):

on (release) {
  _root.actionb.Botoes();
}

   Sua função será chamada e, nesse caso, os botões serão reordenados, além de reativados os que tiverem sido pressionados.

Você não esqueceu as ações dos botões?

É mesmo ....
A instância do botão está apenas no primeiro frame do movieclip, certo?

on (release) {
   gotoAndStop (2);
   _level0.digitado = letra;
}

Na primeira linha, envio o filme para o segundo frame, onde estará apenas um gráfico inativo. Na segunda linha, declaro a variável "digitado". O level0 foi usado porque, não se esqueçam, estamos no level1.

   Você deve estar se perguntando se não poderia transformar as ações usadas no movieclip "action" do filme principal em uma função. A resposta é sim. Você pode ir agora mesmo fazer isso. Eu preferi esperar uma introdução mais detalhada, que foi feita aqui, para usá-la.

Neste mesmo filme, delete também aquele botão que criei para testar a letra "A".

Teste os filmes agora.

Clique aqui para ver o exemplo desse tutorial funcionando.



Devido à reformulação implementada no site, pode ser que você encontre alguns links quebrados. Por favor, ajude-nos a corrigir eventuais problemas nos informando links quebrados
0 comentário