Ir para conteúdo

POWERED BY:

Arquivado

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

RMorselli

ROLL_OVER , ROLL_OUT, Click

Recommended Posts

Gente,

primeiramente boa noite.

 

Sou um usuário iniciante em Flash, estou usando CS5 e AS3.0.

O tópico vai ser um pouco longo pois vou contar o passo a passo do que eu fiz.

 

Importei uma imagem, transformei em MC e dei o nome de moldura01.

Dentro do MC fiz 3 ações na TIMELINE,

Frame 1 - 10 = aumenta

Frame 11- 20 = diminui

Frame 21- 30 = vira

É bem simples... É só para brincar mesmo...

 

Agora vem o AS.

 

Com os devidos stop's (); nos lugares.

//moldura01
moldura01.addEventListener(MouseEvent.CLICK, clicar);
moldura01.addEventListener(MouseEvent.ROLL_OVER, aumenta);
moldura01.addEventListener(MouseEvent.ROLL_OUT, diminui);
moldura01.buttonMode = true;
moldura01.mouseChildren = true;
moldura01.useHandCursor = true;

/*funções*/
function aumenta(e:MouseEvent){
moldura01.gotoAndPlay(1);
       trace("o mouse entrou no botão " + evt.target.name)
}

function diminui(e:MouseEvent){
moldura01.gotoAndPlay(11);
       trace("o mouse saiu do botão" + evt.target.name)
}
function clicar(e:MouseEvent){
moldura01.gotoAndPlay(21);
       trace("o mouse clicou no botão " + evt.target.name)
}
//FIM

Ai começaram os problemas...

O ROLL_OVER e o ROLL_OUT funcionam sem problemas.

 

Porem quando eu clico na "moldura01" aparece tudo junto, o clique o saiu e o entrou. E a ação que seria o virar não aparece.

 

Resolvi o problema usando dentro da função clicar:

       moldura01.removeEventListener(MouseEvent.ROLL_OVER, aumenta);
moldura01.removeEventListener(MouseEvent.ROLL_OUT, diminui);
moldura01.removeEventListener(MouseEvent.CLICK, clicar);

Aparentemente resolveu... A moldura aumentava, diminuia e depois quando clicava virava...

Criei a moldura02 e 03, dupliquei os códigos... (sim, eu sei que o correto seria fazer um array)

tudo funfando legal.

 

Ai coloquei dentro de cada moldura um botão para tentar voltar para o inicio e acessar as outras molduras. e adicionei + 10 frames com o movimento contrario de "vira". gotoAndPlay denovo e tudo certo, a moldura diminui...

 

...AGORA QUE VEM ONDE EU TRAVEI...

 

Como eu dei o "removeEventListener" eu não consigo fazer que quando eu clicar no botão dentro do MC e retornar ao tamanho original chamar a função novamente.

 

Alguma ideia????

Como posso fazer com que o BT dentro do MC chame o momento (0) do Palco e leia todas as funções novamente?

Existe algum tipo de prioridade de ação? como setar isso? Tipo, clique é prioritário...

 

tentei chamar de novo a função mas nada rola!!!

Provável sintaxe errada...

Lembrando que na Cena 1 só tenho um frame, todo o movimento esta dentro de cada MC.

 

Alguém ajuda?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom o que eu te aconselho seria inves de colocar o numero dos frames a serem executados você os nomear

 

Assim em vez de gotoAndPlay(nº)você colocaria o nome dado aos frames("nome")

segundo você esta dando stop(); nos eventos

 

não sei se vai te ajudar mas se tiver duvidas posta ai que tento te ajudar

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.