|
- cc.CheckBox.ClassName = "CheckBox"
-
- function cc.CheckBox:saveToXmlNode(xmlNode)
- cc.Widget.saveToXmlNode(self , xmlNode);
-
- xmlNode.BackGround = getUITexture(self:getBackGroundFileName() , self:getBackGroundTexType());
- xmlNode.BackGroundSelected = getUITexture(self:getBackGroundSelectedFileName() , self:getBackGroundSelectedTexType());
- xmlNode.FrontCross = getUITexture(self:getFrontCrossFileName() , self:getFrontCrossTexType());
- xmlNode.BackGroundDisabled = getUITexture(self:getBackGroundDisabledFileName() , self:getBackGroundDisabledTexType());
- xmlNode.FrontCrossDisabled = getUITexture(self:getFrontCrossDisabledFileName() , self:getFrontCrossDisabledTexType());
-
- end
-
- function cc.CheckBox:loadFromXmlNode(xmlNode)
- cc.Widget.loadFromXmlNode(self , xmlNode);
-
- -- 底图资源
- setUITexture(self.loadTextureBackGround , self , xmlNode.BackGround);
- -- 按下底图
- setUITexture(self.loadTextureBackGroundSelected , self , xmlNode.BackGroundSelected);
- -- 禁用底图
- setUITexture(self.loadTextureBackGroundDisabled , self , xmlNode.BackGroundDisabled);
- -- 标识图选中
- setUITexture(self.loadTextureFrontCross , self , xmlNode.FrontCross);
- -- 标识图未选中
- setUITexture(self.loadTextureFrontCrossDisabled , self , xmlNode.FrontCrossDisabled);
- end
-
- function cc.CheckBox:extend(node)
- cc.Widget:extend(node);
- node:setName("CheckBox")
- end
-
-
- function cc.CheckBox:createNode()
- local layer = cc.CheckBox:create();
- cc.CheckBox:extend(layer);
- return layer;
- end
-
- -- 设置默认值
- function cc.CheckBox:setDefaults()
- self:loadTextureBackGround("res/default/selected01.png");
- self:loadTextureFrontCross("res/default/selected02.png");
- self:setSelectedState(true);
- -- 默认需要响应touch事件
- self:setTouchEnabled(true)
- end
-
-
- local function resetSprite(sprite)
- sprite:setTexture(nil);
- sprite:setTextureRect(cc.rect(0,0,0,0));
- end
-
- -- 重新加载这个控件的所有图片
- function cc.CheckBox:postloadImage()
- resetSprite(self:getBackGroundRenderer());
- self:loadTextureBackGround(self:getBackGroundFileName());
-
- resetSprite(self:getBackGroundSelectedRenderer());
- self:loadTextureBackGroundSelected(self:getBackGroundSelectedFileName());
-
- resetSprite(self:getBackGroundDisabledRenderer());
- self:loadTextureBackGroundDisabled(self:getBackGroundDisabledFileName());
-
- resetSprite(self:getFrontCrossRenderer());
- self:loadTextureFrontCross(self:getFrontCrossFileName());
-
- resetSprite(self:getFrontCrossDisabledRenderer());
- self:loadTextureFrontCrossDisabled(self:getFrontCrossDisabledFileName());
- end
-
- -- 收集这个控件用到了哪些PList文件
- function cc.CheckBox:collectPListFiles()
- local files = {};
- collectPListFile(files , self:getBackGroundFileName() , self:getBackGroundTexType());
- collectPListFile(files , self:getBackGroundSelectedFileName() , self:getBackGroundSelectedTexType());
- collectPListFile(files , self:getFrontCrossFileName() , self:getFrontCrossTexType());
- collectPListFile(files , self:getBackGroundDisabledFileName() , self:getBackGroundDisabledTexType());
- collectPListFile(files , self:getFrontCrossDisabledFileName() , self:getFrontCrossDisabledTexType());
-
- 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
-
- -- 设置选中时要显示的节点
- function cc.CheckBox:setSelectedNode(nodeSelected, nodeUnSelected)
- self.nodeSelected = nodeSelected
- self.nodeUnSelected = nodeUnSelected
- end
-
- function cc.CheckBox:updateSelectedNode()
- local isSelected = self:getSelectedState()
- if self.nodeSelected then
- self.nodeSelected:setVisible(isSelected)
- end
- if self.nodeUnSelected then
- self.nodeUnSelected:setVisible( not isSelected)
- end
- end
-
- -- 重写手动设置选中状态的接口:选中或取消选中之后更新选中图片
- local old_setSelectedState = cc.CheckBox.setSelectedState;
- function cc.CheckBox:setSelectedState(isSelected, skipUpdateNode)
- old_setSelectedState(self, isSelected);
- if not skipUpdateNode then
- self:updateSelectedNode();
- end
- end
|