You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

91 lines
2.3 KiB

  1. --电池信号
  2. local RoomSinglePowerComponent = class("RoomSinglePowerComponent")
  3. function RoomSinglePowerComponent:ctor(sigleImg,powerLoadbar)
  4. -- if not isSupportVersion(121) then
  5. -- showTooltip("该版本不支持电池信号显示")
  6. -- return
  7. -- end
  8. self.sigleImg = sigleImg
  9. self.powerLoadbar = powerLoadbar
  10. if sigleImg and not tolua.isnull(sigleImg) then
  11. -- sigleImg:setVisible(false)
  12. self:updateSingle()
  13. end
  14. if powerLoadbar and not tolua.isnull(powerLoadbar) then
  15. self:updatePower()
  16. end
  17. end
  18. --更新信号
  19. function RoomSinglePowerComponent:updateSingle()
  20. local isAndroid = isAndroidPlatform()
  21. local function update(ret)
  22. local level = 3
  23. -- if isAndroid then --安卓
  24. -- level = getSingleLevel()
  25. -- level = level>3 and 3 or level
  26. -- logD("updateSingle:"..level)
  27. -- else
  28. local ms = tonumber(ret) or 300
  29. if ms<=100 then
  30. level = 3
  31. elseif ms>100 and ms<=150 then
  32. level = 2
  33. elseif ms>150 and ms<=200 then
  34. level = 1
  35. else
  36. level = 0
  37. end
  38. logD("updateSingle:"..level.." "..ms.."ms")
  39. -- end
  40. if self.sigleImg and not tolua.isnull(self.sigleImg) then
  41. self.sigleImg:loadTexture("fangjian2_room_sigle_"..level..".png", cc.TextureResType.plistType)
  42. end
  43. end
  44. update(1)
  45. local t = isAndroid and 2 or 10
  46. if isAndroid then
  47. app.plugin:startPing()
  48. end
  49. self.sigleImg:runAction(cc.RepeatForever:create(cc.Sequence:create(cc.DelayTime:create(t),cc.CallFunc:create(function ()
  50. if isAndroid then
  51. update(app.plugin:getPing())
  52. logD("isAndroid updateSingle")
  53. else
  54. logD("isIos updateSingle")
  55. ping(update)
  56. end
  57. end))))
  58. end
  59. --更新电量
  60. function RoomSinglePowerComponent:updatePower()
  61. local function update()
  62. local power = getPowerLevel()
  63. logD("updatePower:"..power)
  64. if self.powerLoadbar and not tolua.isnull(self.powerLoadbar) then
  65. self.powerLoadbar:setPercent(power)
  66. end
  67. end
  68. -- update()
  69. --第一次2秒获取一次 因为电量为广播获取 存在延迟
  70. self.powerLoadbar:runAction(cc.Sequence:create(cc.DelayTime:create(2),cc.CallFunc:create(function ()
  71. update()
  72. end)))
  73. self.powerLoadbar:runAction(cc.RepeatForever:create(cc.Sequence:create(cc.DelayTime:create(30),cc.CallFunc:create(function ()
  74. update()
  75. end))))
  76. end
  77. function RoomSinglePowerComponent:exit()
  78. if isAndroidPlatform() then
  79. app.plugin:stopPing()
  80. end
  81. end
  82. return RoomSinglePowerComponent;