跳到主要内容

CreateJS中调用动画里一个让人头疼的问题

2 分钟阅读

经历

有时候你可能发现在你使用函数生成元件布置到舞台后,元件的动画错位了,并且只会运行第一帧或第二帧,无论你如何修改函数,他仍然无济于事,后来当你将布置动画函数延迟一秒执行后就可以正常运行,错误原理估计是代码为同步执行,但结果为异步,生成在前动画布置在后,可是生成函数在执行后会在后台部署生成元件的数据,可是在生成指令后面就是布置动画的指令,动画指令发出后因为这时候元件生成动画代码还没彻底部署完成,于是就出现了没有找到相关动画资源,也就出现了舞台上的元件动画加载失败,如果延迟一秒执行动画,这时间完全足够全部动画的部署,这时候再调用动画就不会出现加载问题,当然这样写肯定不行,因为为了等待几毫秒的时间差而让组件延后生成1秒是非常浪费加载时间的一种行为,最好的做法应该是加上callback调用只用组件彻底加载完成后才调用动画生成的函数。

这可真是一个令人抓狂的BUG,这究竟是要怪代码运行太快还是元件生成太慢。

这也反映了CreateJS里的PreloadJS的重要性,一定要等元件彻底部署完成后再调用动画,不然真的就是写码不规范,改码泪两行了。

评论
0条评论

添加新评论

昵称
邮箱
网址