cocos creator 动态创建TiledMap无法获取地图属性?求解

使用cocos creator 动态的创建TiledMap地图。运行结果地图正常显示在页面中,但是获取不到getObjectGroups()信息,提示为空,其他地图相关属性也无法获取。请帮忙解决!!谢谢

// 创建【节点】
var mapNode = new cc.Node(“level_map”);
// 添加【地图】组件
mapNode.addComponent(cc.TiledMap);
var mapTiled = mapNode.getComponent(cc.TiledMap);
// 获取【地图Url地址】
var url = “textures/GamePlay/Theme/Theme” + this.ThemeID + “/BG” + this.level + “/Level” + this.level;
// 载入【地图】
cc.loader.loadRes(url, cc.TiledMapAsset, function(err, map) {
if (err) {
cc.error(err)
} else {
// 为【地图】组件增加资源
mapTiled.tmxAsset = map;
}
});
// 把【地图】添加在Main节点中
cc.find(“Canvas/Main”).addChild(mapNode);
// 输出【地图】中的Object对象
cc.log(mapTiled.getObjectGroups());

你应该放到 loadRes 的回调的 mapTiled.tmxAsset = map; 后面吧

// 创建【节点】
var mapNode = new cc.Node("level_map");
// 添加【地图】组件
var mapTiled = mapNode.addComponent(cc.TiledMap);
// 把【地图】添加在Main节点中
cc.find("Canvas/Main").addChild(mapNode);
// 获取【地图Url地址】
var url = "textures/GamePlay/Theme/Theme" + this.ThemeID + "/BG" + this.level + "/Level" + this.level;
// 载入【地图】
cc.loader.loadRes(url, cc.TiledMapAsset, function(err, map) {
    if (err) {
        cc.error(err)
    } else {
        // 为【地图】组件增加资源
        mapTiled.tmxAsset = map;
        // 输出【地图】中的Object对象
        cc.log(mapTiled.getObjectGroups());
    }
});

麻烦再问一个问题,我已将知道怎么获取TiledMap的对象恋,但是我现在要在其他函数中调用TiledMap的对象。问题来了。就是获取不到,因为这个TiledMap的属性方法只在loadRes回掉里有效。

在 loadRes 代码段后边进行赋值

var self=this;
self.tiledMap=null;

cc.loader.loadRes(url, cc.TiledMapAsset, function(err, map) {
if (err) {
cc.error(err)
} else {
// 为【地图】组件增加资源
mapTiled.tmxAsset = map;
self.tiledMap=map;//获取这个脚本,然后获取 tiledMap属性

    // 输出【地图】中的Object对象
    cc.log(mapTiled.getObjectGroups());
}

});

如果你要获取的话,最好是延迟一段时间,因为动态加载会有延时,没有加载完就获取,就会报null,
还有一种方式是 你在赋值的位置调用需要获取地图属性的方法,传递参数

麻烦问一下,这个延迟是指用delay()么?

mark!