RMorselli 0 Denunciar post Postado Setembro 9, 2011 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
edu.mota 0 Denunciar post Postado Setembro 14, 2011 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