Murilo Web 0 Denunciar post Postado Outubro 17, 2007 Nesse link ---> http://forum.imasters.com.br/index.php?sho...st=#entry894149 tem uma codigo para fazer rollout de uma maneira mais eficiente... Só tentando entender bem o codigo para poder usar ele e edita-lo futuramente: Tem algumas partes do codigo q n consegui entender a logica.. gostaria se possivel que alguemme explica-se os porques.. se possivel.. Obrigado. Fiz comentarios no codigo numa linguagem bem simples de facil entendimento... só me corrijam se os meus raciocinios estão certo ;p: on(rollOut, releaseOutside){ // quando o mouse sair, qdo clicar fora onEnterFrame = function(){ // dentro da sequencia de frame faça a seguinte funçãoif(_currentframe != 1){ // se o frame atual for diferente de 1this.prevFrame(); // volte para o frame anterior ( tambem n entendi a logica )}if(_currentframe == 1){ // se o frame atual for igual a 1delete onEnterFrame; // aqui eu n entendi a logica.. ??}} Meu problema foi com essas duas linhas: this.prevFrame(); // volte para o frame anterior ( tambem n entendi a logica ) delete onEnterFrame; // aqui eu n entendi a logica.. ?? Compartilhar este post Link para o post Compartilhar em outros sites
Gabriel Cunha 0 Denunciar post Postado Outubro 17, 2007 E aí Murilo! segue explicação.. espero ajudar! ;D ACTIONSCRIPT on(rollOver){ // no rollover: delete onEnterFrame; // manda parar a sequencia de frames; (como se mandasse sair do loop) this.play(); // da um play na animação. } on(rollOut, releaseOutside){ // no rollout: onEnterFrame = function(){ // dentro da sequencia de frames faça a seguinte função: (como se fosse um loop) if(_currentframe != 1){ // se o frame atual não for o frame 1, this.prevFrame(); // manda pro frame anterior. }else{ // se o frame atual for o frame 1, delete onEnterFrame; // para com a sequencia de frames. (como se mandasse sair do loop) } } } uma animação com 20 frames. no frame 1 tem um stop(). qnd eu coloco o mouse em cima (rollover), do um play na animação... ae a animação vai andando até o frame 18, por exemplo. nesse momento, eu tiro o mouse de cima (rollout), então começa a sequencia de frames (onEnterFrame). isso funciona como se fosse um loop... ae entra no "loop" e verifica se o frame atual é diferente de 1, se for, ele manda pro frame anterior. (tava no frame 18, vai pro frame 17. depois pro 16, 15, 14...) qnd chega no frame 1 ele entra no if, verifica que o frame atual (_currentframe) é igual a 1. então manda parar com a sequencia de frames (delete onEnterFrame;). a lógica parecida com a de um loop!!! nao sei se fui claro, mas qlqr coisa manda aí! abraços, Gabriel Cunha Compartilhar este post Link para o post Compartilhar em outros sites
Murilo Web 0 Denunciar post Postado Outubro 17, 2007 Modifiquei o post aqui... estava com u erro.. Compartilhar este post Link para o post Compartilhar em outros sites
Murilo Web 0 Denunciar post Postado Outubro 18, 2007 [ POST CORRETO ] Gabriel obrigado por estar me ajudando.. Para deixar o negócio mais eficiênte, estou querendo controlar os MC's colocando o codigo no frame e não direto no Botão, Dai estou fazendo assim oh.. // DECLARO A FUNÇÃO SEPARADA EM CIMA SEM O onterframe function nomedafuncao () { if(_currentframe != 1){this.prevFrame(); }else{ delete onEnterFrame;}} // AGORA EU CHAMO A FUNÇÃO NO ROLLOUT btn1.onRollOver = function () { delete onEnterFrame; // manda parar a sequencia de frames; (como se mandasse sair do loop) this.play(); // da um play na animação. this.swapDepths(this.getNextHighestDepth()); // Estou usando para trazer para um nivel maior um dos 4 Mc's}btn1.onRollOut = function () { this.nomedafuncao(); // CHAMO A FUNÇÃO!!!} Estou fazendo o action todo no primeiro frame.. a animaçã esta dentro de btn1.. Fiz a função separada la emcima.. e n deu certo.. da para usar junto?? function dentro de funtion?? eh q ja estou usando um comando function para fazer referencia ao ( btn1 neh.. ) hehe a coisa agora parece mais simples.. mas eh muito importante, pois vai deixar o esquema muito mais eficiente.. Alguem sabe tirar essa minha duvida ?? Obbrigado! Compartilhar este post Link para o post Compartilhar em outros sites
Murilo Web 0 Denunciar post Postado Outubro 18, 2007 Pensando melhor na logica.. eu fiz assim: // ROLLOVER btn1.onRollOver = function () { delete onEnterFrame; // manda parar a sequencia de frames; (como se mandasse sair do loop) this.play(); // da um play na animação. this.swapDepths(this.getNextHighestDepth()); // Estou usando para trazer para um nivel maior um dos 4 Mc's} // ROLLOUT btn1.onRollOut = function () { if (this._currentframe != 1) { // se o frame atual não for o frame 1, this.prevFrame(); // manda pro frame anterior. } if (this._currentframe == 1){ // se o frame atual for igual a 1 delete onEnterFrame; // aqui eu n entendi a logica.. ?? }} Galera.. RollOver e RollOut estão funcionando... Porem com um pequeno probleminha! Ele volta só um frame quando eu tiro o mouse... mto estranho.. realmente n consegui identificar o pq.. Alguem sabe me dizer ?? só falta isso!! <O> Compartilhar este post Link para o post Compartilhar em outros sites
Murilo Web 0 Denunciar post Postado Outubro 18, 2007 Acho que ele não esta indentificando como seuqencia de frames, pois não usei "onenterframe" no "rollout"Porem n sei como colocar o "onenterframe" no meio desse codigo.. Alguem pode me ajudar ?? Compartilhar este post Link para o post Compartilhar em outros sites
sanamaria 0 Denunciar post Postado Outubro 18, 2007 tá certinho, só faz assim: ACTIONSCRIPT btn01.onRollOut = function() { this.onEnterFrame = function() { if (this._currentframe != 1) { // se o frame atual não for o frame 1, this.prevFrame(); // manda pro frame anterior. } if (this._currentframe == 1) { // se o frame atual for igual a 1 delete this.onEnterFrame; // aqui eu n entendi a logica.. ?? } }; }; Compartilhar este post Link para o post Compartilhar em outros sites