最近在看 3.5 里面关于扩展 inspector 的文档:
https://docs.cocos.com/creator/manual/zh/editor/extension/inspector.html
这里有个问题想请教下,我照着文档自己创建了一个组件:
@ccclass('CustomComponent')
export class CustomComponent extends Component {
@property(SpriteFrame)
sprite: SpriteFrame = null;
}
然后给他绑了个 inspector 脚本:
export function ready(this: Selector<typeof $> & typeof methods) {
this.elements = {
sprite: {
update: (element: any, dump: any) => {
},
create(dump: any) {
const prop = document.createElement('ui-prop');
prop.dump = dump;
const label = document.createElement('ui-label');
label.setAttribute('slot', 'label');
setLabel(label, dump);
const content = document.createElement('ui-component');
content.setAttribute('slot', 'content');
content.setAttribute('droppable', 'cc.SpriteFrame');
prop.appendChild(label);
prop.appendChild(content);
prop.addEventListener('confirm', async (event) => {
// prop.dump ???
// dispatch('change-dump'); ??
});
return prop;
}
}
};
}
我这里参照文档写写了一部分,实际运行效果没有问题,组件可以出现,并且只接受 SpriteFrame 类型组件的拖放。
但是问题是,当我把组件拖上去后, confirm 消息会触发,可是我实在不清楚,这个部分应该怎么写,才能把拖放上来的组件给保存下来。
文档里子给的是一个比较简单的 string 的例子,那个我看懂了,可是这个实在不清楚。
希望有大佬可以指点一下,多谢了。