已采納回答 / ustbhuangyi
這個(gè)項(xiàng)目比較老,圖片是UI提供好的,是手動(dòng)量的。一般做游戲會(huì)用texturepacker,可以自動(dòng)導(dǎo)入單張圖片生成合圖,并且生成描述坐標(biāo)位置的文件。
2016-07-20
已采納回答 / ustbhuangyi
關(guān)于webpack的學(xué)習(xí),建議看官方文檔。library和libraryTraget的配置,可以看這里http://webpack.github.io/docs/library-and-externals.html其中l(wèi)ibrary是設(shè)置你這個(gè)庫(kù)的名稱,比如設(shè)置animation。libraryTarget是導(dǎo)出方式,umd方式是支持CMD,AMD和全局window的訪問(wèn)方式。生成后的效果,可以在build/animation.js里看到:<...圖片...>
2016-07-14
已采納回答 / ustbhuangyi
webpack是構(gòu)建工具,它的作用是把源碼編譯成運(yùn)行時(shí)的代碼。src目錄下的是源碼,源碼就是工程師維護(hù)用的,它需要對(duì)工程師友好,所以我們拆分了模塊,用了require這種CommonJS的方式的去編寫代碼,一切都是為了代碼的維護(hù)性,復(fù)用性。webpack編譯后的代碼,是最終運(yùn)行在瀏覽器環(huán)境的,它是運(yùn)行時(shí)代碼,可能是經(jīng)過(guò)合并壓縮的,對(duì)工程師并不友好,不過(guò)這并不要緊,因?yàn)槲覀儾恍枰ゾS護(hù)它。因此,如果我們編譯后的代碼在運(yùn)行時(shí)報(bào)錯(cuò),我們要做的是從源碼中找到問(wèn)題,修改源碼重新編譯即可。
2016-07-09
已采納回答 / ustbhuangyi
webpack是目前最火的構(gòu)建工具,他比grunt和gulp更強(qiáng)大,更多介紹可以看官網(wǎng)https://webpack.github.io/webpack有server插件,它實(shí)際上就是用Node.js創(chuàng)建了一個(gè)server。如果用nodejs,可以用express搭建一個(gè)簡(jiǎn)單的node server還有一個(gè)更方便的可以用python,命令行輸入 python -m SimpleHTTPServer 8080 啟動(dòng)一個(gè)小型server
2016-07-09
已采納回答 / ustbhuangyi
onenterframe方法是Timeline類的一個(gè)抽象方法,由它的實(shí)例負(fù)責(zé)實(shí)現(xiàn)。注意看 2-6小節(jié) 2分50秒,onenterframe指向enterFrame方法。
2016-07-09
已采納回答 / ustbhuangyi
首先,要理解JS是單線程的。也就是說(shuō),在一次Event Loop中,會(huì)同步執(zhí)行完所有JS代碼。同步任務(wù)是在一次Event Loop中執(zhí)行的JS代碼,去完成相應(yīng)的“任務(wù)”。異步任務(wù)不是一次Event Loop可以做完的,通常JS有幾種方式實(shí)現(xiàn)異步,如異步ajax請(qǐng)求,setTimeout,requestAnimationFrame等。動(dòng)畫庫(kù)這個(gè)案例中,我們引入了“任務(wù)鏈”這個(gè)概念,把一些同步異步的“任務(wù)”添加到任務(wù)鏈上。所有通過(guò)timeline創(chuàng)建的動(dòng)畫都是異步任務(wù),因?yàn)樗讓佑玫搅藃equestAnima...
2016-07-08
講師回答 / ustbhuangyi
其實(shí)這個(gè)幀動(dòng)畫庫(kù)我在百度工作的時(shí)候,從一個(gè)實(shí)際項(xiàng)目需求里抽象出來(lái)的。因?yàn)槲覀冇写罅繋瑒?dòng)畫的需求,但又不想為每個(gè)需求去編寫那些重復(fù)的代碼,所以就想抽象一個(gè)通用的幀動(dòng)畫庫(kù),方便開(kāi)發(fā)。當(dāng)時(shí)設(shè)計(jì)接口的時(shí)候一個(gè)很重要的原則,就是怎么讓人用起來(lái)爽,就定了鏈?zhǔn)秸{(diào)用這種方式。后來(lái)也發(fā)現(xiàn)這種設(shè)計(jì)和promise的一些設(shè)計(jì)思想不謀而合。一開(kāi)始設(shè)計(jì)的時(shí)候就考慮到大部分接口了,比如loadImage,changePosition,changeSrc,then,repeat,repeatForever,enterFrame,sta...
2016-07-05
講師回答 / ustbhuangyi
首先,要理解JS的執(zhí)行是單線程的,在一輪Event Loop的時(shí)候,會(huì)執(zhí)行所有同步JS代碼。setInterval的運(yùn)行機(jī)制是,將指定的代碼移出本次執(zhí)行,等到下一輪Event Loop時(shí),再檢查是否到了指定時(shí)間。如果到了,就執(zhí)行對(duì)應(yīng)的代碼;如果不到,就等到再下一輪Event Loop時(shí)重新判斷。這意味著,setTimeout指定的代碼,必須等到本次執(zhí)行的所有代碼都執(zhí)行完,才會(huì)執(zhí)行。每一輪Event Loop時(shí),都會(huì)將“任務(wù)隊(duì)列”中需要執(zhí)行的任務(wù),一次執(zhí)行完。setTimeout和setInterval都是...
2016-07-04