Patizinha 0 Denunciar post Postado Dezembro 25, 2010 Olá a todos! Acredito que meu problema é bem mais simples do que possam imaginar, mas é que não entendo nada de programação, rsrs... Tenho dois mc, chamado "taco" e "triangulo". Dentro do "taco", há outro mc, chamado "quadrado". E assim, dentro do "quadrado", um objeto chamado "quadrado01" (onde ocorre a sua animação). Gostaria que, quando essa animação terminasse, ele automaticamente começasse a animação do objeto "triangulo", que está dentro do mc chamado "triangulo". Tentei ilustrar meu problema abaixo: Espero que tenham entendido =X... desde já, agradeço mesmo muito a todos!! :) . Obrigada! Eu fiquei tentanto algumas coisas parecidas com essa: {gotoAndPlay("_root.triangulo", 2); } Estou chegando perto =X?... Compartilhar este post Link para o post Compartilhar em outros sites
Elektra 102 Denunciar post Postado Dezembro 26, 2010 Oi Patizinha, seja bem vinda ao fórum. Uma pergunta, a animação inicial, que está aninhada no mc 'taco' será acionada por algum evento (Click)? Conforme o caso, basta ajustar o número de frames da timeline interna, onde está a animação do 'quadrado01', com o início do mc com a animação 'triângulo'. Nesse caso o 'stop();' é adicionado na timeline interna onde está a animação 'quadrado01'. Idem para 'triângulo'. Desta forma, não irá interferir em outras animações em execução na timeline principal. Por favor, adicione mais informações. Abraços Compartilhar este post Link para o post Compartilhar em outros sites
Patizinha 0 Denunciar post Postado Dezembro 26, 2010 Oi Elektra, obrigada!! Pode me chamar de Pat, é que todos esses nomes já estavam sendo usados aqui, rsrs! Não, na verdade não terá click, nem botão, nem nada. O que acontece é que a animação do quadrado ficará em layer diferente do triangulo, por isso que precisei separá-los. Mas queria que quando a do quadrado terminasse, automaticamente começasse a do triângulo. Será que há alguma solução ^_^" ? Obrigada! Edit: Um amigo sugeriu isso: stop(); parent.parent.parent.triangulo.play(); Mas não funcionou =(... até tentei só com dois "parent", mas também não funfou... ô tristeza =(.... Compartilhar este post Link para o post Compartilhar em outros sites
Elektra 102 Denunciar post Postado Dezembro 26, 2010 Pat, fiz um exemplo simples, talvez possa dar uma luz. Salvei para a versão CS3. Adicionei comentários no action, você pode usar em outras 'combinações'. http://rapidshare.com/files/439368150/anima_pat.rar Uso AS3, mas neste caso o action é idem ao AS2. O code que o seu amigo sugeriu é adequado para acessar os 'objetos' com algum evento, como click, mouse_over, etc. Qualquer coisa avise. Abraços Compartilhar este post Link para o post Compartilhar em outros sites
DesenvolvedorRoger 50 Denunciar post Postado Dezembro 26, 2010 Bom, não vi o exemplo que a Elektra postou, mas deixou um exemplo das diversas formas de se fazer: taco_mc.quadrado_mc.quadrado01_mc.addEventListener( Event.ENTER_FRAME,checaFrameMC ); function checaFrameMC( e:Event ){ if( e.target.currentFrame == 20 ){//20 seria o último frame da sua animação. triangulo_mc.triangulo2_mc.play(); } } Compartilhar este post Link para o post Compartilhar em outros sites
Patizinha 0 Denunciar post Postado Dezembro 26, 2010 Roger, muuuuuito obrigada! Eu tentei aqui, mas infelizmente não funcionou. Mas já suspeito estar fazendo algo errado, então vou deixar assim mesmo. Na verdade isso tudo é para um jogo que está sendo finalizado, mas queria poder programar pelo menos essa parte, pra poder visualizar a animação certinha. Mas como tem me tomado muito mais tempo, vou deixar para o programador fazer (ele quem me passou aquele código acima. Ele disse que era um pouco mais complicado e que era pra testar só com aquele, se não desse certo, eu teria que deixar pra ele ver mesmo). Muito obrigada a ambos! Adorei esse fórum :joia: !! Compartilhar este post Link para o post Compartilhar em outros sites
DesenvolvedorRoger 50 Denunciar post Postado Dezembro 26, 2010 Olá! Realmente você deve estar fazendo algo de errado aí... O código que eu passei é para ser colocado na TIMELINE PRINCIPAL e não dentro de algum MC... Teste assim porque não pode falhar... Obs.: Não se esqueça de informar o último frame da sua animação lá na condição: ...currentFrame == numeroDoFrame ). Lembre - se tb dos nomes das instâncias -> taco_mc, quadrado_mc, quadrado01_mc etc Já o código que seu amigo passou não é válido para AS3(me refiro a sintaxe para acessar o MC). Compartilhar este post Link para o post Compartilhar em outros sites
Elektra 102 Denunciar post Postado Dezembro 26, 2010 Daí lhe perguntar se usava algum evento para acionar a animação. Isso muda tudo. A forma mais simples é com uso de labels e o action adequado para acessar os movie clips aninhados. Um trecho em AS3 , onde aciono pelo teclado, a anima interna de um mc (kof), em três estados (labels) >> parado, andar e golpear. import flash.events.KeyboardEvent; stage.addEventListener(KeyboardEvent.KEY_DOWN, onDown); stage.addEventListener(KeyboardEvent.KEY_UP, onUp); var golpear:Boolean = false; var velocidade:Number = 4; var andar:Boolean = false; function onDown(evt:KeyboardEvent):void { //trace("key"); if(evt.keyCode == Keyboard.SPACE) { if(!golpear) kof.gotoAndPlay("golpear"); golpear = true; } // else if ... // if ... // else if ... // if ... // ...etc No seu caso há objetos aninhados e o code em AS2 (_root) é diferente. Um pouco mais e você consegue. Abraços Compartilhar este post Link para o post Compartilhar em outros sites
Patizinha 0 Denunciar post Postado Dezembro 26, 2010 Hmm entendi, vou avisar a ele, obrigada =X. Eu fiz assim: mcSisServ01AnimtPart01.mcSisOper01Normal.mcSisCar02.addEventListener( Event.ENTER_FRAME,checaFrameMC ); function checaFrameMC( e:Event ){ if( e.target.currentFrame == 695 ){ mcSisServ01AnimtPart02.mcPointMachineMF1.play(); } } Acho que esqueci de comentar que dentro do "quadrado", não havia somente o "quadrado1" e sim várias outras animações. Então peguei um deles, que ia de início ao fim (o cSisCar02). Poderia ter sido? a mesma coisa para o "triangulo1" dentro do triângulo. Eu peguei um deles pra representar o triangulo1, o "mcPointMachineMF1". Haaa antes eu tinha colocado no final do mcSisCar02, mas agora coloquei na principal. De qualquer forma, ainda não funcionou, snif =(... Mas obrigada ^^" Para Elektra: Apesar de ser um jogo, essa parte que to fazendo agora é só uma animação. Não será acionado em nada, a não na parte que entra na história (que assim é mais por parte da programação do jogo em si). Essa parte da história era algo meio que separado do jogo (como se fosse uma intro). Pena que não posso postar aqui - senão o cliente me dá uma voadeira >.< - mas acho que visualizando o problema em si, ficaria bem mais fácil de entender, sem dúvidas! Esse código que você me passou agora é com acionamento de botões para cada fase de animação do personagem, certo? No meu caso, eu queria que ocorresse tudo automaticamente, do início ao fim :ermm: .... Mas nem esquenta mais ^^. A gente dá um jeito aqui! Dômooo!! Abração! Compartilhar este post Link para o post Compartilhar em outros sites
DesenvolvedorRoger 50 Denunciar post Postado Dezembro 26, 2010 Da forma como você fez está correto, se não funcionou é porque você não está especificando o caminho direito... O 'mcSisServ01AnimtPart01' está na timeline principal? O 'mcSisOper01Normal' está dentro do 'mcSisServ01AnimtPart01' e por fim o 'mcSisCar02' está dentro do 'mcSisOper01Normal'? Se sim, até aí vai bem... E agora: mcSisServ01AnimtPart02 está onde? Este tem que estar na TIMELINE PRINCIPAL também. E o mcPointMachineMF1 tem que estar dentro do mcSisServ01AnimtPart02... Bom, espero que com essas dicas você consiga, caso contrário só vou poder ajudar em um outro momento, porque meu tempo por agora acabou... Qualquer coisa depois me manda o seu .fla que quando sobrar um tempinho posso te dar uma mão(mas tenta acerta o caminho porque o código está correto) Compartilhar este post Link para o post Compartilhar em outros sites
Elektra 102 Denunciar post Postado Dezembro 27, 2010 Adicionar informações mais completas possíveis ao abrir o tópico facilita muito. Todos temos nossas ocupações. Não é só o code que está usando, é como ele é chamado em relação ao restante. Certamente o jogo seja programado com uso de classes, isso difere a forma de acessar o mc com animação na timeline. Boa sorte aí. ;) Compartilhar este post Link para o post Compartilhar em outros sites