Chan 0 Denunciar post Postado Dezembro 6, 2003 E ae galera!!!!Estou voltando a ativa depois de um tempo parado no flash e no forum......e já vonho com uma bomba...hehheheheSeguinte....eh meio complicadinho, mas acho que só pra esplicar, pq pra fazer deve ser mais sussa....estou fazendo um preloader que eh o seguinte: Um MC, dentro dele tres circulos, um pequeno, um medio e um grande, fazendo uma figura parecida com um alvo, com um X em cada um.....bem....minha intenção eh que o circulo menor (do centro) gire x graus a cada segundo....como se fosse um relógio, mas não tendo nada a ver com horario, ou carregamento do filme.....só mesmo para dar a impressão de contagem.....bem.....o circulo medio (do meio) eu queria q girasse a cada volta que o circulo menor desse......e o circulo maior o mesmo em relação ao do meio.....como funcionam os ponteiros de um relogio mesmo.....mas o problema é que não consigo fazer o circulo sequer girar, quanto mais faze-lo girar em conjunto com os tres........eu to tentando usar o enterFrame, mas num tah dando certo......tipo...só pora fazer o circulo menor girar (instanciado de clock1)onClipEvent (enterFrame) { clock1._rotation= _rotation+20}o q tah errado?!?!?!.....pq ele só aparece com o giro de 20 graus direto...e num fica girando.....Se alguem puder me soccorrer......ValeuChan Compartilhar este post Link para o post Compartilhar em outros sites
Leandro Ferreira 0 Denunciar post Postado Dezembro 6, 2003 coloque dentro do clock1:onClipEvent(enterFrame) {_rotation+= 20}dentro do clock2:onClipEvent(enterFrame) {if(_parent.clock1._rotation==0){_rotation+= 20}}dentro do clock3:onClipEvent(enterFrame) {if(_parent.clock2._rotation==0){_rotation+= 20}} Compartilhar este post Link para o post Compartilhar em outros sites
Chan 0 Denunciar post Postado Dezembro 6, 2003 E ae Durang, bele?!?!?Sempre "helpando" nóis akiEntão cara, eu tentei fazer como você falou, mas o efeito foi o seguinte:o circulo menor apareceu 20 graus "girado" e paradoo circulo medio idem o circulo maior ficou girando rapidinho.....isso acontece quando o mc com os tres circulos esta dentro de outro mc q eh o preloaderse eu colocar o mc que tem os circulos na timeline principal ele gira somente o menor....o do meio fica parado....e o maior fica girando rapidinho.....ahhh.......seria possível, no final...quando o filme terminasse de carregar, os tres circulos voltarem para o rotation = 0? tipo...voltassem girando e não só aparecessem......ValeuChan Compartilhar este post Link para o post Compartilhar em outros sites
Chan 0 Denunciar post Postado Dezembro 6, 2003 Opa,....falha minha....tinha um código perdido lah no meio que eu esqueci de tirar que estava atrapalhando o funcionamento da coisa.....agora deu certo..... Mas só tive um pequeno probleminha.... O circulo medio funcionou exatamente como eu queria, o circulo pequeno gira constantemente, tem uma maneira de fazer ele "ticar" como os segundos de um relógio, naum?!....tipo.....girando x graus a cada segundo, sem um movimento continuo.....dando "pulos" de graus para graus.... mas o problema mesmo foi com o grande.......o codigo para ele diz que quando o _rotation do clock2 (circulo medio) for = 0, ele deve girar x graus if(_parent.clock2._rotation==0){_rotation+= 20}, mas o problema eh que como o clock2 fica um bom tempo no _rotation==0 (até o clock1 dar a volta inteira) o clock2 (grande) fica girando constantemente....tem como corrigir isso?!?!?! Ahh....o problema de como fazer para os ponteiros voltarem para o _rotation=0 quando o filme for carregado persiste.... Obrigado pela força e desculpe a insistencia Abraços Chan Compartilhar este post Link para o post Compartilhar em outros sites
carneirinho 7 Denunciar post Postado Dezembro 6, 2003 Pra fazer essa paradinha que você quer, você recisa de uam funçao é um intervalo, coloque esse código no seu frame: setInterval(girar, 1000); // cada 1000 corresponde ao intervalo de 1 segundo function girar() { _root.clock1._rotation += 10; // aqui ele vai rotacionar 10 graus sentido horario if (_root.clock1._rotation == 0) { //se a rotação do clock receber a posição 0 _root.clock2._rotation += 20; // gire o clock2 mais 20 graus if (_root.clock2._rotation == 0) { // se a rotação do clock2 for 0 _root.clock3._rotation += 20; // gire 20 graus no clock3 } } } Eu tentei com enterFrame que o durang fez, mas não deu certo o setInterval, porisso passei pra actions frame aproveitando aí a idéia do Durang, pode tirar todas ações dos frames, deixa smente essa aí decima. Valeu Durang !!! abraço Chan, Carneirinho Compartilhar este post Link para o post Compartilhar em outros sites
Chan 0 Denunciar post Postado Dezembro 6, 2003 Fala Mr. Carneirinho.....MAGO DOS RELÓGIOS!!!!!....beleza!??!?! :) :) (aquele seu tutorial de como fazer relógio analõgico foi o melhor tuto de que jah vi na vida.....huahuahuahuhauahhaCara....fiz como você falou e funcionou perfeitamente.......(realmente o Durang mandou muito bem nos códigos)....só que ainda persiste o problema de como dizer para o preloader que quando o filme for carregado, todos voltem para a rotação = 0 e melhor ainda......fazer isso desabilitando o setInterval, ou modificando (sei lah se dá pra fazer isso) para os ponteiros retomarem o giro contínuo, sem o "ticar" do relógio, mas somente quando o filme fosse carregado e na hora de "zerar os ponteiros", mais ou menos como acontece com os cronometros dos relógios Swatch.....que quando voltam ao zero voltam continuo...(isso tah ficando complexo neh!??!1...parece ateh filme de "róliúdi").....Eu pensei em fazer isso usando a função getBytes loaded, e depois mandar o filme para o segundo frame onde começa a animação ("montagem") do site, mas descobri que num tenho noção de como fica a estrutura do código...heuheuheuehue......ahh galera....talvez eu faça um curso de AS la na impacta.......no mes que vem.....ae vou para de encher o saco com essas bobagens...heheehueu...espero..... :P ahh...eu fiz o set interval usando 1000, ae eu vi que aqilo ia demorar muito para o circulo maior girar...ia ficar monótono.....como pensei que fosse ficar legal o efeito relógio, teria que usar isso mesmo...mas depois vi que ia ser um saco,...hehehe.....então modifiquei os angulos para 30, no lugar de vinte, e o set interval para 50, no lugar de 1000....acho que ficou menos enjoativo.....hehehe.....o legal do flash eh essa possibilidade de mudar um numero no codigo e dar um efeito diferente na animação....neh não!??!!?Abração caras!!!!Chan Compartilhar este post Link para o post Compartilhar em outros sites
Leandro Ferreira 0 Denunciar post Postado Dezembro 6, 2003 aproveitando o do carneirinho(teste ai no seu, se nao funciona da 1 toque): intervalo = setInterval(girar, 1000); // cada 1000 corresponde ao intervalo de 1 segundofunction girar() {_root.clock1._rotation += 10; // aqui ele vai rotacionar 10 graus sentido horarioif (_root.clock1._rotation == 0) { //se a rotação do clock receber a posição 0_root.clock2._rotation += 20; // gire o clock2 mais 20 grausif (_root.clock2._rotation == 0) { // se a rotação do clock2 for 0_root.clock3._rotation += 20; // gire 20 graus no clock3}}}function volta() {clock1.onEnterFrame = function() { //loop no clock1if(int(_rotation)!=0) {_rotation-= _rotation*.5} else {this.onEnterFrame = function() {null}} //se a rotacao for diferente de 0, faça ele ir a 0. se for 0, pare o loop}clock2.onEnterFrame = function() {if(int(_rotation)!=0) {_rotation-= _rotation*.5} else {this.onEnterFrame = function() {null}} //idem ao de cima}clock3.onEnterFrame = function() {if(int(_rotation)!=0) {_rotation-= _rotation*.5} else {this.onEnterFrame = function() {null}} //idem ao de cima}}onEnterFrame = function() { //loopif(getBytesLoaded == getBytesTotal()) { //se o filme estiver carregadoclearInterval(intervalo) //tire o setIntervalvolta() //execute a função volta}} Compartilhar este post Link para o post Compartilhar em outros sites
Chan 0 Denunciar post Postado Dezembro 6, 2003 Cara...só fera vcs hein....tah loko....um dia quero ser popstar que nem vcs dois!!!! Durang, eu usei o código que você passou, mas o preloader não funciona como um preloader.....tipo.....quando eu o coloco antes de uma pagina e testo, ele deveria nem aparecer, pq o carregameto eh imediato na minha m´qauina, certo!?...ou to falando m*****?!?!? Pq ele aparece....gira, mas não consegui relaciona-lo com o carregamento da pagina.....ahhh......eu coloquei uma coisinha no final...um comando no final, mandando ele ir para o frame 2 mas num funcionou...... meu codigo final ficou assim stop();intervalo = setInterval(girar, 50); // cada 1000 corresponde ao intervalo de 1 segundofunction girar() {_root.preload.clock.clock1._rotation += 30; // aqui ele vai rotacionar 10 graus sentido horarioif (_root.preload.clock.clock1._rotation == 0) { //se a rotação do clock receber a posição 0_root.preload.clock.clock2._rotation += 30; // gire o clock2 mais 20 grausif (_root.preload.clock.clock2._rotation == 0) { // se a rotação do clock2 for 0_root.preload.clock.clock3._rotation += 30; // gire 20 graus no clock3}}}function volta() {preload.clock.clock1.onEnterFrame = function() { //loop no clock1if(int(_rotation)!=0) {_rotation-= _rotation*.5} else {this.onEnterFrame = function() {null}} //se a rotacao for diferente de 0, faça ele ir a 0. se for 0, pare o loop}preload.clock.clock2.onEnterFrame = function() {if(int(_rotation)!=0) {_rotation-= _rotation*.5} else {this.onEnterFrame = function() {null}} //idem ao de cima}preload.clock.clock3.onEnterFrame = function() {if(int(_rotation)!=0) {_rotation-= _rotation*.5} else {this.onEnterFrame = function() {null}} //idem ao de cima}}onEnterFrame = function() { //loopif(getBytesLoaded == getBytesTotal()) { //se o filme estiver carregadoclearInterval(intervalo) //tire o setIntervalvolta() //execute a função voltagotoAndPlay(2);} será que tem algum problema de o preloader estar dentro de um mc? Compartilhar este post Link para o post Compartilhar em outros sites
Chan 0 Denunciar post Postado Dezembro 6, 2003 ahh...queria só entender uma coisinha no código....ou melhor.....duasif(int(_rotation)!=0) {_rotation-= _rotation*.5} else {this.onEnterFrame = function() {null}}se (int(rotação) diferente de zero {aqui eh que eu naum entendi o por que do -=? e depois o q significa o "*."? o "-" diz para o mc girar no sentido antihorário, certo? mas o que eh o *.? pq num pode ser (_rotation-=5)?e outra coisa eh o int....o que eh isso?Valeus ae galera....AbratzChan Compartilhar este post Link para o post Compartilhar em outros sites
Leandro Ferreira 0 Denunciar post Postado Dezembro 6, 2003 nesse caso eu usei a fórmula da velocidade: - => subtração * => multiplicação /\V = /\S//\T valor += (final-valor)/2 valor += (final-valor)*0.5 valor += (0-valor)*0.5 valor += - valor *.5 valor -= valor *.5 fazendo isso, quando o tempo vai passando o valor vai tentendo a 0, mas não chega a exatamente 0. pra o if funcionar, eu uso o aproximado(tiro as casas decimais, com o int). Compartilhar este post Link para o post Compartilhar em outros sites
Chan 0 Denunciar post Postado Dezembro 6, 2003 ah tah....tendi......hehehe....mas e o lance do preloader....pq num funciona como um preloader!?!!?!.....desculpe a insistencia...mas num consigo achar solução....jah tentei mudar os códigos...acrescentar coisas....tirar coiss.;..mas nada parece fazer aquilo funcionar como um ´preloader...ValewsChan Compartilhar este post Link para o post Compartilhar em outros sites
Leandro Ferreira 0 Denunciar post Postado Dezembro 7, 2003 verei isso ainda Compartilhar este post Link para o post Compartilhar em outros sites
Chan 0 Denunciar post Postado Dezembro 7, 2003 Putz....valeu cara......desculpe o trampo ae....AbraçosChan Compartilhar este post Link para o post Compartilhar em outros sites
Chan 0 Denunciar post Postado Dezembro 9, 2003 Yes........deu!!!!.....o Mr. Durang, em conjunto com o Mr. Carneirinho resolveram o problema!!!!!! Caramba....esses caras manjam muito meu!!!!! Ae..pra quem quiser saber como fazer, tae o results final..... to decifrando ainda algumas coisas que não entendi, mas funciona perfeitamente como eu queria.... Obrigadíssimo Durang e Carneirinho Abraços Chan stop();voltou = 0;intervalo = setInterval(girar, 65);function girar() {_root.preload.clock.clock1._rotation += 30;if (_root.preload.clock.clock1._rotation == 0) {_root.preload.clock.clock2._rotation += 30;if (_root.preload.clock.clock2._rotation == 0) {_root.preload.clock.clock3._rotation += 30;}}}function volta() {preload.clock.clock1.onEnterFrame = function() {if (int(this._rotation*1000)/1000 != 0) {this._rotation -= this._rotation*.5;} else {_root.voltou++;this.onEnterFrame = function() {null;};}};preload.clock.clock2.onEnterFrame = function() {if (int(this._rotation*1000)/1000 != 0) {this._rotation -= this._rotation*.5;} else {_root.voltou++;this.onEnterFrame = function() {null;};}};preload.clock.clock3.onEnterFrame = function() {if (int(this._rotation*1000)/1000 != 0) {this._rotation -= this._rotation*.5;} else {_root.voltou++;this.onEnterFrame = function() {null;};}};}onEnterFrame = function () {if (getBytesLoaded() == getBytesTotal()) {clearInterval(intervalo);if (!feito) {volta();feito = true;}if (voltou == 3) {nextFrame();}}}; Compartilhar este post Link para o post Compartilhar em outros sites