请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

Director.js的run方法中backgroundSprite是怎么调用到Sprite.js的draw方法的?

正在回答

2回答

要有super方法呀,这样就可以啦,和JAVA一个道理

0 回复 有任何疑惑可以回复我~
  • 提问者 地球是猿的 #1
    emmmm   就是因为现在Director没有继承Sprite类也能调用到里面的draw()我才没搞明白
    回复 有任何疑惑可以回复我~ 2018-05-11 13:19:06
  • 提问者 地球是猿的 #2
    我应该懂了,是在main初始化时将Background对象put进了DataStore
    回复 有任何疑惑可以回复我~ 2018-05-11 14:05:55
Bass小骏 2018-06-11 14:41:39
this.dataStore = DataStore.getInstance();
const backgroundSprite = this.dataStore.get('background');

首先,this.dataStore 是 DataStore 的一个实例对象,而 DataStore 原型链上的 map,存储的是(key,Object),key就是对象名字(比如 'background'),而Object 是对象的实例 (比如 new Background() ),

而 DataStore 的get 方法,是通过 key,返回这个 Object,那么上面代码返回的是 Background 的实例

Background 又继承至 Sprite,那么自然可以调用 Sprite.js 中的 draw 方法了。

如果你是想问,为什么代码上方没有 import Sprite.js  ,那是因为 代码引入了 DataStore.js ,而 DataStore 作为一个数据仓库,他存放着各种类型的数据,比如这里面就有 Sprite 的实例对象,那么自然就无需再引用 Sprite.js 了

3 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号