Comunidad de diseño web y desarrollo en internet online

problemas con el vsync?

Citar            
MensajeEscrito el 25 Feb 2009 10:49 pm
Mirad este slideshow que he hecho, no se si sera solo en las pantallas que lo he probado, pero me da como un parpadeo clásico de los problemas de vsync de las pantallas.
Alugine tiene idea de como solucionarlo/mejorarlo?

He aqui el problema!

Gracias de antemano!

Por Anduril

10 de clabLevel



 

firefox
Citar            
MensajeEscrito el 26 Feb 2009 08:02 am
Intenta colocando los fps en 24. o podrias usar alguna clase para hacer la animacion como tweenlite por ejemplo.

Por LongeVie

Claber

1741 de clabLevel

1 tutorial

Genero:Masculino  

En un lugar, re moto.

firefox
Citar            
MensajeEscrito el 28 Feb 2009 10:05 am
provare con lo de los 24 fps, pero lo de la clase no se si serviria, porque no es realmente una animacion, solo incrementos de +x... al ser un crecimiento constante de una variable no se calculan interpolaciones... gracias por la sugerencia!!

Por Anduril

10 de clabLevel



 

firefox
Citar            
MensajeEscrito el 28 Feb 2009 10:23 am
En realidad esa distorcion puede deberse a que ejecutas demaciado rapido dicho incremento. usas setInterval?

Por LongeVie

Claber

1741 de clabLevel

1 tutorial

Genero:Masculino  

En un lugar, re moto.

firefox
Citar            
MensajeEscrito el 01 Mar 2009 09:00 pm
pues no, no uso setInterval, pero lo mirare ahora mismo, lo que si te puedo decir es que he probado con 12,20,24 fps y da los mismos problemas, quizas si que sea lo que tu dices, ya que el incremento lo hago por cada foto con "onClipEvent (enterFrame)"... crees que puede tener relacion?

gracias!

Por Anduril

10 de clabLevel



 

firefox
Citar            
MensajeEscrito el 01 Mar 2009 09:49 pm
hola de nuevo... he estado experimentando con setInterval, pero solo consigo resulatdos aceptables con intervalos por debajo de los 5ms, no se si eso podria saturar algunas maquinas... por lo que veo, los problemas de vsync son dificiles de solventar... muchas gracias por mostrarme esta funcion, la desconocia y creo que me puede ser muy útil en el futuro.

Si LongeVie o alguien puede darme alguna idea de como tratar con el problema del vsync, estaré muy agradecido!!

Sugerencias por favor!

Por cierto, estoy asumiendo que el código esta bien, pero quizas alguien me pueda decir alguna manera de afrontarlo que solucione mi problema, os lo copio aqui:

Código :

var separacio = 10;
var timer_done = false;
var amplada_peli = Stage.width*(-1);
var velocitat = 0.2;

foto1._visible = false;
foto2._visible = false;
foto3._visible = false;
foto4._visible = false;
var x = 500; //ms abans de començar la animacio

foto1._x = (_root._width/2);// x inicial
foto1._y = 200-(foto1._height/2);
foto2._x = (_root._width/2)+_root.foto1._width;// X inicial
foto2._y = 200-(foto2._height/2);
foto3._x = (_root._width/2)+_root.foto1._width+_root.foto2._width;// X inicial
foto3._y = 200-(foto3._height/2);
foto4._x = (_root._width/2)+_root.foto1._width+_root.foto2._width+_root.foto3._width;// X inicial
foto4._y = 200-(foto4._height/2);

function mostrar_fotos():Void {
   if (getTimer()>=x && !timer_done) {
      timer_done = true;
   }
   if (timer_done) {
      foto1._visible = true;
      foto2._visible = true;
      foto3._visible = true;
      foto4._visible = true;
      if (foto1._alpha<=100) {
         foto1._alpha = foto1._alpha+2;
      }
      foto1._x = foto1._x-velocitat;
      if ((foto1._x+foto1._width)<0) {
         foto1._x = foto4._x+foto4._width+separacio;//X de reaparicio
      }
      
      if (foto2._alpha<=100) {
         foto2._alpha = foto2._alpha+2;
      }
      if (foto1._x<foto2._x) {
         foto2._x = foto1._x+foto1._width+separacio;//X moviment
      } else {
         foto2._x -= _root.velocitat;
      }
      if ((foto2._x+foto2._width)<0) {
         foto2._x = _root.foto1._x+_root.foto1._width+_root.separacio;//X de reaparicio
      }
      
      if (foto3._alpha<=100) {
         foto3._alpha = foto3._alpha+2;
      }
      if (_root.foto2._x<foto3._x) {
         foto3._x = _root.foto2._x+_root.foto2._width+_root.separacio;//X moviment de seguiment
      } else {
         foto3._x -= _root.velocitat;
      }
      if ((foto3._x+foto3._width)<0) {
         foto3._x = _root.foto2._x+_root.foto2._width+_root.separacio;//X de reaparicio
      }
      
      if (foto4._alpha<=100) {
         foto4._alpha = foto4._alpha+2;
      }
      if (_root.foto3._x<foto4._x) {
         foto4._x = _root.foto3._x+_root.foto3._width+_root.separacio;//X moviment de seguiment
      } else {
         foto4._x -= _root.velocitat;
      }
      if ((foto4._x+foto4._width)<0) {
         foto4._x = _root.foto3._x+_root.foto3._width+_root.separacio;//X de reaparicio
      }
   } else {
      foto1._alpha = 0;
      foto2._alpha = 0;
      foto3._alpha = 0;
      foto4._alpha = 0;
   }
}
intervalID = setInterval(this, "mostrar_fotos", 2);

stop();


Ya se que es redundante en algunas partes, pero es para facilitarle la vida a mis clientes. No busco optimizar el código sino algun cambio que pueda solventar el vsync.

Gracias de nuevo!

Por Anduril

10 de clabLevel



 

firefox
Citar            
MensajeEscrito el 02 Mar 2009 08:33 pm

Por LongeVie

Claber

1741 de clabLevel

1 tutorial

Genero:Masculino  

En un lugar, re moto.

firefox
Citar            
MensajeEscrito el 02 Mar 2009 10:52 pm
Muy bueno tu tutorial!

Tal vez alguna de las funciones de easing me sean útiles. Pero creo que ni tu ni yo encontraremos nunca una solucion a los problemas vsync ^^

Muchisimas gracias por todo de todas formas!

Por Anduril

10 de clabLevel



 

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.