Ir para conteúdo

POWERED BY:

Arquivado

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

Recommended Posts

Olá a todos :)

 

Eu estou desenvolvendo um projeto para a feira de ciencias da escola que funciona assim

 

Aparece uma sequencia de cor na tela e o cara vai apertando os botões correspondentes

 

Eu estou tentando criar ele no Flash.

 

Fiz o seguinte código

 

verde._visible = false;
azul._visible = false;
vermelho._visible = false;
amarelo._visible = false;
var cores:Array = new Array();
cores[0] = "verde";
cores[1] = "azul";
cores[2] = "vermelho";
cores[3] = "amarelo";
for (var j = 0; j<10; j++) {
	i = random(4);
	trace(i);
	if (i == 0) {
		verde._visible = true;
		azul._visible = false;
		vermelho._visible = false;
		amarelo._visible = false;
	} else if (i == 1) {
		verde._visible = false;
		azul._visible = true;
		vermelho._visible = false;
		amarelo._visible = false;
	} else if (i == 2) {
		verde._visible = false;
		azul._visible = false;
		vermelho._visible = true;
		amarelo._visible = false;
	} else if (i == 3) {
		verde._visible = false;
		azul._visible = false;
		vermelho._visible = false;
		amarelo._visible = true;
	}
}
if(j==10){
	stop();
}

O problema é que ele ta fazendo o loop muito rapido e não aparece a sequencia das cores

 

Só aparece os 10 números sorteados no Output

 

Eu gostaria de saber se tem como colocar um tempo para ele recomeçar o loop até chegar no 10 numeros

 

Exempo

 

Sorteia o primeiro depois de 5 segundos ele faz o loop denovo e sorteia o próximo

 

