AUTOR DESCONHECIDO (100 pts)

MARCOS JOSÉ PINTO (44 pts)

DEMIS BUCCI (50 pts)

GABRIEL SPORCH (53 pts)

LEANDRO AMANO (83 pts)

SYDNEY GANHO (60 pts)

GUILHERME G.G. (137 pts)

FLASHGURU (155 pts)

DAUTON JANOTA (255 pts)

DENIS CARAVALHO (85 pts)

ILVA RUDEV (90 pts)

LUIZ HERRERA (117 pts)
Treinamento PontoFlash de Flash e ActionScript

Tem como setar um level (nível) para um movieclip?

Método sendAndLoad do objeto LoadVars mais fácil.

Quero carregar dinamicamente um movie clip para dentro do movie principal.

Preciso converter elementos de uma string separada por vírgulas em um Array!

Preciso de um sisteminha em FLASH para cadastrar emails de visitantes.

Como fazer para que meu flash aberto com Load Movie tenha fundo transparente.

Tem como colocar botões “próximo texto” e “texto anterior” quando abro com load variables?

Como criar uma grade no Flash?

Dicas sobre os métodos Slice e Splice do objeto Array.

Como fazer o usuário abrir sempre um filme num _level acima do anterior?

Estou com dificuldades de usar fontes true type sem anti-aliasing.

Como eu coloco uma data no Flash?

Como posso fazer no flash MX, uma linha reta via actionscript.

E o FlashMX não aceita eval para gerar uma variável?
Aprendendo a interagir Flash e ASP

Objeto array - Arrays X Objetos

Site da banda os Titãs - Avaliação de sites

Alterar a parência dos componentes do FlashMX.

Plugins variados para seu trabalho em design

Fireworks, o patinho feio da Macromedia.

Criação de letras transparentes - Fireworks

Aplicação simultânea de Fio e Sombra a bitmaps - Fireworks

Citroen, máscaras que simulam vídeo - Avaliação de sites

Criando uma nova categoria (paleta) na Barra Insert do seu Dreamweaver.

Fontes no Flash - campos de texto e HTML

Objeto Array: métodos sort() e reverse().
Álbum de fotos

Click Duplo

Droptarget

Bola_balance

Tweeneng com alpha

Preloader marquee

Magnetism3

Tangran

Cubo

Luz

Keycode

Drag gravity
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