这段代码是同事帮我写的,觉得写得很好,对JS初学的我来说,很有帮助,所以贴出来,大家一起学习。
function StrokeDrawer(orginalDatas) {
var _strokeDatas = orginalDatas;
var _currIndex = 0;
var _callback;
function _draw(){
if(_currIndex < _strokeDatas.length) {
var data = getStrokeData(_currIndex++);//prepare data
setTimeout(function(){
_doDraw(data);//真正画点
_draw(); //call next draw
},1);
}else{
// draw complete
if(_callback) {
_callback();
}
}
}
function getStrokeData(index){
return _strokeDatas[index];
}
function _doDraw(data){
// canvas draw
console.log("往画布上画点", data);
}
this.beginDraw = function(callback){
_callback = callback;
_draw();
}
}
var orginalDatas = ["横","竖","撇","捺"];
var drawer = new StrokeDrawer(orginalDatas);
drawer.beginDraw(function(){
console.log("我画完了");
});