成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

構建Canvas動畫框架靈與肉的結合

開發 前端
之前寫過的一個動畫框架,并沒有把運動獨立出來。這樣造成的后果就是,每個動畫對象沒有自己的運動個性!如果我們批量創建一百個動畫對象,并且想讓它們每一個都擁有自己的運動屬性,將非常麻煩。

[[84440]]

今天一直在弄css3的立體效果,發現如果結合canvas和css3的3d,可以做出很多不可思議的效果來,大家可以發揮想象力!

接著上節講canvas動畫框架:

1.通用類的提取:動畫對象與幀對象

2.靈與肉的結合:便于拆卸的運動方程

3.進度條的實現:canvas的圖片預加載

4.demo測試:通過一個demo測試框架

這一節我們先來說說運動方程的疊加。

之前寫過的一個動畫框架,并沒有把運動獨立出來。這樣造成的后果就是,每個動畫對象沒有自己的運動個性!如果我們批量創建一百個動畫對象,并且想讓它們每一個都擁有自己的運動屬性,將非常麻煩。

所以,將運動與形式相分離,是***的解決方案。

上節構建canvas動畫框架通用類的提取提到過,我們為Aniele動畫對象創建了它自己的運動方程庫motionFncs。那么怎么操作這個運動方程庫呢?

  1.   //添加運動方法  
  2.      addMotionFnc:function (name,fnc) {  
  3.         this.motionFncs[name]=fnc;  
  4.     },  
  5.     //刪除運動方法  
  6.     deleMotionFnc:function(name){  
  7.         this.motionFncs[name]=null;  
  8.     },  
  9.     //遍歷運動方法庫里的所有運動方法  
  10.     countMotionFncs:function () {  
  11.         for (var i=0; i<this.motionFncs.length; i++) {  
  12.             if(this.motionFncs[i]==null)  
  13.                 continue;  
  14.             this.motionFncs[i].call(this);  
  15.         }  
  16.     }

上節已經介紹過,在Aniele動畫對象中,我們添加了以上運動方法。

其中countMotionFncs是非常重要的一個方法,通過它的核心語句:this.motionFncs[i].call(this),我們把運動方程的this指針更改為動畫對象,相當于把命令給了動畫對象,動畫對象就會乖乖地區執行一遍,比如我們定義了一個運動方程pass

  1. function pass(){  
  2.     thisthis.loca.x-=this.speed.x;  

我們定義一個小人的動畫對象:

  1. man=new Aniele(); 

那么我可以用這個方法把運動方程添加到man的運動方法庫里面:

  1. man.addMotionFnc(0,run); 

這樣,這個小man就擁有了一個運動屬性,只要我們在每一幀都執行一下這個運動方程,就可以實現man的運動了!

運動方程庫中我們可以添加多個運動方程,運動方程會疊加而不互相影響,方便我們寫出非常復雜的運動;并且在運動方程庫中,我們不僅可以制定運動對象坐標的改變規則(運動),還可以隨意改變運動對象的其他屬性,包括透明度,翻轉,縮放等等。

原文鏈接:http://www.cnblogs.com/shawn-xie/archive/2012/07/11/2586728.html

【編輯推薦】

  1. 構建canvas動畫框架通用類的提取
  2. HTML 5 Canvas組件繪制太極圖案
  3. 使用JavaScript和Canvas寫一個游戲框架
  4. 使用 HTML5 canvas 繪制精美的圖形
  5. HTML5 Canvas基礎教程
責任編輯:張偉 來源: shawn.xie的博客
相關推薦

2012-07-11 15:54:59

canvas

2012-07-13 13:52:54

Canvas

2024-06-04 08:23:19

2017-03-13 15:00:15

AndroidTransition 動畫框架

2025-05-13 02:01:00

Three.jsSprite粒子

2022-03-09 09:00:41

SwiftUI視圖生成器Swift

2022-03-23 14:57:48

canvasjavascript運動小球

2017-04-05 16:30:09

Node.jsFFmpeg Canvas

2014-12-19 15:42:33

DragonBones

2024-08-07 09:33:58

2023-12-12 13:42:00

微服務生態系統Spring

2015-10-08 08:48:44

HTML5canvas動畫

2016-01-20 10:11:56

華麗CanvasHTML5

2024-05-21 09:36:38

亞馬遜云科技數據基座Vanus

2010-08-26 15:36:30

DHCP路由

2024-01-19 16:35:00

模型動畫

2011-06-03 17:06:09

自動化測試

2022-06-08 12:10:56

canvasvue.js

2022-07-21 07:05:13

粒子動畫CSS

2011-11-25 13:14:16

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 91视频在线看 | 成人动漫视频网站 | 一区二区三区在线观看免费视频 | 欧美一级二级三级 | 国产成人一区二区三区 | 欧美国产一区二区 | 久久午夜精品福利一区二区 | 欧美日韩国产三级 | 91精品国产色综合久久不卡98口 | 中文视频在线 | 亚洲一区二区在线 | 久久精品亚洲精品国产欧美 | 国产99久久精品一区二区永久免费 | 国产精品www | 免费观看成人鲁鲁鲁鲁鲁视频 | 精品一区二区三区四区在线 | 亚洲成人精品国产 | 国户精品久久久久久久久久久不卡 | 国精产品一品二品国精在线观看 | 青青久久久 | 国产中文视频 | 天天操操| 日本三级电影在线观看视频 | 亚洲第一av| 国产丝袜一区二区三区免费视频 | 久久精品小视频 | 在线成人一区 | 天天弄天天操 | 欧美在线观看一区二区 | 欧美一区二区在线观看 | 精品美女久久久 | 日本人和亚洲人zjzjhd | 日日干日日 | 涩涩视频在线观看 | 国产精品日韩欧美一区二区 | 成人av观看 | 夜夜爽99久久国产综合精品女不卡 | 久久久亚洲 | 97伦理最新伦理 | 国产精品欧美一区二区三区不卡 | 91久久久久|