[]如何在游戏入口处获取对象的子对象

在游戏入口实例化玩一个加载TiledMap地图的类(loadMap)后,想通过该对象获取到被加载地图的一个MapLayer层。也就是说,加载TiledMap和获取该地图的MapLayer(某一层)都放到一个类里面,只要通过实例化的对象就能直接调用MapLayer.具体怎么实现呢。获取地图层一定要在_proto.mapLoaaded里面吗?
/*
* name;
*/
var TiledMap = Laya.TiledMap;
var Rectangle = Laya.Rectangle;
var Handler = Laya.Handler;
var Sprite = Laya.Sprite;
var MapLayer = Laya.MapLayer;
var loadMap = (function (_super) {
function loadMap() {
loadMap.super(this);
}
Laya.class(loadMap,"loadMap",_super);
var _proto = loadMap.prototype;
_proto.init = function() {
this.num = "";
this.map = new TiledMap();
}
_proto.showMap = function(num) {
this.num = num;
this.map.createMap("map/level/mota_map" + num + ".json",new Rectangle(0,0,448,448),Handler.create(this,this.mapLoaded));}

_proto.mapLoaded = function(){
this.pass = this.map.getLayerByIndex(0);//获取通行层
console.log(this.pass);
}
_proto.getLayer = function() {
this.floor = this.map.getLayerByIndex(0);//获取通行层
console.log(this.pass);
}
console.log(this.map)
return loadMap;
})(Sprite);
**游戏主入口**
var Main = (function (){
(function Main(){
Laya.init(448,448);
var map1 = new loadMap();
map1.init();
map1.showMap("3");
map1.getLayer();
console.log(map1.num);
console.log(map1);
console.log(map1.pass);
console.log(map1.getLayer);
})();
return Main;
})();

290571359.png

 
 
 
已邀请:

cuixueying

赞同来自:

是的,获取tiledMap数据必须在tiledMap加载完成之后,你以上的获取方式出问题了吗,可以提供下你的例子我们查下!

要回复问题请先

商务合作
商务合作