Ir para conteúdo

POWERED BY:

Arquivado

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

Juan_VALSA

Loop de variáveis

Recommended Posts

Olá amigos,

 

fiz uma fução que quando a pessoa clica ela vê qual movie deve ser tocado e quais devem ser excluidos.

A funcão indica exatamente as variáveis porém quando mando os filmes excluir o movie ele só pega a última variável.

 

Tentei usar o "eval" de uma explicação que o Carneirinho me deu há um tempo atrás, mas não tive sucesso.

Quem puder me dê essa força.

Abs!

function escolhe(a){	for(i=1;i<=4;i++){		if(this["mc"+i]==a){			this["mc"+i].play();			trace("play mc"+i)		}else{			zica=eval(this["mc"+i])			trace("volta "+zica)			voltar(zica)  //essa é outra função		}	}}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se não me engano aqui você vai estar comparando um mc com uma variavel if(this["mc"+i]==a){ tente dar um trace dos dois pra ver se serão realmente iguais

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então carneiro, eu coloquei estes "trace" que já estão e ele me diz exatamente o que eu queria... tipo que é para tocar o tal mc+i e que os outros voltariam.

Coloquei esse outro trace que você sugeriu e os nomes estão certos...

 

e outra coisa que acontece é que depois que coloquei esse onEnterFrame ele estragou outro que estava funcionando... vou colocar o código todo.

 

fscommand("fullscreen", true);fscommand("allowscale", false);destaque._alpha = 50;destaqueBtn.onRollOver = function() {	destaque.play();	onEnterFrame = function () {		destaque._alpha += (100-destaque._alpha)*0.1;	};};destaqueBtn.onRollOut = function() {	onEnterFrame = function () {		destaque._alpha -= (destaque._alpha-50)*0.1;		destaque.gotoAndStop(destaque._currentframe -= 1);	};};btn01.onRelease = function() {	destaqueBtn._visible = false;	some(destaque)	escolhe(mc1)	};btn02.onRelease = function() {	destaqueBtn._visible = false;	some(destaque)	escolhe(mc2)	};btn03.onRelease = function() {	destaqueBtn._visible = false;	some(destaque)	escolhe(mc3)	};btn04.onRelease = function() {	destaqueBtn._visible = false;	some(destaque)	escolhe(mc4)};btn05.onRelease = function() {	destaqueBtn._visible = true;	onEnterFrame = function () {		destaque._alpha += (100-destaque._alpha)*0.1;		};};function some(mName){	onEnterFrame = function () {		mName._alpha -= (mName._alpha-0)*0.1;		};}function voltar(mcName){	onEnterFrame = function () {		mcName.gotoAndStop(mcName._currentframe -= 1);		};}function escolhe(a){	for(i=1;i<=4;i++){		trace(a)		if(this["mc"+i]==a){			this["mc"+i].play();					}else{			zica=eval(this["mc"+i])			trace("volta "+zica)			voltar(zica)		}	}}

Compartilhar este post


Link para o post
Compartilhar em outros sites

o meu código completo é este.Vê se pode me orientar...Já fiz todas as combinações...peguei sua outra explicacão do eval... e não está rolando.E esse outro problema de um onenterframe estragar o outro eu estou procurando agora...abs!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Aqui a função funcionou, ele fez o mc reproduzir, o problema que você ta tendo do resto é que não esta deletando os outros enterFrame, você deixa ele processando no _currentframe - 1 infinito, tem que colcoar ali um if dizendo para que se o frame for iguai a 1, pra deletar o enterFrame

Compartilhar este post


Link para o post
Compartilhar em outros sites

beleza, mas se eu colocar esse delete, ele não tira da função não né?Vou testar e posto o resultado.Agora só uma pergunta de leigo...colocar uma função dentro de outra é tranquilo né?fiquei com medo de ser isso o problema.Mas valeu pela ajuda, vou testar aqui.Abs!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então Carneiro,coloquei os delete onEnterFrame, funcionou tranquilo...coloquei uns "trace" para saber quando ele estava parando.A única coisa que permanece para mim é...sempre que chamo a funcão "voltar" ela estraga a função "some".Eu estava achando que não podia chamar de dentro de outra função...mas quando coloco a função voltar direto no botão para testar ela também anula a função some...porém os outros botões que não coloquei a função voltar funcionan...entende?você tem alguma idéia do que possa ser?abs!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

os dois enterFrame estão no mesmo lugar, coloca cada um em um lugar , tipo deixa um no _root e outro no mc, tipo mc.onEnterframe e o outro só onEnterFrame

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara... realmente o problema é o fato de ter vários "onEnterFrame".Tirei todos e fiquei clicando o botão várias vezes e todas as funções funcionaram...1º tentei colocar para cada "onEnterFrame" um nome diferente antes do ponto e n˜åo rolou...depois tentei deixar 1 "onEnterFrame" mas ai fica faltando...Estou tentando fazer alguma coisa para proteger esse on enterframe...se eu conseguir eu posto um retorno aqui...mas aceito sugestões!!Abs!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ja que ainda não entendeu a parada de enterFrame, coloca duas funções em uma:

 

function some(mName, mcName){

onEnterFrame = function () {

mName._alpha -= (mName._alpha-0)*0.1;

mcName.gotoAndStop(mcName._currentframe -= 1);

if(mcName._currentframe == 1 && nName._alpha ==0){

delete onEnterFrame;

}

};

}

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.