cc.Slider.ClassName = "Slider" function cc.Slider:saveToXmlNode(xmlNode) cc.Widget.saveToXmlNode(self , xmlNode); xmlNode.Scale9Enabled = self:isScale9Enabled(); if xmlNode.Scale9Enabled then xmlNode.CapInsets = self:getCapInsetsBarRenderer(); end xmlNode.BarTex = getUITexture(self:getTextureFile() , self:getBarTexType()); xmlNode.ProgressBarTex = getUITexture(self:getProgressBarTextureFile() , self:getProgressBarTexType()); xmlNode.BallNTex = getUITexture(self:getSlidBallNormalTextureFile() , self:getBallNTexType()); xmlNode.BallPTex = getUITexture(self:getSlidBallPressedTextureFile() , self:getBallPTexType()); xmlNode.BallDTex = getUITexture(self:getSlidBallDisabledTextureFile() , self:getBallDTexType()); xmlNode.Percent = self:getPercent(); end function cc.Slider:loadFromXmlNode(xmlNode) cc.Widget.loadFromXmlNode(self , xmlNode); -- 底图资源 setUITexture(self.loadBarTexture , self , xmlNode.BarTex); -- 节点正常状态 setUITexture(self.loadSlidBallTextureNormal , self , xmlNode.BallNTex); -- 节点按下状态 setUITexture(self.loadSlidBallTexturePressed , self , xmlNode.BallPTex); -- 节点禁用状态 setUITexture(self.loadSlidBallTextureDisabled , self , xmlNode.BallDTex); -- 内部进度条 setUITexture(self.loadProgressBarTexture , self , xmlNode.ProgressBarTex); self:setScale9Enabled(xmlNode.Scale9Enabled); if self:isScale9Enabled() then self:setCapInsets(xmlNode.CapInsets); end -- 滑动进度 self:setPercent(xmlNode.Percent); end function cc.Slider:extend(node) cc.Widget:extend(node); node:setName("Slider") end function cc.Slider:createNode() local layer = cc.Slider:create(); cc.Slider:extend(layer); return layer; end -- 设置默认值 function cc.Slider:setDefaults() self:loadBarTexture("res/default/slider_bar.png"); self:loadSlidBallTextureNormal("res/default/slider_bar_button.png"); self:setCapInsets(cc.rect(0,0,0,0)); -- 默认需要响应touch事件 self:setTouchEnabled(true) end -- 重新加载这个控件的所有图片 function cc.Slider:postloadImage() local isScale9 = self:isScale9Enabled(); self:setScale9Enabled(not isScale9); self:setScale9Enabled(isScale9); end -- 收集这个控件用到了哪些PList文件 function cc.Slider:collectPListFiles() local files = {}; collectPListFile(files , self:getTextureFile() , self:getBarTexType()); collectPListFile(files , self:getProgressBarTextureFile() , self:getProgressBarTexType()); collectPListFile(files , self:getSlidBallNormalTextureFile() , self:getBallNTexType()); collectPListFile(files , self:getSlidBallPressedTextureFile() , self:getBallPTexType()); collectPListFile(files , self:getSlidBallDisabledTextureFile() , self:getBallDTexType()); function getParent(node, path) local parent = node:getParent() if parent then local nameParent = parent:getName() path = nameParent.. "\\"..path return getParent(parent, path) else return path end end local nodePath = getParent(self, self:getName()); for k,v in pairs(files) do print("plist = " .. v .. ", nodePath = ".. nodePath) end return files; end