已采纳回答 / 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
已采纳回答 / ustbhuangyi
同学你好,你要理解图片的加载是一个异步过程,而js是单线程执行,这是一个同步过程,也就是说假设4个图片,遍历数组的时候会执行count++,最后记到4,然后当图片加载完毕的时候才会执行done函数,然后做count--,当count为0的时候表示所有的图片加载完毕
2016-06-16
已采纳回答 / ustbhuangyi
同学你好,window[item.id]不是必须的,这里回答过了http://www.imooc.com/qadetail/142112doLoad这个函数从命名上看就是去加载图片,因此图片对象的初始化放在函数外定义似乎更合理喔~
2016-06-12