在一个界面使用定时器后,退出界面后,一定要记得取消定时器
2015-07-30 10:45
337 查看
一个游戏界面要做一个倒计时,做完后,退出界面,再进去时,游戏崩溃。
倒计时的定时器使用
此时已经做好了倒计时定时器,但是当你退出这个界面是,假如时间还没到(unscheduleScriptEntry这个函数就不会得到调用)
所以我在init函数中
当这个界面退出时,会取消定时器
倒计时的定时器使用
local function onInterval(dt) local time = SGGJ_Club_Total.bossleft if tonumber(time) >= 0 then --里面有其他与此知识点操作都省略.... local hour = math.floor((time) / 3600) local min = math.floor((time % 3600) / 60) local second = (time % 3600) % 60 daojishiText:setString(string.format("%02d : %02d : %02d",hour , min, second)) else cc.Director:getInstance():getScheduler():unscheduleScriptEntry(self.scheduleId) self.scheduleId = nil end end --这里第一次调用,让一进界面,倒计时数据就设置后了,否则会有1秒钟的混乱数据 onInterval() --每秒调用一次onInterval函数 self.scheduleId = cc.Director:getInstance():getScheduler():scheduleScriptFunc(onInterval, 1, false)
此时已经做好了倒计时定时器,但是当你退出这个界面是,假如时间还没到(unscheduleScriptEntry这个函数就不会得到调用)
所以我在init函数中
local function nodeEvent(event) if "enter" == event then --enter elseif "exit" == event then if self.scheduleId then cc.Director:getInstance():getScheduler():unscheduleScriptEntry(self.scheduleId) self.scheduleId = nil end end end self:registerScriptHandler(nodeEvent)
当这个界面退出时,会取消定时器
相关文章推荐
- 增加计算列排序
- ogre 种草
- AC自动机初识&hdu 2222 Keywords Search
- asp.net分页,Effective paging with List View control in ASP.NET
- 开发日记
- tar打包排除某个目录
- javascript设计模式之对象工厂函数与构造函数详解
- tableViewCell的复用方法
- 安卓主界面UI不能实现下载
- DDD CQRS与传统CRUD
- 串口自动检测
- 数据结构---二叉树(2)
- angular之$parse
- MFC消息映射原理
- Android--打开文件的Intent及使用
- YaHoo 初始化css代码+IE常见兼容问题汇总
- [转载] 为Visual Studio添加默认INCLUDE包含路径的方法
- 使用的 SQL Server 版本不支持数据类型“datetime2”解决办法
- php 读取csv 乱码
- 分享:反汇编工具和模糊处理工具原理及使用