Quantcast
Channel: Cocos中文社区 - 最新主题
Viewing all articles
Browse latest Browse all 88737

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

$
0
0

@tonywowo 写道:

//基类 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、销毁子类时 不销毁基类
我上面的代码无法实现这个需求 求指导

帖子: 2

参与者: 1

阅读整个主题


Viewing all articles
Browse latest Browse all 88737

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>