Eu dei uma pesquisada e o que eu achei não me ajudo :(

 

Qualquer dificuldade para entender posta ai que eu tento ser mais claro

 

Muito obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Amigo, tenta assim:Troque o codigo que você postou por esse:

verde._visible = false;azul._visible = false;vermelho._visible = false;amarelo._visible = false;var cores:Array = new Array();cores[0] = "verde";cores[1] = "azul";cores[2] = "vermelho";cores[3] = "amarelo";function MostraCor(){ i = random(4); trace(i); if (i == 0) { verde._visible = true; azul._visible = false; vermelho._visible = false; amarelo._visible = false; } else if (i == 1) { verde._visible = false; azul._visible = true; vermelho._visible = false; amarelo._visible = false; } else if (i == 2) { verde._visible = false; azul._visible = false; vermelho._visible = true; amarelo._visible = false; } else if (i == 3) { verde._visible = false; azul._visible = false; vermelho._visible = false; amarelo._visible = true; }}MostraCor()stop()

Agora, crie um movieclip, não precisa por nada nele, arraste-o para seu palco, e coloque essa action nele:

onClipEvent (load) { var pausa = 2; var tempo = getTimer();}onClipEvent (enterFrame) { if (tempo+(pausa*1000)<=getTimer()) { _root.MostraCor() var tempo = getTimer() }}

No caso, eu troquei o seu "for" por uma função. Que é chamada assim que o primeiro frame é carregado.O movie clip que você criou e colocou a actions, serve para fazer um loop de tempo, .. você define um número de segundos para a variável "pausa", número esse que vai ser esperado para chamar a função MostraCor() novamente.Ok?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara ... não da pra fazer isso com

 

for (var j = 0; j<10; j++) {

 

//seu codigo

 

}

 

 

fica muito rapido porque a velocidade de processamento é muito grande.

 

troque pra:

 

 

nivel=5;aux=0;_root.onEnterFrame=Function() {  aux++;  if (aux==velocidade) {	aux=0;	// seu codigo  }}delete onEnterFrame;

 

para ficar mais rápido, diminua o nivel;

e para ficar mais lento, aumente o nivel.

 

espero que tenha ajudado.

 

abraço

Compartilhar este post


Link para o post
Compartilhar em outros sites

Weverton N Na teoria eu entendi.

 

O segundo código é para ser colocado no frame do MC que eu criei certo ?

 

Mas esta dando o seguinte erro

**Error** Symbol=mc, layer=Layer 1, frame=1:Line 1: Clip events are permitted only for movie clip instances

onClipEvent (load) {

 

**Error** Symbol=mc, layer=Layer 1, frame=1:Line 5: Clip events are permitted only for movie clip instances

onClipEvent (enterFrame) {

 

Total ActionScript Errors: 2 Reported Errors: 2

 

2

Muito obrigado pelo que ja me ajudou :D

 

_________________________________

 

nakid.mkt o seu também esta dando erro :(

 

**Error** Scene=Scene 1, layer=Layer 2, frame=1:Line 12: Syntax error.

_root.onEnterFrame=Function() {

 

Total ActionScript Errors: 1 Reported Errors: 1

E para colocar no frame certo ?

verde._visible = false;
azul._visible = false;
vermelho._visible = false;
amarelo._visible = false;
var cores:Array = new Array();
cores[0] = "verde";
cores[1] = "azul";
cores[2] = "vermelho";
cores[3] = "amarelo";
nivel=5;
aux=0;
_root.onEnterFrame=Function() {
aux++;
if (aux==velocidade) {
aux=0;
 i = random(4);
	trace(i);
	if (i == 0) {
		verde._visible = true;
		azul._visible = false;
		vermelho._visible = false;
		amarelo._visible = false;
	} else if (i == 1) {
		verde._visible = false;
		azul._visible = true;
		vermelho._visible = false;
		amarelo._visible = false;
	} else if (i == 2) {
		verde._visible = false;
		azul._visible = false;
		vermelho._visible = true;
		amarelo._visible = false;
	} else if (i == 3) {
		verde._visible = false;
		azul._visible = false;
		vermelho._visible = false;
		amarelo._visible = true;
	}
}
}
delete onEnterFrame;

 

Obrigado :D

Compartilhar este post


Link para o post
Compartilhar em outros sites

corrigindo:

 

nivel=5;aux=0;_root.onEnterFrame=Function() {aux++;if (aux==nivel) {aux=0;// seu codigo}}delete onEnterFrame;

Compartilhar este post


Link para o post
Compartilhar em outros sites

nakid.mkt

 

Ainda ta dando o mesmo erro :(

 

Ta aqui o fla acho que fica mais facil né ?

com o seu código:

http://rapidshare.com/files/49407657/luzes.fla

 

com o código do Weverton N

 

http://rapidshare.com/files/49407808/luzes2.fla

 

_________

 

Muito obrigado pela ajuda.

Compartilhar este post


Link para o post
Compartilhar em outros sites

E ai seu Gabriel tente colocar no código que o nakid.mkt postou na parte "_root.onEnterFrame=Function() {", no lugar de Function() com letra maiuscula coloque "function()" com letra minuscula, porque eu acho que o erro tá na escrita do código!Abraços!

Compartilhar este post


Link para o post
Compartilhar em outros sites

O erro não ta aparecendo mais só que ele também não faz nada :(

 

Meu Deus isso ta complicado O.O'

 

Pior que depois de fazer no AS eu vo ter que fazer com o VB <_<

 

Ai sim o bixo pega rs

 

Tipo se eu coloco o

verde._visible = false;
azul._visible = false;
vermelho._visible = false;
amarelo._visible = false;
var cores:Array = new Array();
cores[0] = "verde";
cores[1] = "azul";
cores[2] = "vermelho";
cores[3] = "amarelo";

dentro do _root.onEnterFrame=function() {

 

Ele aparece todos e não faz nada

 

Se eu coloco fora ele some todos e não faz mais nada http://forum.imasters.com.br/public/style_emoticons/default/cry.gif

 

Mas ta melhorando já :D

 

Valeu Lucas

Compartilhar este post


Link para o post
Compartilhar em outros sites

O erro não ta aparecendo mais só que ele também não faz nada :( Meu Deus isso ta complicado O.O'Pior que depois de fazer no AS eu vo ter que fazer com o VB <_< Ai sim o bixo pega rsTipo se eu coloco o

verde._visible = false;azul._visible = false;vermelho._visible = false;amarelo._visible = false;var cores:Array = new Array();cores[0] = "verde";cores[1] = "azul";cores[2] = "vermelho";cores[3] = "amarelo";
dentro do _root.onEnterFrame=function() { Ele aparece todos e não faz nadaSe eu coloco fora ele some todos e não faz mais nada http://forum.imasters.com.br/public/style_emoticons/default/cry.gif Mas ta melhorando já :D Valeu Lucas
Telon, o codigo que eu falei pra você colocar no mc, não é pra colocar no frame dele. O mc tem que ter um frame só, e vazio. Esse código, você tem que colocar nele, mas fora. Para fazer isso, ao arrastar o clipe para o palco, clique nele e vá na guia actions e cole o código.Faz isso que vai dar certo!!Abs

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tenta colocar assim então no seu codigo!

 

verde._visible = false;azul._visible = false;vermelho._visible = false;amarelo._visible = false;var cores:Array = ["verde", "azul", "vermelho", "amarelo"];nivel=5;aux=0;_root.onEnterFrame = function() {aux++;if (aux==velocidade) {aux=0;i = cores[random(cores.length)];	trace(i);	if (i == 0) {		verde._visible = true;		azul._visible = false;		vermelho._visible = false;		amarelo._visible = false;	} else if (i == 1) {		verde._visible = false;		azul._visible = true;		vermelho._visible = false;		amarelo._visible = false;	} else if (i == 2) {		verde._visible = false;		azul._visible = false;		vermelho._visible = true;		amarelo._visible = false;	} else if (i == 3) {		verde._visible = false;		azul._visible = false;		vermelho._visible = false;		amarelo._visible = true;	}}}delete onEnterFrame;

Agora ve se o bixo cria da um sinal de vida :D!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Telon, o codigo que eu falei pra você colocar no mc, não é pra colocar no frame dele. O mc tem que ter um frame só, e vazio. Esse código, você tem que colocar nele, mas fora. Para fazer isso, ao arrastar o clipe para o palco, clique nele e vá na guia actions e cole o código.

 

Faz isso que vai dar certo!!

 

Abs

 

Opa deu certinho agora

 

Eu tinha colocado no primeiro frame dentro do movie clip vazio poriso não funfava :P

 

Muito obrigado :D

 

_______________________________

 

Agora ve se o bixo cria da um sinal de vida :D

Nada O.O'

 

Tadinho :(

 

Mas beleza o Weverton N ja resolveu o problema

 

_________________________________

 

 

Muito obrigado a todos :)

 

To devendo essa.

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.