const { ccclass, property } = cc._decorator; /** Authored references supplied by one independently loaded page bundle. */ @ccclass export default class CloudRisePage extends cc.Component { @property([cc.String]) nodeKeys: string[] = []; @property([cc.Node]) nodes: cc.Node[] = []; @property([cc.String]) componentKeys: string[] = []; @property([cc.Component]) components: cc.Component[] = []; @property([cc.String]) frameKeys: string[] = []; @property([cc.SpriteFrame]) frames: cc.SpriteFrame[] = []; bind(target: any): void { const assign = (keys: string[], values: any[]) => keys.forEach((key, i) => { const [field, index] = key.split(":"); if (index === undefined) target[field] = values[i]; else target[field][Number(index)] = values[i]; }); assign(this.nodeKeys, this.nodes); assign(this.componentKeys, this.components); assign(this.frameKeys, this.frames); } }