青草久久影院-青草久久伊人-青草久久久-青草久久精品亚洲综合专区-SM双性精跪趴灌憋尿调教H-SM脚奴调教丨踩踏贱奴

17站長網(wǎng)

17站長網(wǎng) 首頁 編程教程 Html5教程 查看內(nèi)容

HTML5 Canvas 制作動(dòng)畫

在html5 canvas中繪制圖像動(dòng)畫效果,你需要繪制出每一幀的圖像,然后在一個(gè)極短的時(shí)間內(nèi)從一幀過渡到下一幀,形成動(dòng)畫效果。

示例

要在html5畫布上繪制動(dòng)畫,您需要在畫布上繪制和重新繪制動(dòng)畫的幀。您需要非常快地這樣做,以使許多圖像看起來像動(dòng)畫。
為使動(dòng)畫獲得最佳性能,requestAnimationFrame 在window對象上使用回調(diào)函數(shù)。您可以調(diào)用此函數(shù),并在瀏覽器準(zhǔn)備繪制動(dòng)畫的下一幀時(shí)將要調(diào)用的另一個(gè)函數(shù)作為參數(shù)傳遞。
當(dāng)瀏覽器準(zhǔn)備繪制下一幀時(shí),通過讓瀏覽器向應(yīng)用程序發(fā)出信號,瀏覽器可以為動(dòng)畫啟用硬件加速,并與瀏覽器中的其他重繪活動(dòng)協(xié)調(diào)幀重繪。與使用JavaScript中的setTimeout() 函數(shù)對動(dòng)畫幀的繪制進(jìn)行計(jì)時(shí)相比,總體體驗(yàn)應(yīng)該要好得多。
這是一個(gè)代碼示例:

function animate() {
    reqAnimFrame = (window.webkitRequestAnimationFrame ||
 window.mozRequestAnimationFrame ||
 window.oRequestAnimationFrame ||
 window.msRequestAnimationFrame ||
 function(callback) {
  var self = this, start, finish;
  return window.setTimeout(function() {
   start = +new Date();
   callback(start);
   finish = +new Date();
   self.timeout = 1000/60 - (finish - start);
  }, self.timeout);
 });
    reqAnimFrame(animate);
    draw();
}

animate()函數(shù)首先獲得對該requestAnimationFrame() 函數(shù)的引用。請注意,此函數(shù)在不同的瀏覽器中可能具有不同的名稱。將該變量 reqAnimFrame設(shè)置為所有這些不為null的可能函數(shù)。
其次,reqAnimFrame()調(diào)用函數(shù),將animate()函數(shù)作為參數(shù)傳遞。因此,當(dāng)瀏覽器準(zhǔn)備繪制下一幀時(shí),將animate()調(diào)用該函數(shù)。
第三,animate()函數(shù)調(diào)用draw()函數(shù)。draw() 上例中未顯示該功能。它應(yīng)該做的是,首先清除畫布(或需要清除的畫布數(shù)量),然后繪制動(dòng)畫的下一幀。
上例中未顯示的另一件事是,animate()應(yīng)調(diào)用一次函數(shù)以啟動(dòng)動(dòng)畫。如果沒有,requestAnimationFrame()則永遠(yuǎn)不會(huì)調(diào)用該函數(shù),并且永遠(yuǎn)不會(huì)開始動(dòng)畫循環(huán)。
這是一個(gè)在畫布上移動(dòng)單個(gè)矩形的動(dòng)畫示例:

<canvas id="ex1" width="500" height="170" style="border: 1px solid #cccccc;">
HTML5 Canvas not supported
</canvas>
<script>var x =  0;
var y = 15;
var speed = 5;
function animate() {
reqAnimFrame = (window.webkitRequestAnimationFrame ||
 window.mozRequestAnimationFrame ||
 window.oRequestAnimationFrame ||
 window.msRequestAnimationFrame ||
 function(callback) {
  var self = this, self.timeout);
 });
reqAnimFrame(animate);
x += speed;
if(x <= 0 || x >= 475){
speed = -speed;
}
draw();
}
function draw() {
var canvas  = document.getElementById("ex1");
var context = canvas.getContext("2d");
context.clearRect(0, 0, 500, 170);
context.fillStyle = "#ff00ff";
context.fillRect(x, y, 25, 25);
}
animate();
</script>
返回頂部
主站蜘蛛池模板: 九九热精品免费观看 | 男人舔女人的阴部黄色骚虎视频 | 久久欧洲AV无码精品色午夜麻豆 | 免费三级现频在线观看 | 日本中文字幕巨大的乳专区 | 国产1000部成人免费视频 | 女朋友的妈妈在线观看 | 免费看国产曰批40分钟 | 亚洲精品色婷婷在线蜜芽 | 大胆国模一区二区三区伊人 | 一一本之道高清视频在线观看中文字幕 | 99精品视频一区在线视频免费观看 | 成人特级毛片 | 男欢女爱免费视频 | 好吊妞国产欧美日韩视频 | 美国CERANETWORK超清 | 韩国g奶空姐 | 国产国拍亚洲精品永久软件 | 高H内射NP古文 | 久久成人午夜电影mp4 | 欧美日韩中文国产一区 | 美女不要啊 | 欧美精品一区二区蜜臀亚洲 | 国产亚洲精品视频在线网 | 一级做a爰片久久毛片苍井优 | 亚洲中文字幕欧美自拍一区 | 国产成人精品自线拍 | 亚洲日韩国产成网站在线 | 少妇精油按摩 | 色欲无码国产喷水AV精品 | 美艳人妻在厨房翘着屁股 | 91进入蜜桃臀在线播放 | 国产在线观看不卡 | 亚洲一区综合图区 | 午夜福利免费视频921000电影 | 亚洲精品视频免费看 | 粗好大用力好深快点漫画 | av亚洲2017色天堂 | 清晨紧湿爱运动h高h | 国产亚洲视频在线播放香蕉 | 色欲AV精品人妻一区二区麻豆 |