更新時(shí)間:2016年11月22日16時(shí)08分 來源:傳智播客web前端開發(fā)學(xué)院 瀏覽次數(shù):
1、使用drawRunner()函數(shù)把跑步者給繪制出來
分析:其實(shí)drawRunner函數(shù)中主要是將三個(gè)參數(shù)(一個(gè)圖像、左側(cè)坐標(biāo)和頂部坐標(biāo))向drawImage()傳遞,其中頂部坐標(biāo)由跑步者所駐留的平臺決定,而左側(cè)坐標(biāo)則是一個(gè)常數(shù)。
2、通過drawBackground()背景函數(shù)繪制背景,drawPlatforms()函數(shù)繪制平臺
分析:drawBackground() 函數(shù)在畫布的 (0,0)
繪制背景圖像。稍后,我會在本文中修改該函數(shù),以便滾動背景。而繪制平臺(它們不是圖像)需要更廣泛地使用 Canvas API。多用途的 drawImage() 方法您可以使用 Canvas 2D 上下文的 drawImage() 方法在畫布內(nèi)的任何地方繪制一個(gè)完整的圖像,或圖像內(nèi)的任何矩形區(qū)域,有選擇地沿著路線縮放圖像。除了圖像外,您還可以利用 drawImage() 繪制另一個(gè)畫布或一個(gè) video 元素當(dāng)前幀的內(nèi)容。這只是其中一個(gè)方法,但 drawImage() 還有助于便利地實(shí)現(xiàn)有趣的或者難以實(shí)現(xiàn)的應(yīng)用程序(如視頻編輯軟件)。
其中的 JavaScript 定義一個(gè)名稱為 platformData 的數(shù)組。該數(shù)組中的每個(gè)對象代表著描述一個(gè)獨(dú)立平臺的元數(shù)據(jù)。drawPlatforms() 函數(shù)使用 Canvas 上下文的 strokeRect() 和 fillRect() 方法來繪制平臺矩形。這些矩形的特征存儲在 platformData 數(shù)組內(nèi)的對象中,用于設(shè)置上下文的填充風(fēng)格和 globalAlpha 屬性,該屬性設(shè)置您之后在畫布上繪制的任何圖形的不透明度。調(diào)用 context.translate() 將畫布的坐標(biāo)系(如圖 2 所示)在水平方向平移指定數(shù)量的像素。該平移和屬性設(shè)置是臨時(shí)的,因?yàn)檫@些操作是在 context.save() 和 context.restore() 調(diào)用之間執(zhí)行的。
3、使用setInterval()和requestAnimationFrame()對動畫的實(shí)現(xiàn)
分析:從許多方面來看,HTML5 是程序員的烏托邦。沒有專用的 API,開發(fā)人員使用 HTML5 在無處不在的瀏覽器中實(shí)現(xiàn)跨平臺運(yùn)行的應(yīng)用程序。規(guī)范發(fā)展迅速,不斷采用新技術(shù),同時(shí)改進(jìn)現(xiàn)有的功能。
Polyfill:面向未來的編程過去,大多數(shù)跨平臺軟件都在最低的共同點(diǎn)實(shí)現(xiàn)。Polyfill 徹底顛覆了這一概念,它讓您能夠訪問高級特性(如果它們可用),并在必要時(shí)回退到一個(gè)能力較低的實(shí)現(xiàn)。
然而,新技術(shù)要實(shí)行規(guī)范,往往是通過特定瀏覽器現(xiàn)有的功能來實(shí)現(xiàn)的。瀏覽器廠商通常為這樣的功能添加了前綴,使它們不會干擾其他瀏覽器的實(shí)現(xiàn);例如,requestAnimationFrame() 最初被 Mozilla 實(shí)現(xiàn)為 mozRequestAnimationFrame()。然后 WebKit 實(shí)現(xiàn)了它,將其函數(shù)命名為 webkitRequestAnimationFrame()。最后,W3C 將它標(biāo)準(zhǔn)化為 requestAnimationFrame()。
供應(yīng)商提供了對前綴實(shí)現(xiàn)以及標(biāo)準(zhǔn)實(shí)現(xiàn)的不同支持,這使得新功能的使用變得非常棘手,所以 HTML5 社區(qū)發(fā)明了一種被稱為 polyfill 的東西。Polyfill 針對特定功性確定瀏覽器的支持級別,如果瀏覽器已經(jīng)實(shí)現(xiàn)了該功能,您就可以直接訪問它,否則,瀏覽器會向您提供一個(gè)暫時(shí)盡量模仿標(biāo)準(zhǔn)功能的實(shí)現(xiàn)。Polyfill 易于使用,但實(shí)現(xiàn)起來可能比較復(fù)雜。清單 6 演示了 requestAnimationFrame() 的一個(gè) polyfill 的實(shí)現(xiàn):
本文版權(quán)歸傳智播客web前端開發(fā)學(xué)院所有,歡迎轉(zhuǎn)載,轉(zhuǎn)載請注明作者出處,謝謝!
作者:傳智播客web前端培訓(xùn)學(xué)院;
首發(fā):http://m.metathetuscanyresort.com/web/
Web前端開發(fā)培訓(xùn)之高效的前端編程入門訓(xùn)練方法
2016-11-17黑馬程序員前端與移動開發(fā)學(xué)院2.0課程震撼來襲!
2016-11-03web前端開發(fā)培訓(xùn)之如何成為一名優(yōu)秀的前端工程師
2016-10-13web前端開發(fā)培訓(xùn)之從零基礎(chǔ)到精通的前端學(xué)習(xí)路線
2016-10-13web前端開發(fā)培訓(xùn)之為什么整個(gè)互聯(lián)網(wǎng)行業(yè)都缺前端工程師?
2016-10-13web前端開發(fā)培訓(xùn)之流行的CSS思想之——淺析OOCSS
2016-10-13北京校區(qū)