脚本中properties里面定义的属性,怎么和场景关联?

脚本中properties里面定义的属性,和场景一个node绑定后,在运行时是怎么关联的?
每次标题无效??

properties: {
        txtVersion:cc.Label,
    }

例如定义一个文本属性,然后绑定场景里的文本,然后,this.txtVersion 这个是怎么映射到场景里的节点的?

不是问怎么拖动!!!
每次提出问题,标题都无效!!
是想请教,运行时,怎么绑定的

去看一下场景的.fire文件或者Prefab的.prefab文件就知道了,里面记录了各组件引用的节点和组件的id或者资源的uuid。引擎初始化你的节点和组件的时候根据这些信息去帮你把对应的cc.Label赋值到this.txtVersion上。

每个Node在节点树里面都有编号,绑定就是把编号填在那个变量下,运行时根据那个编号就可以找到那个节点了,(运行时会序列化那个组件,序列化时就将那个节点对象设置给那个变量了),希望回答到你的问题。

1赞

加载场景,大概是这样

cc.director.loadScene
self._loadSceneByUuid
cc.AssetLibrary.loadAsset(uuid, function (error, sceneAsset))
Loader.load(item, function (error, asset) {})
最后创建了一个queue,LoadingItems.create,这里是异步的,所以后面找不到了

具体初始化节点和组件是在哪里啊?

回复了上一个朋友,也请你看看

你想实现什么?
在你这个组件的类外面加上这段代码:

// NewClass换成你的类名
Object.defineProperty(NewClass.prototype, "txtVersion", {
    get() {
        console.trace();
        return this._txtVersion;
    },
    set(v) {
        if (v !== null) {
            console.trace();
        }
        this._txtVersion = v;
    }
});

就能看到完整的加载过程了。

他是分好几个pipe来处理资源的,大体就是把本地的json文件,序列化为节点树,你看下源码https://github.com/cocos-creator/engine/blob/96bda88193f046d4669a2fb38a5ad968c5d6a9df/cocos2d/core/load-pipeline/loader.js这个文件的loadUuid函数。