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