Director.js的run方法中backgroundSprite是怎么调用到Sprite.js的draw方法的?
来源:4-4 资源管理器的封装
地球是猿的
2018-05-10
Director没有调用Sprite呀
写回答
2回答
-
要有super方法呀,这样就可以啦,和JAVA一个道理
022018-05-11 -
Bass小骏
2018-06-11
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 了
30
相似问题
小鸟的渲染问题?
回答 1
怎么下面有一条黑色的?
回答 2