RedreamLoader.hpp 2.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. #ifndef __RedreamLoader__
  2. #define __RedreamLoader__
  3. #include "cocos2d.h"
  4. #include "extensions/cocos-ext.h"
  5. #include "Redream.h"
  6. #include "REDReader.h"
  7. class RedreamLoader : public Layer
  8. ,public redream::REDSelectorResolver
  9. ,public redream::REDMemberVariableAssigner
  10. ,public redream::NodeLoaderListener
  11. ,public redream::REDAnimationManagerDelegate
  12. ,public redream::NotifyDevelopmentDelegate {
  13. public:
  14. static RedreamLoader* Layer(string file);
  15. static RedreamLoader* LayerWithLib(string file,redream::NodeLoaderLibrary* lib);
  16. static RedreamLoader* ReboltLayer(string file);
  17. static RedreamLoader* ReboltLayerWithLib(string file,redream::NodeLoaderLibrary* lib);
  18. RED_STATIC_NEW_AUTORELEASE_OBJECT_WITH_INIT_METHOD(RedreamLoader,create);
  19. RedreamLoader();
  20. ~RedreamLoader();
  21. virtual cocos2d::SEL_MenuHandler onResolveREDCCMenuItemSelector(cocos2d::Ref* pTarget,const char* pSelectorName) override;
  22. virtual cocos2d::extension::Control::Handler onResolveREDCCControlSelector(cocos2d::Ref* pTarget,const char* pSelectorName) override;
  23. virtual cocos2d::SEL_CallFuncN onResolveREDCCCallFuncSelector(cocos2d::Ref* pTarget,const char* pSelectorName) override;
  24. virtual bool onAssignREDMemberVariable(cocos2d::Ref* pTarget,const char* pMemberVariableName,cocos2d::Node* node) override;
  25. virtual void onNodeLoaded(cocos2d::Node* node,redream::NodeLoader* nodeLoader) override;
  26. void completedAnimationSequenceNamed(const char *name, int seqId, int tag) override;
  27. //rebolt
  28. virtual void onNotifyDevelopment(redream::ReboltRedManager* reboltRedManager,redream::NotifyDevelopmentWaiter* waiter,std::string notify,std::string param,bool reboltIsWait,Node* outNode) override;
  29. float playAnim(std::string anim);
  30. float getAnimTime(std::string anim);
  31. void stopAnimAll();
  32. redream::ReboltRedManager* getReboltManager();
  33. //get sub node
  34. Node* getByName(std::string name);
  35. Sprite* getSprite(std::string name);
  36. Label* getLabel(std::string name);
  37. ParticleSystemQuad* getParticle(std::string name);
  38. redream::REDNodeButton* getREDNodeButton(std::string name);
  39. RedreamLoader* getSubLoader(std::string name);
  40. //rebolt
  41. std::function<void(redream::ReboltRedManager*,redream::NotifyDevelopmentWaiter*,std::string,std::string,bool,Node*)> _reboltCallBack = nullptr;
  42. private:
  43. std::map<string,Node*> _mapChilden;
  44. redream::ReboltRedManager* _loaderReboltRedManager = nullptr;
  45. };
  46. class RedreamLoaderLoader : public redream::LayerLoader {
  47. public:
  48. RED_STATIC_NEW_AUTORELEASE_OBJECT_METHOD(RedreamLoaderLoader,loader);
  49. protected:
  50. RED_VIRTUAL_NEW_AUTORELEASE_CREATECCNODE_METHOD(RedreamLoader);
  51. };
  52. #endif /* RedreamLoader */