REDNodeButtonLoader.cpp 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. //
  2. // REDNodeButtonLoader.cpp
  3. // cocos2d_libs
  4. //
  5. // Created by ZhengSong on 2020/4/14.
  6. //
  7. #include "REDNodeButtonLoader.h"
  8. using namespace cocos2d;
  9. namespace redream {;
  10. #define PROPERTY_ZOOMONTOUCHDOWN "zoomOnTouchDown"
  11. #define PROPERTY_WISETOUCHDOWN "wiseOnTouchDown"
  12. #define PROPERTY_WISETOUCHUPINSIDE "wiseOnTouchUpInside"
  13. // TODO: Should be "preferredSize". This is a typo in cocos2d-iphone, cocos2d-x and CocosBuilder!
  14. #define PROPERTY_PREFEREDSIZE "preferedSize"
  15. #define PROPERTY_SCALERATIO "scaleRatio"
  16. void REDNodeButtonLoader::onHandlePropTypeCheck(Node * pNode, Node * pParent, const char * pPropertyName, bool pCheck, REDReader * redReader) {
  17. if(strcmp(pPropertyName, PROPERTY_ZOOMONTOUCHDOWN) == 0) {
  18. ((REDNodeButton *)pNode)->setZoomOnTouchDown(pCheck);
  19. } else {
  20. ControlLoader::onHandlePropTypeCheck(pNode, pParent, pPropertyName, pCheck, redReader);
  21. }
  22. }
  23. void REDNodeButtonLoader::onHandlePropTypeSize(Node * pNode, Node * pParent, const char * pPropertyName, Size pSize, REDReader * redReader) {
  24. if(strcmp(pPropertyName, PROPERTY_PREFEREDSIZE) == 0) {
  25. ((REDNodeButton *)pNode)->setPreferredSize(pSize);
  26. } else {
  27. ControlLoader::onHandlePropTypeSize(pNode, pParent, pPropertyName, pSize, redReader);
  28. }
  29. }
  30. void REDNodeButtonLoader::onHandlePropTypeFloat(Node * pNode, Node * pParent, const char* pPropertyName, float pFloat, REDReader * redReader) {
  31. // ASSERT_FAIL_UNEXPECTED_PROPERTY(pPropertyName);
  32. // It may be a custom property, add it to custom property dictionary.
  33. if(strcmp(pPropertyName, PROPERTY_SCALERATIO) == 0) {
  34. ((REDNodeButton *)pNode)->setScaleRatio(pFloat);
  35. }else{
  36. ControlLoader::onHandlePropTypeFloat(pNode, pParent, pPropertyName, pFloat,redReader);
  37. }
  38. }
  39. void REDNodeButtonLoader::onHandlePropTypeWise(cocos2d::Node* pNode, cocos2d::Node* pParent, const char* pPropertyName, const WiseEventData& wiseEventData, REDReader* ccbReader){
  40. if (strcmp(pPropertyName, PROPERTY_WISETOUCHDOWN) == 0) {
  41. ((REDNodeButton*)pNode)->setTouchDownAudioData(wiseEventData.wiseBnkPath, wiseEventData.wiseEventName, wiseEventData.audioParams, wiseEventData.wiseForcePost);
  42. } else if(strcmp(pPropertyName, PROPERTY_WISETOUCHUPINSIDE) == 0) {
  43. ((REDNodeButton*)pNode)->setTouchUpInsideAudioData(wiseEventData.wiseBnkPath, wiseEventData.wiseEventName, wiseEventData.audioParams, wiseEventData.wiseForcePost);
  44. } else {
  45. NodeLoader::onHandlePropTypeWise(pNode, pParent, pPropertyName, wiseEventData, ccbReader);
  46. }
  47. }
  48. };