Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

xm2000

Controlando a timeline

Recommended Posts

Olá a todos!!!

 

Sou iniciante em AS e peguei este código no PONTO FLASH (meu grande salvador!!! rsrs).

 

Descrição:

Faz o filme rodar e dar "pausa" a cada "x" segundos onde seja colocado o código.

 

No primeiro frame:

_global.Countdown = function(segundos) {this.ale = function() {this.onFinishCountdown();clearInterval(this._id);};this._id = setInterval(this, "ale", segundos*1000);};
Onde haverá a pausa:

var contagem = new Countdown(5);contagem.onFinishCountdown = function() {gotoAndPlay("frame"); };

Ele funciona maravilhosamente bem, só que preciso modificá-lo para o meu filme, explico:

Tenho um filme que contém vários MCs e que são mostrados em fila no stage, vem o primeiro, fica no centro, depois de 5 segundos ele sai e vem o segundo e por ai vai, graças ao código acima. Só que preciso que se eu estiver com o mouse em cima do MC que está no centro do stage o código que faz eles rodarem (o código acima) pare e só volte a contar os segundos qd o mouse não estiver mais acima do MC, detalhe, devido ao conteúdo dos MCs eu não posso colocar um botão neles pois eles tem vários links, ou seja, preciso acrescentar no código acima uma função para qd o mouse estiver em cima do MC ele pare de executar e só continue qd o mouse sair de cima.

 

Espero poder contar com a ajuda de todos os participantes e agradeço desde já o apoio!!!

 

Um abraço!!!

 

Alexandre

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá a todos!!!

 

Sou iniciante em AS e peguei este código no PONTO FLASH (meu grande salvador!!! rsrs).

 

Descrição:

Faz o filme rodar e dar "pausa" a cada "x" segundos onde seja colocado o código.

 

No primeiro frame:

_global.Countdown = function(segundos) {

this.ale = function() {

this.onFinishCountdown();

clearInterval(this._id);

};

this._id = setInterval(this, "ale", segundos*1000);

};

 

Onde haverá a pausa:

var contagem = new Countdown(5);

contagem.onFinishCountdown = function() {

gotoAndPlay("frame");

};

 

Ele funciona maravilhosamente bem, só que preciso modificá-lo para o meu filme, explico:

Tenho um filme que contém vários MCs e que são mostrados em fila no stage, vem o primeiro, fica no centro, depois de 5 segundos ele sai e vem o segundo e por ai vai, graças ao código acima. Só que preciso que se eu estiver com o mouse em cima do MC que está no centro do stage o código que faz eles rodarem (o código acima) pare e só volte a contar os segundos qd o mouse não estiver mais acima do MC, detalhe, devido ao conteúdo dos MCs eu não posso colocar um botão neles pois eles tem vários links, ou seja, preciso acrescentar no código acima uma função para qd o mouse estiver em cima do MC ele pare de executar e só continue qd o mouse sair de cima.

 

Espero poder contar com a ajuda de todos os participantes e agradeço desde já o apoio!!!

 

Um abraço!!!

 

Alexandre

 

 

Ehjeh amigo, quebrei a cabeça aqui..srsr.. mas acho que achei uma solução.. na veradde uma gambiarra.. que aqui funiconou legal, coloque no seu primeiro frame:

 

ACTIONSCRIPT
var myMCs:Array = new Array(mc,mc2);

//função de pausa

_global.Countdown = function(segundos) {

 this.segundos = segundos;

 contagem.pausa = false;

 this.ale = function() {

  this.onFinishCountdown();

  clearInterval(this._id);

 };

 this.timeInicial = getTimer();

 this._id = setInterval(this, "ale", segundos*1000);

};

//listener do mouse

var listener:Object = new Object();

listener.onMouseMove = function() {

 emCima=false;;

 for(i=0;i<myMCs.length;i++){

  if (_root.drag.hitTest(myMCs[i])) {

   emCima=true;

   break;

  }

 }

 if (_root.drag.hitTest(_root.mc) || _root.drag.hitTest(_root.mc2)) {

  if (!contagem.pausa) {

   contagem.pausa = true;

   _root.diF = contagem.segundos-((getTimer()-contagem.timeInicial)/1000);

   clearInterval(contagem._id);

   trace(diF);

   trace("cleareing");

  }

 } else {

  if (contagem.pausa) {

   trace(_root.diF);

   var contagem = new Countdown(_root.diF);

   contagem.onFinishCountdown = function() {

    gotoAndPlay(_root._currentframe);

   };

   trace("voltando");

  }

 }

};

Mouse.addListener(listener);

//ações do drag *** gambiarra

drag.startDrag(true);

drag._visible = false;

 

Dae nos fames onde você quer a pausa, coloque:

ACTIONSCRIPT
var contagem = new Countdown(3);

contagem.onFinishCountdown = function() {

 gotoAndPlay(_root._currentframe);

 delete this;

};

stop();

 

IMPORTANTE

Disso você não pode esquecer de fazer, pq já que é uma gambiarra para não atrapalhar seus links dentro do mc:

crie um quadradinho bem pequeno, tipo uns 5x5 px no palco, transforme-o em movieClip e instancie como "drag".

E você tbm tem que colocar o nome das instancias de todos movieClips que rolam nas pausa,dentro do array:

var myMCs:Array = new Array(mc,mc2);

Que está na primeira parte do código. Ok?

Abs

Compartilhar este post


Link para o post
Compartilhar em outros sites

Weverton, primeiro quero lhe agradecer a boa vontade em ajudar!!!Fiz o que você pediu, porém não parou qd o mouse está sobre o filme, acredito que se você visse o fla você entenderia "a profundidade do orifício" (rsrs) pois este fla mostra 7 fotos em loop infinito, movendo pra frente ou para trás via botão, cada foto tem uma ação que mostra 3 campos de texto dinâmico com seus devidos links e isso é alimentado por XML, ou seja, ele já está um pouco complexo pra mim que não entende muito de AS, fiz tudo colhendo exemplos na net e modificando, posso te mandar este fla pra você dar uma olhada???Um abraço,Alexandre

Compartilhar este post


Link para o post
Compartilhar em outros sites

O fla pra analise: :unsure: Arquivo fla

Amigo, pus as animações na timeline,e instanciei os movieclips.. o seu deve estar bem mais estruturado.s.rSeguinte, teu fla ta em que versão? Eu uso o 8 aqui e não quis abrir.Abs

Compartilhar este post


Link para o post
Compartilhar em outros sites

Foi mal cara, to usando o 9 aqui... mudei pro 8, realmente este fla está com bastante coisa, o ideal era fazer ele todo em AS, conforme vi alguns exemplos na net, mas meus conhecimentos (ou a falta deles...) não me permitem chegar a este ponto, mas a minha "colcha de retalhos" está funcionando 99%, pra 100% só falta conseguir fazer toda a animação parar qd o mouse estiver por cima dela... se você puder dar uma olhada...

 

FLA versão 8

 

 

http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif Novamente agradeço a atenção!!! http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

 

Um abraço,

Alexandre

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.