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.

101 lines
3.1 KiB

  1. cc.Slider.ClassName = "Slider"
  2. function cc.Slider:saveToXmlNode(xmlNode)
  3. cc.Widget.saveToXmlNode(self , xmlNode);
  4. xmlNode.Scale9Enabled = self:isScale9Enabled();
  5. if xmlNode.Scale9Enabled then
  6. xmlNode.CapInsets = self:getCapInsetsBarRenderer();
  7. end
  8. xmlNode.BarTex = getUITexture(self:getTextureFile() , self:getBarTexType());
  9. xmlNode.ProgressBarTex = getUITexture(self:getProgressBarTextureFile() , self:getProgressBarTexType());
  10. xmlNode.BallNTex = getUITexture(self:getSlidBallNormalTextureFile() , self:getBallNTexType());
  11. xmlNode.BallPTex = getUITexture(self:getSlidBallPressedTextureFile() , self:getBallPTexType());
  12. xmlNode.BallDTex = getUITexture(self:getSlidBallDisabledTextureFile() , self:getBallDTexType());
  13. xmlNode.Percent = self:getPercent();
  14. end
  15. function cc.Slider:loadFromXmlNode(xmlNode)
  16. cc.Widget.loadFromXmlNode(self , xmlNode);
  17. -- 底图资源
  18. setUITexture(self.loadBarTexture , self , xmlNode.BarTex);
  19. -- 节点正常状态
  20. setUITexture(self.loadSlidBallTextureNormal , self , xmlNode.BallNTex);
  21. -- 节点按下状态
  22. setUITexture(self.loadSlidBallTexturePressed , self , xmlNode.BallPTex);
  23. -- 节点禁用状态
  24. setUITexture(self.loadSlidBallTextureDisabled , self , xmlNode.BallDTex);
  25. -- 内部进度条
  26. setUITexture(self.loadProgressBarTexture , self , xmlNode.ProgressBarTex);
  27. self:setScale9Enabled(xmlNode.Scale9Enabled);
  28. if self:isScale9Enabled() then
  29. self:setCapInsets(xmlNode.CapInsets);
  30. end
  31. -- 滑动进度
  32. self:setPercent(xmlNode.Percent);
  33. end
  34. function cc.Slider:extend(node)
  35. cc.Widget:extend(node);
  36. node:setName("Slider")
  37. end
  38. function cc.Slider:createNode()
  39. local layer = cc.Slider:create();
  40. cc.Slider:extend(layer);
  41. return layer;
  42. end
  43. -- 设置默认值
  44. function cc.Slider:setDefaults()
  45. self:loadBarTexture("res/default/slider_bar.png");
  46. self:loadSlidBallTextureNormal("res/default/slider_bar_button.png");
  47. self:setCapInsets(cc.rect(0,0,0,0));
  48. -- 默认需要响应touch事件
  49. self:setTouchEnabled(true)
  50. end
  51. -- 重新加载这个控件的所有图片
  52. function cc.Slider:postloadImage()
  53. local isScale9 = self:isScale9Enabled();
  54. self:setScale9Enabled(not isScale9);
  55. self:setScale9Enabled(isScale9);
  56. end
  57. -- 收集这个控件用到了哪些PList文件
  58. function cc.Slider:collectPListFiles()
  59. local files = {};
  60. collectPListFile(files , self:getTextureFile() , self:getBarTexType());
  61. collectPListFile(files , self:getProgressBarTextureFile() , self:getProgressBarTexType());
  62. collectPListFile(files , self:getSlidBallNormalTextureFile() , self:getBallNTexType());
  63. collectPListFile(files , self:getSlidBallPressedTextureFile() , self:getBallPTexType());
  64. collectPListFile(files , self:getSlidBallDisabledTextureFile() , self:getBallDTexType());
  65. function getParent(node, path)
  66. local parent = node:getParent()
  67. if parent then
  68. local nameParent = parent:getName()
  69. path = nameParent.. "\\"..path
  70. return getParent(parent, path)
  71. else
  72. return path
  73. end
  74. end
  75. local nodePath = getParent(self, self:getName());
  76. for k,v in pairs(files) do
  77. print("plist = " .. v .. ", nodePath = ".. nodePath)
  78. end
  79. return files;
  80. end