Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá
Estou com uma dúvida/problema aqui.
Criei uma apresentação com 6 botões, todos são do tipo buttons e estão estanciados e coloquei cada botão numa layer separada.
Agora gostaria de chamar os conteúdos de cada botão.
Estava tentando fazer mas não da certo...eu criei uma nova layer chamada conteúdo, e lá na frente dela, depois de todo o filme estar carregado comecei a criar os conteúdos, um conteúdo em cada frame, tipo, estão assim: o conteúdo 1 esta na layer conteúdo no frame 210, o conteúdo 2 esta na layer conteúdo no frame 211 ... e assim sucessivamente.
Eu tenho que ciar um action em cada botão para chamar esses conteúdos? Alguem pode me ajudar?
Estou usando a versão CS4 do Flash.
Sei que esta bem confuso isso ai galera, mas sou iniciante, to penando pra aprender as coisas aqui...
Pesquise aqui tem tutoriais tb.
Abs
Olá Thiago de Oliveira Cruz
Tentei criar aqui da forma que você me explicou, mas não consegui ainda...
Da primeira forma:
//Clique sobre o botão e adicione o código
on(press){
_root.gotoAndStop(frame);
}on(press){
_root.gotoAndStop(211);
Ai deu um erro:
1087: Syntax error: extra characters found after end of program.
Da segunda forma criei uma layer chamada AS, no primeiro frame dessa layer (frame 1) coloquei o codigo desse jeito:
ajcn_btn.onPress = function(){
gotoAndStop(211);
}
E também deu erro...
1119: Access of possibly undefined property onPress through a reference with static type flash.display:SimpleButton.
Warning: 1090: Migration issue: The onPress event handler is not triggered automatically by Flash Player at run time in ActionScript 3.0. You must first register this handler for the event using addEventListener ( 'mouseDown', callback_handler).
Boaaaaa rapaz você criou um Arquivo em AS 3
Para resolver o problema de migration troque o :
ajcn_btn.onPress = function(){
gotoAndStop(211);
}
Para:
ajcn_btn.addEventListener(MouseEvent.CLICK, onClick);
function onClick(e:Event):void {
gotoAndStop(211);
}
Abraços
Bom, acho que esta quase dando certo hehehe
Seguinte, na layer AS estava dando o seguinte erro:
TypeError: Error #1009: Não é possível acessar uma propriedade ou um método de uma referência de objeto nula.
at Untitled_fla::MainTimeline/frame1()
Ai coloquei o AS no frame 160, que é onde esta o botão, ai deu certo, não deu erro, mas quando acabou a animação e cliquei no botão nada aconteceu...não carregou o frame 211.
Deixa eu explicar mais ou menos como é minha animação, pode ser algo que fiz errado...
Quando tudo começa, carrega o logo de alfa 0 para 100, ai ele diminui e sobe para o canto esquerdo da tela. E enquanto o logo abre, duas linhas uma em cima e uma embaixo do palco lambem vão aparecendo.
Quando o logo e as linhas acabam de aparecer, os menus começam a aparecer, um a um deslizando na tela, e quando o ultimo meu aparece eu paro a animação, no ultimo frame do ultimo menu dou um stop().
Ai na layer acima, conteudo, no frame 211 crieu um keyframe e lá coloquei um texto exemplo.
Será que é nesse stop() que esta o problema? Ela esta parando a animação impedindo que o botão tenha ação?
Bom então vou lhe dizer o seguinte
As ações valem para os botões, se colocar no frame que ele tá até o frame que ele termina...
Por isso se usa uma camada de action script com linha até o final colocando as ações todas nessa area...
Se você colocar um blank frame na camada de actions todas as actions que vinham sendo executadas até o blank frame param de ser executadas... e só vai executar as proximas dali em diante.
Então pelo que to vendo e a confusão que é provavelmente esse teu arquivo, em cada camada de botão, coloque no frame a ação para aquele botão
Assim a ação vai seguir o botão onde ele começa até onde ele termina.
Da uma visitada no youtube como lhe disse para que você estude como fazer coisas basicas no flash.
Sem um basicão vai fica complicado :) de tu sair fazendo as coisas.
abraços
Se é o último frame você tem que dar o stop mesmo senao vai ficar repetindo. Se não for o último você nao precisa dar stop pra para a animação basta terminar a animação mudar pra outra layer e continuar seu projeto.
Verifique o fluxo é bem provável que seu fluxo esteja bugando seu code.
Abs
Sim precisa colocar uma action em cada botão... (eles não fazem ações sozinhas né? ia ser mto bom se fizessem...)
Utilize gotoAndStop(frame desejado) para enviar o swf para o frame desejado.
Para colocar ações nos botões ou você utiliza o metodo antigo
//Clique sobre o botão e adicione o código
on(press){
Ou você cria uma camada de actions
De uma instancia para cada botão indo nas propriedades dos botões e na parte de instance name dando um nome...
E faça o código assim no primeiro frame da camada actions:
Sugiro ver tutoriais no youtube para principiantes... tem varios lá interessantes.
Abraços