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!