Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Henrique-HB

Problemas com menu controlado pelo teclado

Recommended Posts

Eu estou tentando criar um menu controlado pelo teclado, mas não estou conseguindo passar uma cena ao pressionar a tecla(espaço).

Código:

onClipEvent (enterFrame){	var menu_;if(Key.isDown(Key.DOWN)) {	switch(_y){	case 332:		this._y=377;		menu_=2;		break;	case 377:		this._y=422;		menu_=3;		break;	case 422:		this._y=460;		menu_=4;		break;	}	} if (Key.isDown(Key.UP)){switch(_y){	case 377:		this._y=332;		menu_=1;		break;	case 422:		this._y=377;		menu_=2;		break;	case 460:		this._y=422;		menu_=3;		break;	}}// Meu problema é aqui!if (Key.isDown(Key.SPACE)){	switch(menu_){		case 1:		gotoAndPlay("info", 1);		break;		case 2:		gotoAndPlay("tutoriais", 1);		break;		case 3:		gotoAndPlay("videos", 1);		case 4:		gotoAndPlay("forum", 1);	}}}
Esse script fica em um MC que é a barra q navega pelo menu.

 

Gostaria de saber onde esta meu erro e como resolver.

 

 

 

flw.............

Compartilhar este post


Link para o post
Compartilhar em outros sites

Amigo, para esses eventos não é ideal utilizar onEnterFrame em mcs, utilize um Listener (Ouvinte):

 

var myListener=new Object();myListener.onKeyDown = function() {var menu_;if (Key.isDown(Key.DOWN)) {  switch (_y) {  case 332 :   this._y = 377;   menu_ = 2;   break;  case 377 :   this._y = 422;   menu_ = 3;   break;  case 422 :   this._y = 460;   menu_ = 4;   break;  }}if (Key.isDown(Key.UP)) {  switch (_y) {  case 377 :   this._y = 332;   menu_ = 1;   break;  case 422 :   this._y = 377;   menu_ = 2;   break;  case 460 :   this._y = 422;   menu_ = 3;   break;  }}// Meu problema é aqui! if (Key.isDown(Key.SPACE)) {    switch (menu_) {  case 1 :   gotoAndPlay("info",1);   break;  case 2 :   gotoAndPlay("tutoriais", 1);   break;  case 3 :   gotoAndPlay("videos", 1);  case 4 :   gotoAndStop("forum", 1);  }}}Key.addListener(myListener);

 

fl!"!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado, mas agora tive o seguinte erro:

appear within on/onClipEvent handler Key.addListener(myListener);Total ActionScript Errors: 3 Reported Errors: 3

Isso está acusando que devia estar em algum evento?Não to conseguindo entender, foi mal a ignorancia, mas action script ainda não é o meu forte XDVlw.....

Compartilhar este post


Link para o post
Compartilhar em outros sites

faltou o onClipEvent (enterFrame)

 

testa agora

 

ACTIONSCRIPT
onClipEvent (enterFrame){

var myListener=new Object();

myListener.onKeyDown = function() {

var menu_;

if (Key.isDown(Key.DOWN)) {

  switch (_y) {

  case 332 :

   this._y = 377;

   menu_ = 2;

   break;

  case 377 :

   this._y = 422;

   menu_ = 3;

   break;

  case 422 :

   this._y = 460;

   menu_ = 4;

   break;

  }

}

if (Key.isDown(Key.UP)) {

  switch (_y) {

  case 377 :

   this._y = 332;

   menu_ = 1;

   break;

  case 422 :

   this._y = 377;

   menu_ = 2;

   break;

  case 460 :

   this._y = 422;

   menu_ = 3;

   break;

  }

}

// Meu problema é aqui!

if (Key.isDown(Key.SPACE)) {

 

  switch (menu_) {

  case 1 :

   gotoAndPlay("info",1);

   break;

  case 2 :

   gotoAndPlay("tutoriais", 1);

   break;

  case 3 :

   gotoAndPlay("videos", 1);

  case 4 :

   gotoAndStop("forum", 1);

  }

}

}

Key.addListener(myListener);

}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Desculpa, mas agora que eu me confundi mesmo :P

O Weverton recomendou não usar o enterFrame, e você disse que tava faltando, dai quando eu testei o seu código Eder, realmente o erro desapareceu, porém a barra não se movia mais :blink:

 

Eu upei um arquivo de teste para vcs darem uma olhada: http://www.brmaker.com.br/hiperbite/duvida_imasters.zip

 

Tem o arquivo original, que a barra mexe mas não entra nas seções. E o editado com a ajuda de vcs, onde a barra parou de se mover.

 

Obrigado pela ajuda ^^

 

 

 

 

flw.....................

Compartilhar este post


Link para o post
Compartilhar em outros sites

desculpa eu que vi rapidamente axei que era aquele o problema

 

 

esse esta funcionando agora, você deve coloca-lo na time-line principal

 

e aquela barra azul que ira se mover, você deve nomea-la de "barra"

 

ACTIONSCRIPT
stop();

var menu_=1;

 

var myListener=new Object();

myListener.onKeyDown = function() {

if (Key.isDown(Key.DOWN)) {

  switch (barra._y) {

  case 332 :

   barra._y = 377;

   menu_ = 2;

   break;

  case 377 :

   barra._y = 422;

   menu_ = 3;

   break;

  case 422 :

   barra._y = 460;

   menu_ = 4;

   break;

  }

}

if (Key.isDown(Key.UP)) {

  switch (barra._y) {

  case 377 :

   barra._y = 332;

   menu_ = 1;

   break;

  case 422 :

   barra._y = 377;

   menu_ = 2;

   break;

  case 460 :

   barra._y = 422;

   menu_ = 3;

   break;

  }

}

// Meu problema é aqui!

if (Key.isDown(Key.SPACE)) {

trace(menu_);

  switch (menu_) {

  case 1 :

   gotoAndPlay("info",1);

   break;

  case 2 :

   gotoAndPlay("tutoriais", 1);

   break;

  case 3 :

   gotoAndPlay("videos", 1);

  case 4 :

   gotoAndStop("forum", 1);

  }

}

}

Key.addListener(myListener);

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara, vlw mesmo. Você realmente salvou minha pele :DWeverton, obrigado tbm ^^Agora só irei dar uma estudada nesse tal de listener, pq ainda não entendo ele direito.flw.......

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.