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

来源:4-4 资源管理器的封装

地球是猿的

2018-05-10

 Director没有调用Sprite呀

写回答

2回答

傅猿猿

2018-05-11

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

0
2
地球是猿的
我应该懂了,是在main初始化时将Background对象put进了DataStore
2018-05-11
共2条回复

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 了

3
0

微信小游戏入门与实战,一天之内搞定微信小游戏开发

官方同步,第一时间掌握整套微信小游戏开发核心技术

3515 学习 · 664 问题

查看课程