cocos-2d-js 定时器模板
2016-07-10 18:50
447 查看
var USER_TIME_COUNT_SET_TIME = "USER_TIME_COUNT_SET_TIME" //设置倒计时时间 var USER_TIME_COUNT_START = "USER_TIME_COUNT_START" //开始倒计时 var USER_TIME_COUNT_PAUSE = "USER_TIME_COUNT_PAUSE" //停止倒计时 var USER_TIME_COUNT_FINISH = "USER_TIME_COUNT_FINISH" //倒计时结束 由定时器抛出 var TimeCount = cc.Layer.extend({ EventArr:[USER_TIME_COUNT_SET_TIME, USER_TIME_COUNT_START, USER_TIME_COUNT_PAUSE], Label_time:null, Label_Position:null, Count_Time:0, ScheduleRun:false, Start_DateTime:0, ctor:function(){ this._super() this.init() }, init:function(){ this.Label_Position = cc.p(cc.winSize.width>>1,cc.winSize.height*0.95); //调整倒计时坐标 this.Label_time = new cc.LabelBMFont("TimeCount", "res/mikado_outline_shadow.fnt"); if(this.Label_time.width <= 0) this.Label_time.setPosition(this.Label_Position) this.addChild(this.Label_time) this.scheduleUpdate() for(var index in this.EventArr){ var event = this.EventArr[index] cc.eventManager.addCustomListener(event, this.onGetCustom.bind(this)) } }, onGetCustom:function(event){ var data = event.getUserData(); switch (event.getEventName()){ case USER_TIME_COUNT_SET_TIME: cc.log('设置了倒计时时间:',data) this.Count_Time = data this.Label_time.setString(this.Count_Time) break case USER_TIME_COUNT_START: cc.log('启动了倒计时:') this.Start_DateTime = Date.now() this.ScheduleRun = true break case USER_TIME_COUNT_PAUSE: cc.log('停止了倒计时') this.ScheduleRun = false break } }, update:function(){ if(this.ScheduleRun){ if(Date.now() - this.Start_DateTime>=1000){ this.Count_Time --; this.Label_time.setString(this.Count_Time) this.Start_DateTime += 1000 if(0 == this.Count_Time){ this.timeStop() cc.eventManager.dispatchCustomEvent(USER_TIME_COUNT_FINISH) } } } }, timeStop:function(){ cc.log('倒计时结束了:') this.ScheduleRun = false }, onExit:function(){ this.unscheduleUpdate() this.removeAllChildren(true) for(var index in this.EventArr){ var event = this.EventArr[index] cc.eventManager.removeCustomListeners(event) } } })
onEnterTransitionDidFinish:function(){ this._super() var that = this cc.eventManager.dispatchCustomEvent(USER_TIME_COUNT_SET_TIME, 5) cc.eventManager.dispatchCustomEvent(USER_TIME_COUNT_START) cc.eventManager.addCustomListener(USER_TIME_COUNT_FINISH, function(event){ cc.log('app 获取了定时器传回的结束')}) },
onEnter() 是在进入场景的一瞬间就开始执行了。onEnterTransitionDidFinish() 是在完全进入场景后开始执行的。
相关文章推荐
- 序列动画和图片内存问题
- cocos2dx 实习生培训计划
- 我的cocos2dx学习之路
- Cocos2d-x Lua基本操作
- 浅谈容器Vector ,话说ValueMap的一般使用。Cocos2dx 3.0 过渡篇
- cocos2d-x 2.2.3 通过plist创建sprite的过程简单分析(转)
- 【Cocos2d-x 3.0学习笔记】 AnchorPoint 和Position 关系
- cocos2d-x 3.x学习之拖动滑块类
- cocos 中熟练运用场景的切换
- 减少cocos2dx3.3-lua的so文件大小笔记
- Cocos2d-x Json读写
- 【Cocos Creator 基础教程(其他)】——游戏素材资源获取方法
- Cocos2d-x 内存管理
- Cocos2d-3.x触摸事件 中 setSwallowTouches
- Cocos2D-ObjC:在RPG游戏中混合Swift代码
- Cocos2D-ObjC:在RPG游戏中混合Swift代码
- Cocos2D-ObjC:在RPG游戏中混合Swift代码
- cocos2d-lua android解决启动时因为资源加载而黑屏的问题
- cocos2dx-3.x萝莉快跑学习(一)
- 编译Cocos2dx程序 (一)