tuco 0 Denunciar post Postado Abril 28, 2006 Bom galera minha duvida é simples , e acredito que este código seja bem conhecido tambémgostaria de saber como faço para dar um loop neste código fazendo que ele Se repita continuamente ,ou quantas vezes eu desejar.(para quem não sabe este código colocado em um mc faz ele se deslocar)onClipEvent(load) {_x = 30;fim = 250;}onClipEvent(enterframe) {_x = _x + ( _x – fim)*.1;} Compartilhar este post Link para o post Compartilhar em outros sites
ludoman 0 Denunciar post Postado Abril 28, 2006 O próprio evento onEnterFrame já executa eternamente o código inserido nele. Se você quiser que seja executadas x vezes o código, faz assim: onClipEvent(load) { _x = 30; fim = 250; num = 0 vezes = 5;}onClipEvent(enterframe) { if (num < vezes) { _x = _x + ( _x – fim)*.1; num += 1; } else { delete enterframe; }} O teu código postado faz o MC andar no palco da posição x = 30 até a posição x = 250, de 0.1 em 0.1 pixels. Com esse if que eu coloquei, a função vai rolar 5 vezes, ou seja, andar 0.5 pixels. Não entendi direito se esse era o problema... mas qualquer coisa, posta novamente. Falows Compartilhar este post Link para o post Compartilhar em outros sites
niemer 0 Denunciar post Postado Abril 28, 2006 cara, tbm naum entendi direito se eh isso, pq parece muito simples(colocando o if)... ae ludoman, achu q naum teria precisão de ser colocado o else, nem o delete(onEnterFrame)...me dá uma luz aew.. http://forum.imasters.com.br/public/style_emoticons/default/blush.gif Compartilhar este post Link para o post Compartilhar em outros sites
ludoman 0 Denunciar post Postado Abril 28, 2006 Na realidade o else com o delete onEnterFrame não é necessário se o MC for ficar estático no palco. (O MC fica em uma posião _x onde a conta _x + ( _x – fim)*.1 dá a posição atual....)Mas, se por algum motivo quisermos trocar a posição do MC, sem apagar o onEnterFrame, ele vai se movimentar novamente.... Compartilhar este post Link para o post Compartilhar em outros sites
tuco 0 Denunciar post Postado Abril 29, 2006 Fala ludoman, tentei fazer do jeito que você fez e nada, pq você usou o delete entreframe ? Compartilhar este post Link para o post Compartilhar em outros sites
ludoman 0 Denunciar post Postado Abril 29, 2006 Opa.. tava olhando o código que eu postei e tem um erro... não é delete enterframe, é delete onEnterFrame.O que eu entendi sobre a sua dúvida era que você queria que o MC andasse na tela, mas que fosse posível controlar quantas vezes esse código de andar na tela seja executado.O evento onEnterFrame já faz esse loop automaticamente, executando a ação de movimento até que a posição _x do MC seja 250.Configurei um if que verificará no onEnterFrame (que é um loop por natureza), quantas vezes o código foi executado e, parar quando tiver passado 5 vezes.o delete onEnterFrame é para apagar o evento onEnterFrame e sumir com esse loop automático.Em linguagem prática é basicamente isso que o código faz.Seria essa a sua dúvida???Falows Compartilhar este post Link para o post Compartilhar em outros sites
tuco 0 Denunciar post Postado Abril 29, 2006 o código ele faz um mc andar no palco mesmo.O enterframe pelo que eu saiba ele faz com que o mc se desloque , mas não com que o evento seja realizado novamente ..entendeu?? Compartilhar este post Link para o post Compartilhar em outros sites
ludoman 0 Denunciar post Postado Abril 30, 2006 As ações no comando onClipEvent(load) são executadas somente uma vez, quando o SWF é carregado. As ações no comando onClipEvent(enterFrame) são executadas sempre que a reprodução entra em um quadro. Mesmo em um SWF com apenas um quadro, a reprodução ainda entra nesse quadro repetidamente e o script é executado também repetidamente. No caso o teu código, o MC "anda" porque a ação enterFrame é executada a cada quadro, mesmo que exista somente um quadro, e a posição _x é alterada de poquinho em poquinho, o que determina a animação.Relendo todo esse post, estou ainda muito confuso sobre qual é a dúvida....Não entendi o que você quer fazer e não está conseguindo...Falows Compartilhar este post Link para o post Compartilhar em outros sites
tuco 0 Denunciar post Postado Abril 30, 2006 realmente você deve estar confuso , por que o que você esta dizendo é o que eu já sei ..Faça um teste coloque o código que eu postei em um mc , e você vai ver que ele se desloca apenas uma vez até a posição final, o que eu quero é que ele ao chegar a posição final , ele volte a posição inicial e faça o trajeto novamente entendeu??eu sei que o evento enterframe faz com que ele se desloque de frame em frame mesmo ele estando em um frame só.. Compartilhar este post Link para o post Compartilhar em outros sites
ludoman 0 Denunciar post Postado Abril 30, 2006 Ahhhhhh!!!! Agora entendi.... hehehehe Mas você quer que ao acabar o movimento ele volte para a situação inicial instantâneamente ou volte em motion também??? Para voltar instantâneamente faz assim: onClipEvent (load) { inicial = 30; fim = 250; num = 0; vezes = 5; _x = inicial;}onClipEvent (enterFrame) { _x = _x -(_x - fim)*0.1; //detalhe que como o fim é maior que a posição _x, vai dar um número negativo. por isso o - antes do parenteses if (num<vezes && _x >= fim-0.45) { //por motivos de o número ficar muito pequeno, o flash não está incrementando e dando um erro de 0.45 px, parando na posição 249,55 e não 250 num += 1; _x = inicial; } else { delete onEnterFrame; }} Vê se é alguma coisa assim.... Não consegui corrigir aquele problema com o -0.45... Notei que para qualquer valor de inicio e de fim, o erro é sempre o mesmo: 0.45. Se deixar fixo, acho que não vai dar problema... Vê se isso te ajuda Falows Compartilhar este post Link para o post Compartilhar em outros sites