Muricium 0 Denunciar post Postado Abril 2, 2009 Ola pessoal desenvolvi uma animação todo na Time line, sem usar o Action, e no ultimo frame coloquei o stop (); para ele nao ficar dando loop. Mas coloquei um preload para ele carregar antes e depois que coloquei este preload ele fica dando loop, como ignorasse o stop (); que coloquei no ultimo frame. Onde estou errando? barra_mc = a abarra de porcentagem e porcentagem é o numero que esta carregando segue o código do preload: _root.onEnterFrame = function() { var carregados:Number = _root.getBytesLoaded(); var totais:Number = _root.getBytesTotal(); var calculo:Number=(carregados/totais)*100; // if(calculo==100) { play(); }else{ stop(); } barra_mc._width=calculo; porcentagem=int(calculo) + "%"; }; Compartilhar este post Link para o post Compartilhar em outros sites
Andre Cocuroci 0 Denunciar post Postado Abril 2, 2009 por causa do onEnterFrame. na condição que verifica que foi carregado tenta algo assim delete this.onEnterFrame; Compartilhar este post Link para o post Compartilhar em outros sites
Thiago de Oliveira Cruz 21 Denunciar post Postado Abril 2, 2009 No ultimo frame você colocou stop();?? Pois o código ta certo Mas eu removeria o else que é desnecessário E colocava no começo do código antes do enterframe E como o amigo disse removeria o enterframe como delete Abraços Compartilhar este post Link para o post Compartilhar em outros sites
Muricium 0 Denunciar post Postado Abril 2, 2009 vamos la, sou iniciante no action onde que coloco o: delete this.onEnterFrame; Compartilhar este post Link para o post Compartilhar em outros sites
Andre Cocuroci 0 Denunciar post Postado Abril 2, 2009 _root.onEnterFrame = function() { var carregados:Number = _root.getBytesLoaded(); var totais:Number = _root.getBytesTotal(); var calculo:Number=(carregados/totais)*100; // if(calculo==100) { play(); delete this.onEnterFrame; }else{ stop(); } barra_mc._width=calculo; porcentagem=int(calculo) + "%"; } Compartilhar este post Link para o post Compartilhar em outros sites
Muricium 0 Denunciar post Postado Abril 2, 2009 entao, eu fiz isso daí, mas não funcionou nao. ele continua voltando. _root.onEnterFrame = function() { var carregados:Number = _root.getBytesLoaded(); var totais:Number = _root.getBytesTotal(); var calculo:Number=(carregados/totais)*100; // if(calculo==100) { play(); delete this.onEnterFrame; }else{ stop(); } barra_mc._width=calculo; porcentagem=int(calculo) + "%"; }; Compartilhar este post Link para o post Compartilhar em outros sites
Andre Cocuroci 0 Denunciar post Postado Abril 2, 2009 Hmm eu to sem flash aqui para testar, mas tenho um preload padrão que uso bem isso que te falei. ao invez de this tente _root Chegando em casa eu vejo certinho e te respondo caso ninguem te ajudar. Compartilhar este post Link para o post Compartilhar em outros sites
Muricium 0 Denunciar post Postado Abril 2, 2009 pois é, não funcionou tbm. fico no aguardo. obrigado pela atenção. Compartilhar este post Link para o post Compartilhar em outros sites
Thiago de Oliveira Cruz 21 Denunciar post Postado Abril 2, 2009 Vou repetir ;) Esse else não existe....... Pois ele vai toda vez re fazer o calculo e toda vez o calculo vai dar 100 então vai entrar no if novalmente Depois que você usar o delete this.onEnterFrame Coloque um stop(); no ultimo frame da sua animação ou na animação propriamente dita onde você quer que pare... Que ele vai parar. Abraços Compartilhar este post Link para o post Compartilhar em outros sites
Muricium 0 Denunciar post Postado Abril 2, 2009 MARAVILHA MEU QUERIDO funcionou, obrigado pela atenção entao para aprendizado colocando o else { stop ();} ele voltaria e entraria em loop o que poderiamos dizer de um loop infinito? Compartilhar este post Link para o post Compartilhar em outros sites
Thiago de Oliveira Cruz 21 Denunciar post Postado Abril 2, 2009 Ele já era um loop infinito... uma vez que ele nunca entraria no else Pois ele sempre verificaria a variavel calculo ia sempre dizer 100 Então ele sempre entraria no if... Você teria que nesse caso criar outro tipo de condição para que ele não entra-se mais no if ;) Ou para ele não entrar no on enterfarme na verdade :) fazendo assim: var verifica:Number; if(verifica == undefined){ _root.onEnterFrame = function() { var carregados:Number = _root.getBytesLoaded(); var totais:Number = _root.getBytesTotal(); var calculo=(carregados/totais)*100; // if(calculo==100) { verifica = 1; play(); delete this.onEnterFrame; } barra_mc._width=calculo; porcentagem=int(calculo) + "%"; }; }else{ stop(); } Abraços Compartilhar este post Link para o post Compartilhar em outros sites
Andre Cocuroci 0 Denunciar post Postado Abril 3, 2009 Verdade, nem tinha reparado no else. Normalmente dou stop fora do enterframe e depois que carrega doi play e deleto ele. Mais ou menos assim preload = function(alvo):Void { alvo.stop(); var total:Number = alvo.getBytesTotal(); var porcentagem:Number; //trace("total: "+total); alvo.onEnterFrame = function() { var lendo:Number = this.getBytesLoaded(); porcentagem = Math.floor((lendo/total) * 100); this.text.text = porcentagem + " %"; if(lendo>4 && total>4 && lendo>=total) { this.play(); delete this.onEnterFrame; } } } preload(_root); Compartilhar este post Link para o post Compartilhar em outros sites