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.

79 lines
2.0 KiB

  1. -- 扩展ScalePressedEffect类
  2. cc.ScalePressedEffect.ClassName = "ScalePressedEffect"
  3. -- 保存操作
  4. function cc.ScalePressedEffect:saveToXmlNode(xmlNode)
  5. xmlNode.ClassName = self.ClassName;
  6. xmlNode.Scale = self:getScale();
  7. xmlNode.Duration = self:getDuration();
  8. end
  9. -- 读取操作
  10. function cc.ScalePressedEffect:loadFromXmlNode(xmlNode)
  11. self:setScale(xmlNode.Scale);
  12. self:setDuration(xmlNode.Duration);
  13. end
  14. -- 扩展ColorPressedEffect类
  15. cc.ColorPressedEffect.ClassName = "ColorPressedEffect"
  16. -- 保存操作
  17. function cc.ColorPressedEffect:saveToXmlNode(xmlNode)
  18. xmlNode.ClassName = self.ClassName;
  19. xmlNode.Color = self:getColor();
  20. xmlNode.Duration = self:getDuration();
  21. end
  22. -- 读取操作
  23. function cc.ColorPressedEffect:loadFromXmlNode(xmlNode)
  24. self:setColor(xmlNode.Color);
  25. self:setDuration(xmlNode.Duration);
  26. end
  27. -- 扩展OpacityPressedEffect类
  28. cc.OpacityPressedEffect.ClassName = "OpacityPressedEffect"
  29. -- 保存操作
  30. function cc.OpacityPressedEffect:saveToXmlNode(xmlNode)
  31. xmlNode.ClassName = self.ClassName;
  32. xmlNode.Opacity = self:getOpacity();
  33. xmlNode.Duration = self:getDuration();
  34. end
  35. -- 读取操作
  36. function cc.OpacityPressedEffect:loadFromXmlNode(xmlNode)
  37. self:setOpacity(xmlNode.Opacity);
  38. self:setDuration(xmlNode.Duration);
  39. end
  40. -- 扩展MultiPressedEffect类
  41. cc.MultiPressedEffect.ClassName = "MultiPressedEffect"
  42. -- 保存操作
  43. function cc.MultiPressedEffect:saveToXmlNode(xmlNode)
  44. xmlNode.ClassName = self.ClassName;
  45. local effects = {};
  46. xmlNode.Effects = effects;
  47. for i = 0 , self:getEffectCount() - 1 do
  48. local effect = self:getEffect(i);
  49. local effectNode = {};
  50. effect:saveToXmlNode(effectNode);
  51. table.insert(effects , effectNode);
  52. end
  53. end
  54. -- 读取操作
  55. function cc.MultiPressedEffect:loadFromXmlNode(xmlNode)
  56. for i , v in ipairs(xmlNode.Effects) do
  57. local effect = cc[v.ClassName];
  58. if not effect then
  59. error("找不到类型:" .. v.ClassName);
  60. end
  61. local instance = effect:create();
  62. instance:loadFromXmlNode(v);
  63. self:addEffect(instance);
  64. end
  65. end