实现弹框管理 基类和子类 (基类、子类都要实现实例化各种的预设) 怎么使用重写基类close方法实现 销毁基类和子类的对象

//基类 MsgMask
cc.Class({
extends:cc.Component,
properties: {

},

close:function()
{ 
    cc.log('MsgMask - close() : name : %s ',this.name);      
    this.destroy();  
},

onLoad: function () {
    cc.log('MsgMask - onLoad() : name : %s ',this.name);  
    var self = this;        
    cc.loader.loadRes('prefabs/public/msgMask',function(err,prefab){ 
        self.maskPanel = cc.instantiate(prefab); 
        self.node.removeFromParent(false); 
        cc.director.getScene().addChild( self.maskPanel );    
        self.maskPanel.addChild( self.node ); 
        self.maskPanel.on(cc.Node.EventType.TOUCH_START,self.close);
    });  
},  

});

//子类
var MsgMask = require(’./…/MsgMask’);
var MsgSet = cc.Class({
extends:MsgMask,
onLoad:function() {
cc.log('MsgSet - onLoad() : name : %s ',this.name);
this._super();
this.node.on(cc.Node.EventType.TOUCH_START, this.close );
},
close:function(){
this._super();
var self = this;
cc.log('MsgSet - close() : name : %s ',this.name);
self.destroy();
self.removeFromParent( true );
},
});

//创建弹框
MsgSet.Create = function()
{
cc.loader.loadRes(‘prefabs/msg/MsgSet’,function( err,prefab ){
var maskNode = cc.instantiate(prefab);
cc.director.getScene().addChild( maskNode ,orderEnum.MSG + 3000);
});
};

我的目的是子类继承基类 基类所实例化的对象(self.maskPanel = cc.instantiate(prefab); )添加到场景上 子类实例化的对象( var maskNode = cc.instantiate(prefab); ) 则添加到maskPanel 上 1、maskPanel 淡入淡出时子类对象也会跟着一起淡入淡出 2、 销毁基类maskPane 时 子类的对象也会跟着一起销毁 3、销毁子类时 不销毁基类
我上面的代码无法实现这个需求 求指导

close中是不是应该写 this.node.destroy()?? this.destroy()中的this标示当前组件对象,不是当前你想销毁的节点对象吧?

不是 这个问题 我输出的日志 子类触发基类的close方法的this依然是子类的 还不知道什么问题 可能我的这写法有问题

你的需求用父子关系去实现就可以了。maskNode 作为 maskPanel 的子节点。例如
var maskNode = cc.instantiate(prefab);
maskNode.parent = self.maskPanel;

恩 节点间的父子关系 我理解 但是我现在是想 基类 实例化自己的对象var maskPanel = cc.instantiate(prefab); 子类实例化子类对象var childNode= cc.instantiate(prefab); 但是我想提供的外部提供的是先实例化childNode对象 但是按照脚本的规则是必须添加到场景才能开启组件的生命周期 这样基类才能被执行 这样怎么实现 基类maskPanel节点挂在场景 子类childNode挂在maskPanel上 或者有其他的实现方式 我的目的是其他弹框类只要继承了maskPanel 弹框的父节点是maskPanel即可

我回去想了下 因为组件的生命周期 无法实现我那个需求

我看不懂你在说啥…… 太绕了