|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
恰恰证明了java的简单,要不怎么没有通过c/c++来搞个这种框架?
1、经由过程掩盖publicvoidupdate(Graphicsg)来打消闪灼!
在动画的完成中,常常用到repaint()函数来重画屏幕,完成动画的加载,实在在java中repaint()是经由过程两个步骤来完成革新功效的,起首它挪用publicvoidupdate()来革新屏幕,其次再挪用paint(Graphcisg)来重画屏幕,这就简单形成闪灼,出格是一些必要重画背景的程序,假如下一桢图像能够完整掩盖上一桢图像的话,即可以重写update函数以下来打消闪灼:
publicvoidupdate(Graphicsg){paint(g)}
一样挪用repaint()重画屏幕。大概间接重写不挪用repaint,而用
Graphicsg=getGraphics();
paint(g);来完成重画屏幕。
2、经由过程双缓存打消闪灼?
为了避免屏幕重画呈现的闪灼,先创立一个屏外画图区,重画终了,间接将制品再绘制到小程序屏幕上往。上面是站长创立静态告白板时用到的双缓存手艺代码:
offScreenImage=createImage(w,h);//创立屏外画图区
offScreen=offScreenImage.getGraphics();//获得画图情况
offScreen.setFont(newFont(Serif,Font.PLAIN,14));
offScreen.drawString(YouAreWelcome!,4,getBounds().height/2);
}
else{
offScreen.setColor(bgClr);
offScreen.fillRect(0,0,w,h);
offScreen.setColor(fgClr);
for(inti=j;i<j+16;i++){
offScreen.drawString(strs,0,y+=wordvspace);
}
y=y-16*wordvspace;
}
g.drawImage(offScreenImage,0,0,this);//绘制屏外制品到小程序中
最后我再次声明,我并没有说不看好java,实际上我对java很乐观的,毕竟她正在不断改进中,我相信她总有一天会和.net网页编程并驾齐驱的 |
|