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