// // REDNodeButtonLoader.cpp // cocos2d_libs // // Created by ZhengSong on 2020/4/14. // #include "REDNodeButtonLoader.h" using namespace cocos2d; namespace redream {; #define PROPERTY_ZOOMONTOUCHDOWN "zoomOnTouchDown" #define PROPERTY_WISETOUCHDOWN "wiseOnTouchDown" #define PROPERTY_WISETOUCHUPINSIDE "wiseOnTouchUpInside" // TODO: Should be "preferredSize". This is a typo in cocos2d-iphone, cocos2d-x and CocosBuilder! #define PROPERTY_PREFEREDSIZE "preferedSize" #define PROPERTY_SCALERATIO "scaleRatio" void REDNodeButtonLoader::onHandlePropTypeCheck(Node * pNode, Node * pParent, const char * pPropertyName, bool pCheck, REDReader * redReader) { if(strcmp(pPropertyName, PROPERTY_ZOOMONTOUCHDOWN) == 0) { ((REDNodeButton *)pNode)->setZoomOnTouchDown(pCheck); } else { ControlLoader::onHandlePropTypeCheck(pNode, pParent, pPropertyName, pCheck, redReader); } } void REDNodeButtonLoader::onHandlePropTypeSize(Node * pNode, Node * pParent, const char * pPropertyName, Size pSize, REDReader * redReader) { if(strcmp(pPropertyName, PROPERTY_PREFEREDSIZE) == 0) { ((REDNodeButton *)pNode)->setPreferredSize(pSize); } else { ControlLoader::onHandlePropTypeSize(pNode, pParent, pPropertyName, pSize, redReader); } } void REDNodeButtonLoader::onHandlePropTypeFloat(Node * pNode, Node * pParent, const char* pPropertyName, float pFloat, REDReader * redReader) { // ASSERT_FAIL_UNEXPECTED_PROPERTY(pPropertyName); // It may be a custom property, add it to custom property dictionary. if(strcmp(pPropertyName, PROPERTY_SCALERATIO) == 0) { ((REDNodeButton *)pNode)->setScaleRatio(pFloat); }else{ ControlLoader::onHandlePropTypeFloat(pNode, pParent, pPropertyName, pFloat,redReader); } } void REDNodeButtonLoader::onHandlePropTypeWise(cocos2d::Node* pNode, cocos2d::Node* pParent, const char* pPropertyName, const WiseEventData& wiseEventData, REDReader* ccbReader){ if (strcmp(pPropertyName, PROPERTY_WISETOUCHDOWN) == 0) { ((REDNodeButton*)pNode)->setTouchDownAudioData(wiseEventData.wiseBnkPath, wiseEventData.wiseEventName, wiseEventData.audioParams, wiseEventData.wiseForcePost); } else if(strcmp(pPropertyName, PROPERTY_WISETOUCHUPINSIDE) == 0) { ((REDNodeButton*)pNode)->setTouchUpInsideAudioData(wiseEventData.wiseBnkPath, wiseEventData.wiseEventName, wiseEventData.audioParams, wiseEventData.wiseForcePost); } else { NodeLoader::onHandlePropTypeWise(pNode, pParent, pPropertyName, wiseEventData, ccbReader); } } };