1、
目前
成都創(chuàng)新互聯(lián)已為上千余家的企業(yè)提供了網(wǎng)站建設(shè)、域名、網(wǎng)頁(yè)空間、
網(wǎng)站運(yùn)營(yíng)、企業(yè)網(wǎng)站設(shè)計(jì)、
岫巖網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長(zhǎng),共同發(fā)展。通過(guò)覆蓋public void update(Graphics
g)來(lái)消除閃爍!
在動(dòng)畫的實(shí)現(xiàn)中,經(jīng)常用到repaint()函數(shù)來(lái)重畫屏幕,實(shí)現(xiàn)動(dòng)畫的加載,其實(shí)在java中repaint()是通過(guò)兩個(gè)步驟來(lái)實(shí)現(xiàn)刷新功能的,首先它調(diào)用public
void update()來(lái)刷新屏幕,其次再調(diào)用paint(Graphcis
g)來(lái)重畫屏幕,這就容易造成閃爍,特別是一些需要重畫背景的程序,如果下一楨圖象可以完全覆蓋上一楨圖象的話,便可以重寫update函數(shù)如下來(lái)消除閃爍:
public void update(Graphics g){ paint(g)
}
同樣調(diào)用repaint()重畫屏幕?;蛘咧苯又貙懖徽{(diào)用repaint,而用
Graphics
g=getGraphics();
paint(g);來(lái)實(shí)現(xiàn)重畫屏幕。
2、
通過(guò)雙緩存消除閃爍?
為了防止屏幕重畫出現(xiàn)的閃爍,先創(chuàng)建一個(gè)屏外繪圖區(qū),重畫完畢,直接將成品再繪制到小程序屏幕上去。下面是站長(zhǎng)創(chuàng)建動(dòng)態(tài)廣告板時(shí)用到的雙緩存技術(shù)代碼:
offScreenImage=createImage(w,h);//創(chuàng)建屏外繪圖區(qū)
offScreen=offScreenImage.getGraphics();//取得繪圖環(huán)境
offScreen.setFont(new
Font("Serif",Font.PLAIN,14));
offScreen.drawString("You Are
Welcome!",4,getBounds().height/2);
}
else{
offScreen.setColor(bgClr);
offScreen.fillRect(0,0,w,h);
offScreen.setColor(fgClr);
for(int
i=j;i
offScreen.drawString(strs[i],0,y+=wordvspace);
}
y=y-16*wordvspace;
}
g.drawImage(offScreenImage,0,0,this);//繪制屏外成品到小程序中
[@more@]
網(wǎng)頁(yè)題目:java動(dòng)畫中消除閃爍的兩個(gè)絕招(轉(zhuǎn))-創(chuàng)新互聯(lián)
URL地址:
http://weahome.cn/article/cscjsd.html