講師回答 / 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
講師回答 / ustbhuangyi
關于素材問題,圖片資源都在這里:https://github.com/ustbhuangyi/animation/tree/master/demo源碼在這里:https://github.com/ustbhuangyi/animation
2016-05-26
講師回答 / ustbhuangyi
同學看的很細,這里window[item.id]確實不是必須的,它的存在有一定歷史原因~當時開發這個庫的時候,還沒寫完整的清理邏輯的時候,為了便于在瀏覽器直接調試,通過window['__img_id']可以直接訪問到某個image對象。
2016-05-26