// Learn cc.Class: // - https://docs.cocos.com/creator/manual/en/scripting/class.html // Learn Attribute: // - https://docs.cocos.com/creator/manual/en/scripting/reference/attributes.html // Learn life-cycle callbacks: // - https://docs.cocos.com/creator/manual/en/scripting/life-cycle-callbacks.html cc.Class({ extends: cc.Component, properties: { endTxt:"", //倒計時結束提示 isPop:false //是否飘窗提示 }, // LIFE-CYCLE CALLBACKS: editor: { // 允许当前组件在编辑器模式下运行 executeInEditMode: false, // requireComponent 参数用来指定当前组件的依赖组件 requireComponent: cc.Label, // 当本组件添加到节点上后,禁止同类型(含子类)的组件再添加到同一个节点,防止逻辑发生冲突 disallowMultiple: true, }, start () { }, onEnable:function(){ }, onDisable:function(){ this.unscheduleAllCallbacks(); }, setSecs:function(_sec,_endCall){ if(!nx.dt.numPositive( _sec, false ) ) { nx.warn("未知时间:",_sec); this.stopAll(); return; } this.sec = _sec; this._endCall = _endCall; this.timeStart(); }, timeStart:function(){ this.unscheduleAllCallbacks(); if( nx.dt.numPositive( this.sec, false ) ) { this.schedule( () => { this.tick(); }, 1, cc.macro.REPEAT_FOREVER); }; }, tick(){ this.sec--; if(this.sec<=0){ if(this.isPop){ nx.tbox(this.endTxt); } nx.gui.setString( this, "", nx.text.getKey(this.endTxt) ); nx.dt.fnInvoke( this._endCall ); this.stopAll(); return; }else{ //是否大于一天 let txt = this.sec; if(this.sec/(24*3600) > 1){ txt = nx.bridge.time.toNeedSeconds(this.sec); }else{ txt = nx.bridge.time.cdSeconds(this.sec); } nx.gui.setString( this, "", txt); } }, stopAll:function(){ this.unscheduleAllCallbacks(); this.string = ""; }, // update (dt) {}, });