CanTK是一套基于HTML5 Canvas的GUI系統(tǒng),它提供了完整的控件庫,事件分發(fā)系統(tǒng),窗口管理系統(tǒng)和不同的平臺(tái)的適配。CanTK是為解決HTML5 App開發(fā)的兩個(gè)基本難題而生的:
開發(fā)真正Native體驗(yàn)的APP
HTML的基因是文檔,它的長處是呈現(xiàn)內(nèi)容,而不是與用戶交互,所以不管怎么努力,都很難開發(fā)出與Native媲美的應(yīng)用。即使拿目前最優(yōu)秀的HTML5 Mobile Framework(如Sencha touch和KendoUI)開發(fā)出來的App來看: 與網(wǎng)頁相比,它們確實(shí)像APP,但是與真正的APP相比,它們又更像網(wǎng)頁。這就是目前HTML5 APP最尷尬的地方。
HTML難以勝任APP開發(fā)的主要原因有:
HTML的基因是文檔,文檔內(nèi)容微小的改變都會(huì)導(dǎo)致界面重排,而用戶操作過程有反饋是現(xiàn)代APP最基本的要求,這些反饋都導(dǎo)致界面需要不斷重排,消耗大量的CPU時(shí)間,所以HTML APP有了性能不佳的名聲。
HTML本身并沒有窗口管理機(jī)制,通常都是通過加載不同的頁面來模擬不同的窗口。由于頁面加載本身需要時(shí)間,HTML5 APP界面切換時(shí)通常都要啟用等待動(dòng)畫,這也極大的影響了用戶體驗(yàn)。
HTML控件本身的局限讓模擬Native效果變得非常困難,HTML只提供了最基本的控件,雖然可以通過CSS來模擬一些控件,但是和原生GUI庫相比那就差得太遠(yuǎn)了。
HTML5用來開發(fā)APP本身也是很困難的。很多外行都會(huì)說HTML不是很簡單嗎? HTML是很簡單!但是用它開發(fā)APP卻是很難的,否則Sencha touch這些庫就不可能賣這么貴了。
上面有些原因可以通過工具或庫來解決,有些原因則完全無法解決的。HTML5的出現(xiàn)確實(shí)為HTML APP帶來了轉(zhuǎn)機(jī),因?yàn)镠TML5 Canvas元素為開發(fā)者帶來了巨大的靈活性,但是大部分廠商都是在CSS上是動(dòng)腦子,所以幾年之后HTML5 APP仍然不死不活。
CanTK則是完全放棄CSS和HTML控件,在HTML5 Canvas元素上實(shí)現(xiàn)的一套完整的GUI系統(tǒng)。雖然CanTK不是第一個(gè)在Canvas上做控件的,但是CanTK卻是目前唯一一個(gè)完整的GUI系統(tǒng)。
為HTML5游戲引擎提供UI支持
任何一個(gè)游戲玩家都知道,游戲場景是只是游戲的一部分,稍微的復(fù)雜一點(diǎn)的游戲都有其它界面,比如設(shè)置,裝備和商店等等。仔細(xì)觀察這些界面, 我們會(huì)發(fā)現(xiàn)它們除了皮膚外,與普通APP的界面沒有太大不同。HTML5游戲引擎都是基于HTML5 Canvas實(shí)現(xiàn)的,它們的優(yōu)勢是挖掘硬件圖形渲染潛力(拼的就是速度),而GUI控件方面幾乎都很弱。HTML控件表現(xiàn)力不佳,而且很難與HTML5 Canvas無縫集成,這讓HTML5游戲開發(fā)者不得不花大量時(shí)間去做游戲界面。
CanTK解放了HTML5游戲開發(fā)者在UI的工作,讓他們專注于游戲本身的開發(fā)。CanTK為目前流行的HTML5游戲引擎做了適配,其中包括cocos2d-html5, egret, pixi.js, panda.js和phaser.js,以后還會(huì)增加其它游戲引擎的支持。
CanTK的特色:
完全開放源碼給公司和個(gè)人免費(fèi)使用(Under LGPL 2.0)。
完整的GUI系統(tǒng)滿足APP開發(fā)的需要。
開發(fā)真正的Native-Like的應(yīng)用程序。
比傳統(tǒng)HTML5 APP更好的性能和體驗(yàn)。
無縫集成到HTML5各種游戲引擎。
超強(qiáng)擴(kuò)展性,可以實(shí)現(xiàn)任何你想要的控件。
提供可視化開發(fā)工具,在線開發(fā)HTML5 APP和游戲。
根據(jù)Layout參數(shù)自動(dòng)適配不同分辨率和密度的屏幕。
用JSON取代HTML和CSS,全部界面數(shù)據(jù)放到一個(gè)壓縮的JSON文件,一次加載全部界面(數(shù)據(jù)很少,30個(gè)窗口小于40K),界面切換瞬間完成。
支持各種Mobile平臺(tái),測試過的平臺(tái)包括iOS, android, windows phone, firefox, blackberry和tizen。
在線演示:
基本控件:http://gamebuilder.duapp.com/apprun.php?appid=511409555747143
連連看:https://jsgames.sinaapp.com/animal-link/
拼圖游戲:https://jsgames.sinaapp.com/puzzle-1/