Ir para conteúdo

POWERED BY:

Arquivado

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

Guh Costa

[Resolvido] Flash (IF)

Recommended Posts

Boa tarde galera!

Sou novo no fórum e estou com algumas dificuldades para terminar minha aplicação no Flash.

 

Eu estou fazendo um menu dinâmico todo cheio de efeitos e tal, ta ficando show. Coloquei os eventos rollOn, rollOut e Release etc. Só que estou com um problema:

Quando clico no botão1 do menu, coloquei um efeito para mudar de cor o botão1, mas ao tirar o mouse(rollOut) o menu volta a cor original. Gostaria que ao clicar no botão, o rollOut 'desabilitasse', e apenas ao clicar no botão2, o botão1 voltasse na cor original.

 

Alguém tem ideia de como fazer isso?

 

Obrigado atenção des de já.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom dia e seja bem vindo ao fórum.

Teoricamente não é complicado, mas na prática é outra coisa e você pode fazer tanto via objetos na timeline (MovieClips + ações) quanto dinamicamente por AS.

 

Vou sugerir uma maneira: Considerando que seus botões estejam definidos como MovieClips, acrescente ao evento "onRelease" um gotoAndStop para um determinado frame da animação do MC que mantenha o efeito desejado, mas o problema é que em cada botão você vai ter que fazer uma verificação e voltar todos os outros botões para o estágio inicial (sem efeitos), ex: Imagine 10 MCs nenhum clicado e todos com efeitos roolOver e rollOut, quando clicar no MC1 este vai permanecer com efeito, se clicar no MC2, o MC1 tem que voltar ao estado normal, então seria mais ou menos no "stop" de cada animação (MC) colocar todos os outros MCs ao estado inicial...

 

Outra forma seria via AS, duplicando seus MCs e com a utilização de um Array e laço de repetição alcançar os eventos over, out, release de forma dinâmica.

 

Att.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Consegui fazer ele parar no frame com efeito quando eu clicar, mas estou com dificuldades de criar alguma função para "desabilitar o rollOut após o clique.

 

Minhas actions do meu MC_1 está assim:

on(rollOver) {

gotoAndPlay(2);

}

on(rollOut) {

gotoAndPlay(16);

}

on(release) {

gotoAndStop(25);

 

}

 

A pergunta é... que tipo de função posso incluir nesse código para que ignore o on(rollOut) caso esteje no frame 25 por exemplo.

Com IF isso é possível?

 

"Se frame(25) {

não faça on(rollOut)

}

se não {

on(rollOut)

}"

 

ou então algo do tipo:

on(rollOver) {

gotoAndPlay(2);

}

on(rollOut) {

gotoAndPlay(16);

}

on(release) {

gotoAndStop(25);

mc2.gotoAndStop(1);

mc3.gotoAndStop(1);

mc4.gotoAndStop(1);

.......

}

 

Desculpe a ignorância, mas sou MUITO iniciante no Flash e AS.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Neste caso deve desabilitar o MC clicado para evitar novo clique e os eventos "over e out" sobre o MC ativo.

Inicialmente todos estarão habilitados, mas quando um determinado MC for clicado, desabilite-o:

MC.enabled = false;
Mas assim que outro MC for clicado o MC anterior deverá ficar ativo novamente, basta então utilizar a condição "true".

 

Att.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Consegui fazer tudo certo agora, mas está com um único problema (que ao meu ver, a lógica está certa)

 

mc_1.onRollOver = function() {

mc_1.gotoAndPlay(2);

}

 

if (mc_1.onRelease = true) {

mc_1.onRelease = function () {

mc_1.gotoAndStop(30);

 

//VOLTA TODOS OS OUTROS BOTÕES PARA A POSIÇÃO INICIAL

mc_2.gotoAndStop(1);

mc_3.gotoAndStop(1);

mc_4.gotoAndStop(1);

}

}

else {

mc_1.onRollOut = function() {

mc_1.gotoAndStop(1);

}

}

 

Agora o problema: a animação do botão precionado está tudo OK, inclusive qnd eu clico nos outros botões, ele desativa todos os outros. Mas o problema é que o RollOut não está funcionando quando eu NÃO clico no botão.

Estou quase desistindo aeuheuahaueheha

 

obg mais uma vez!

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.