jueves, 3 de abril de 2014

Eliminación del parpadeo o flicker redefiniendo el método update()

El problema del flicker se localiza en la llamada al método updateQ. que borra todo pintando con el color de fondo y después llama a paintQ. Una fonna de resolver esta dificultad es re-definir el método updateQ. de fonna que se adapte mejor al problema que se trata de resolver. Una posibilidad es no re-pintar todo con el color de fondo, no llamar a paintQ e introducir en updateQ el código encargado de realizar los dibujos, cambiando sólo aquello que haya que cambiar. 
A pesar de esto, es necesario re-definir paintQ pues es el método que se llama de fonna automática cuando la ventana de Java es tapada por otra que luego se retira. Una posible solución es hacer que paintQ llame a updateQ, terminando por establecer un orden de llamadas opuesto al de defecto. Hay que tener en cuenta que. al no borrar todo pintando con el color de fondo, el programador tiene que preocuparse de borrar de forma selectiva entre frame y frame lo que sea necesario. Los métodos setClipQ y clipRectQ de la clase Graphics permiten hacer que las operaciones gráficas no surtan efecto fuera de un área rectangular previamente determinada. Al ser dependiente del tipo de gráficos concretos de que se trate, este método no siempre proporciona soluciones adecuadas.

No hay comentarios:

Publicar un comentario