diff --git a/cocos2d_libs.xcodeproj/project.pbxproj.REMOVED.git-id b/cocos2d_libs.xcodeproj/project.pbxproj.REMOVED.git-id index 1e9cc1e16a..5c639da189 100644 --- a/cocos2d_libs.xcodeproj/project.pbxproj.REMOVED.git-id +++ b/cocos2d_libs.xcodeproj/project.pbxproj.REMOVED.git-id @@ -1 +1 @@ -29c3c2dfd8b683a800709d085839444c3a304a0d \ No newline at end of file +8b8a994b2fdf6fd8ef65f714619ce35ff1ca09cf \ No newline at end of file diff --git a/extensions/Android.mk b/extensions/Android.mk index 0a1877b23e..2cc83d8669 100644 --- a/extensions/Android.mk +++ b/extensions/Android.mk @@ -55,10 +55,6 @@ CocoStudio/Components/CCComAudio.cpp \ CocoStudio/Components/CCComController.cpp \ CocoStudio/Components/CCComRender.cpp \ CocoStudio/Components/CCInputDelegate.cpp \ -CocoStudio/GUI/Action/UIAction.cpp \ -CocoStudio/GUI/Action/UIActionFrame.cpp \ -CocoStudio/GUI/Action/UIActionManager.cpp \ -CocoStudio/GUI/Action/UIActionNode.cpp \ CocoStudio/GUI/BaseClasses/UIRootWidget.cpp \ CocoStudio/GUI/BaseClasses/UIWidget.cpp \ CocoStudio/GUI/Layouts/Layout.cpp \ @@ -89,6 +85,11 @@ CocoStudio/Json/lib_json/json_value.cpp \ CocoStudio/Json/lib_json/json_writer.cpp \ CocoStudio/Reader/CCSGUIReader.cpp \ CocoStudio/Reader/CCSSceneReader.cpp \ +CocoStudio/Action/CCActionFrame.cpp \ +CocoStudio/Action/CCActionFrameEasing.cpp \ +CocoStudio/Action/CCActionManagerEx.cpp \ +CocoStudio/Action/CCActionNode.cpp \ +CocoStudio/Action/CCActionObject.cpp \ GUI/CCControlExtension/CCControl.cpp \ GUI/CCControlExtension/CCControlButton.cpp \ GUI/CCControlExtension/CCControlColourPicker.cpp \ diff --git a/extensions/CocoStudio/Action/CCActionFrame.cpp b/extensions/CocoStudio/Action/CCActionFrame.cpp new file mode 100644 index 0000000000..32305f4a8a --- /dev/null +++ b/extensions/CocoStudio/Action/CCActionFrame.cpp @@ -0,0 +1,225 @@ +/**************************************************************************** + Copyright (c) 2013 cocos2d-x.org + + http://www.cocos2d-x.org + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + THE SOFTWARE. + ****************************************************************************/ + +#include "CCActionFrame.h" + +NS_CC_EXT_BEGIN + +ActionFrame::ActionFrame() +: _frameType(0) +, _easingType(0) +, _frameIndex(0) +, _fTime(0.0f) +{ + +} +ActionFrame::~ActionFrame() +{ + +} + +void ActionFrame::setFrameIndex(int index) +{ + _frameIndex = index; +} +int ActionFrame::getFrameIndex() +{ + return _frameIndex; +} + +void ActionFrame::setFrameTime(float fTime) +{ + _fTime = fTime; +} +float ActionFrame::getFrameTime() +{ + return _fTime; +} + +void ActionFrame::setFrameType(int frameType) +{ + _frameType = frameType; +} +int ActionFrame::getFrameType() +{ + return _frameType; +} + +void ActionFrame::setEasingType(int easingType) +{ + _easingType = easingType; +} +int ActionFrame::getEasingType() +{ + return _easingType; +} + +Action* ActionFrame::getAction(float fDuration) +{ + log("Need a definition of for ActionFrame"); + return NULL; +} +////////////////////////////////////////////////////////////////////////// + +ActionMoveFrame::ActionMoveFrame() +: _position(Point(0.0f,0.0f)) +{ + _frameType = (int)kKeyframeMove; +} +ActionMoveFrame::~ActionMoveFrame() +{ + +} +void ActionMoveFrame::setPosition(Point pos) +{ + _position = pos; +} +Point ActionMoveFrame::getPosition() +{ + return _position; +} +Action* ActionMoveFrame::getAction(float fDuration) +{ + return MoveTo::create(fDuration,_position); +} +////////////////////////////////////////////////////////////////////////// + +ActionScaleFrame::ActionScaleFrame() +: _scaleX(1.0f) +, _scaleY(1.0f) +{ + _frameType = (int)kKeyframeScale; +} + +ActionScaleFrame::~ActionScaleFrame() +{ + +} + +void ActionScaleFrame::setScaleX(float scaleX) +{ + _scaleX = scaleX; +} + +float ActionScaleFrame::getScaleX() +{ + return _scaleX; +} + +void ActionScaleFrame::setScaleY(float scaleY) +{ + _scaleY = scaleY; +} + +float ActionScaleFrame::getScaleY() +{ + return _scaleY; +} + +Action* ActionScaleFrame::getAction(float fDuration) +{ + return ScaleTo::create(fDuration,_scaleX,_scaleY); +} + +ActionRotationFrame::ActionRotationFrame() +: _rotation(0.0f) +{ + _frameType = (int)kKeyframeRotate; +} + +ActionRotationFrame::~ActionRotationFrame() +{ + +} + +void ActionRotationFrame::setRotation(float rotation) +{ + _rotation = rotation; +} + +float ActionRotationFrame::getRotation() +{ + return _rotation; +} + +Action* ActionRotationFrame::getAction(float fDuration) +{ + return RotateTo::create(fDuration,_rotation); +} + +ActionFadeFrame::ActionFadeFrame() +: _opacity(255) +{ + _frameType = (int)kKeyframeFade; +} + +ActionFadeFrame::~ActionFadeFrame() +{ + +} + +void ActionFadeFrame::setOpacity(int opacity) +{ + _opacity = opacity; +} + +int ActionFadeFrame::getOpacity() +{ + return _opacity; +} + +Action* ActionFadeFrame::getAction(float fDuration) +{ + return FadeTo::create(fDuration,_opacity); +} + + +ActionTintFrame::ActionTintFrame() +: _color(Color3B(255,255,255)) +{ + _frameType = (int)kKeyframeTint; +} + +ActionTintFrame::~ActionTintFrame() +{ + +} + +void ActionTintFrame::setColor(Color3B ccolor) +{ + _color = ccolor; +} + +Color3B ActionTintFrame::getColor() +{ + return _color; +} + +Action* ActionTintFrame::getAction(float fDuration) +{ + return TintTo::create(fDuration,_color.r,_color.g,_color.b); +} + + +NS_CC_EXT_END \ No newline at end of file diff --git a/extensions/CocoStudio/Action/CCActionFrame.h b/extensions/CocoStudio/Action/CCActionFrame.h new file mode 100644 index 0000000000..1559a16c09 --- /dev/null +++ b/extensions/CocoStudio/Action/CCActionFrame.h @@ -0,0 +1,347 @@ +/**************************************************************************** + Copyright (c) 2013 cocos2d-x.org + + http://www.cocos2d-x.org + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + THE SOFTWARE. + ****************************************************************************/ + +#ifndef __ActionFRAME_H__ +#define __ActionFRAME_H__ + +#include "cocos2d.h" +#include "ExtensionMacros.h" + +NS_CC_EXT_BEGIN + +enum FrameType +{ + kKeyframeMove = 0, + kKeyframeScale, + kKeyframeRotate, + kKeyframeTint, + kKeyframeFade, + kKeyframeMax +}; + +class ActionFrame:public Object +{ + +public: + + /** + * Default constructor + */ + ActionFrame(); + + /** + * Default destructor + */ + virtual ~ActionFrame(); + + /** + * Changes the index of action frame + * + * @param index the index of action frame + */ + void setFrameIndex(int index); + + /** + * Gets the index of action frame + * + * @return the index of action frame + */ + int getFrameIndex(); + + /** + * Changes the time of action frame + * + * @param fTime the time of action frame + */ + void setFrameTime(float fTime); + + /** + * Gets the time of action frame + * + * @return fTime the time of action frame + */ + float getFrameTime(); + + /** + * Changes the type of action frame + * + * @param frameType the type of action frame + */ + void setFrameType(int frameType); + + /** + * Gets the type of action frame + * + * @return the type of action frame + */ + int getFrameType(); + + /** + * Changes the easing type. + * + * @param easingType the easing type. + */ + void setEasingType(int easingType); + + /** + * Gets the easing type. + * + * @return the easing type. + */ + int getEasingType(); + + /** + * Gets the CCAction of ActionFrame. + * + * @parame fDuration the duration time of ActionFrame + * + * @return CCAction + */ + virtual Action* getAction(float fDuration); +protected: + int _frameType; + int _easingType; + int _frameIndex; + float _fTime; +}; + +class ActionMoveFrame:public ActionFrame +{ +public: + + /** + * Default constructor + */ + ActionMoveFrame(); + + /** + * Default destructor + */ + virtual ~ActionMoveFrame(); + + /** + * Changes the move action position. + * + * @param the move action position. + */ + void setPosition(Point pos); + + /** + * Gets the move action position. + * + * @return the move action position. + */ + Point getPosition(); + + /** + * Gets the CCAction of ActionFrame. + * + * @parame fDuration the duration time of ActionFrame + * + * @return CCAction + */ + virtual Action* getAction(float fDuration); +protected: + Point _position; +}; + +class ActionScaleFrame:public ActionFrame +{ +public: + + /** + * Default constructor + */ + ActionScaleFrame(); + + /** + * Default destructor + */ + virtual ~ActionScaleFrame(); + + /** + * Changes the scale action scaleX. + * + * @param the scale action scaleX. + */ + void setScaleX(float scaleX); + + /** + * Gets the scale action scaleX. + * + * @return the scale action scaleX. + */ + float getScaleX(); + + /** + * Changes the scale action scaleY. + * + * @param rotation the scale action scaleY. + */ + void setScaleY(float scaleY); + + /** + * Gets the scale action scaleY. + * + * @return the the scale action scaleY. + */ + float getScaleY(); + + /** + * Gets the CCAction of ActionFrame. + * + * @parame fDuration the duration time of ActionFrame + * + * @return CCAction + */ + virtual Action* getAction(float fDuration); +protected: + float _scaleX; + float _scaleY; +}; + +class ActionRotationFrame:public ActionFrame +{ +public: + + /** + * Default constructor + */ + ActionRotationFrame(); + + /** + * Default destructor + */ + virtual ~ActionRotationFrame(); + + /** + * Changes rotate action rotation. + * + * @param rotation rotate action rotation. + */ + void setRotation(float rotation); + + /** + * Gets the rotate action rotation. + * + * @return the rotate action rotation. + */ + float getRotation(); + + /** + * Gets the CCAction of ActionFrame. + * + * @parame fDuration the duration time of ActionFrame + * + * @return CCAction + */ + virtual Action* getAction(float fDuration); +protected: + float _rotation; +}; + +class ActionFadeFrame:public ActionFrame +{ +public: + + /** + * Default constructor + */ + ActionFadeFrame(); + + /** + * Default destructor + */ + virtual ~ActionFadeFrame(); + + /** + * Changes the fade action opacity. + * + * @param opacity the fade action opacity + */ + void setOpacity(int opacity); + + /** + * Gets the fade action opacity. + * + * @return the fade action opacity. + */ + int getOpacity(); + + /** + * Gets the CCAction of ActionFrame. + * + * @parame fDuration the duration time of ActionFrame + * + * @return CCAction + */ + virtual Action* getAction(float fDuration); +protected: + float _opacity; +}; + +class ActionTintFrame:public ActionFrame +{ + +public: + + /** + * Default constructor + */ + ActionTintFrame(); + + /** + * Default destructor + */ + virtual ~ActionTintFrame(); + + /** + * Changes the tint action color. + * + * @param ccolor the tint action color + */ + void setColor(Color3B ccolor); + + /** + * Gets the tint action color. + * + * @return the tint action color. + */ + Color3B getColor(); + + /** + * Gets the CCAction of ActionFrame. + * + * @parame fDuration the duration time of ActionFrame + * + * @return CCAction + */ + virtual Action* getAction(float fDuration); +protected: + Color3B _color; +}; + +NS_CC_EXT_END + +#endif diff --git a/extensions/CocoStudio/Action/CCActionFrameEasing.cpp b/extensions/CocoStudio/Action/CCActionFrameEasing.cpp new file mode 100644 index 0000000000..187adb8e8d --- /dev/null +++ b/extensions/CocoStudio/Action/CCActionFrameEasing.cpp @@ -0,0 +1,189 @@ +/**************************************************************************** + Copyright (c) 2013 cocos2d-x.org + + http://www.cocos2d-x.org + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + THE SOFTWARE. + ****************************************************************************/ + +#include +#include "CCActionFrameEasing.h" +#include "../Json/DictionaryHelper.h" +NS_CC_EXT_BEGIN + +#ifndef M_PI_X_2 +#define M_PI_X_2 (float)M_PI * 2.0f +#endif + +ActionFrameEasing::ActionFrameEasing() +{ + +} +ActionFrameEasing::~ActionFrameEasing() +{ + +} + +float ActionFrameEasing::bounceTime(float t) +{ + if (t < 1 / 2.75) { + return 7.5625f * t * t; + } + else if (t < 2 / 2.75) { + t -= 1.5f / 2.75f; + return 7.5625f * t * t + 0.75f; + } + else if (t < 2.5 / 2.75) { + t -= 2.25f / 2.75f; + return 7.5625f * t * t + 0.9375f; + } + + t -= 2.625f / 2.75f; + return 7.5625f * t * t + 0.984375f; +} + +float ActionFrameEasing::easeValue(float t) +{ + if (_type == FrameEasingType::kframeEasingInstant) + { + if (t < 1) return 0; + else return 1; + } + else if (_type == FrameEasingType::kframeEasingLinear) + { + return t; + } + else if (_type == FrameEasingType::kframeEasingCubicIn) + { + float rate = _fValue; + return powf(t,rate); + } + else if (_type == FrameEasingType::kframeEasingCubicOut) + { + float rate = _fValue; + return powf(t,1/rate); + } + else if (_type == FrameEasingType::kframeEasingCubicInOut) + { + float rate = _fValue; + t *= 2; + if (t < 1) + { + return 0.5f * powf (t, rate); + } + else + { + return 1.0f - 0.5f * powf(2-t, rate); + } + } + else if (_type == FrameEasingType::kframeEasingElasticIn) + { + float period = _fValue; + float newT = 0; + if (t == 0 || t == 1) + newT = t; + + else { + float s = period / 4; + t = t - 1; + newT = -powf(2, 10 * t) * sinf( (t-s) * M_PI_X_2 / period); + } + return newT; + } + else if (_type == FrameEasingType::kframeEasingElasticOut) + { + float period = _fValue; + float newT = 0; + if (t == 0 || t == 1) { + newT = t; + + } else { + float s = period / 4; + newT = powf(2, -10 * t) * sinf( (t-s) *M_PI_X_2 / period) + 1; + } + return newT; + } + else if (_type == FrameEasingType::kframeEasingElasticInOut) + { + float period = _fValue; + float newT = 0; + if( t == 0 || t == 1 ) + newT = t; + else { + t = t * 2; + if(! period ) + period = 0.3f * 1.5f; + float s = period / 4; + + t = t -1; + if( t < 0 ) + newT = -0.5f * powf(2, 10 * t) * sinf((t - s) * M_PI_X_2 / period); + else + newT = powf(2, -10 * t) * sinf((t - s) * M_PI_X_2 / period) * 0.5f + 1; + } + return newT; + } + else if (_type == FrameEasingType::kframeEasingBounceIn) + { + float newT = 1 - bounceTime(1-t); + return newT; + } + else if (_type == FrameEasingType::kframeEasingBounceOut) + { + float newT = bounceTime(t); + return newT; + } + else if (_type == FrameEasingType::kframeEasingBounceInOut) + { + float newT = 0; + if (t < 0.5) { + t = t * 2; + newT = (1 - bounceTime(1-t) ) * 0.5f; + } else + newT = bounceTime(t * 2 - 1) * 0.5f + 0.5f; + return newT; + } + else if (_type == FrameEasingType::kframeEasingBackIn) + { + float overshoot = 1.70158f; + return t * t * ((overshoot + 1) * t - overshoot); + } + else if (_type == FrameEasingType::kframeEasingBackOut) + { + float overshoot = 1.70158f; + t = t - 1; + return t * t * ((overshoot + 1) * t + overshoot) + 1; + } + else if (_type == FrameEasingType::kframeEasingBackInOut) + { + float overshoot = 1.70158f * 1.525f; + + t = t * 2; + if (t < 1) + return (t * t * ((overshoot + 1) * t - overshoot)) / 2; + else { + t = t - 2; + return (t * t * ((overshoot + 1) * t + overshoot)) / 2 + 1; + } + } + + return 0; +} + +NS_CC_EXT_END \ No newline at end of file diff --git a/extensions/CocoStudio/GUI/Action/UIActionManager.h b/extensions/CocoStudio/Action/CCActionFrameEasing.h similarity index 65% rename from extensions/CocoStudio/GUI/Action/UIActionManager.h rename to extensions/CocoStudio/Action/CCActionFrameEasing.h index a249b5582d..6b35c144b4 100644 --- a/extensions/CocoStudio/GUI/Action/UIActionManager.h +++ b/extensions/CocoStudio/Action/CCActionFrameEasing.h @@ -22,34 +22,50 @@ THE SOFTWARE. ****************************************************************************/ -#ifndef __UIACTIONMANAGER_H__ -#define __UIACTIONMANAGER_H__ +#ifndef __ActionFrameEasing_H__ +#define __ActionFrameEasing_H__ #include "cocos2d.h" #include "ExtensionMacros.h" -#include "UIAction.h" -#include "../../Json/CSContentJsonDictionary.h" +#include "../Json/CSContentJsonDictionary.h" NS_CC_EXT_BEGIN -class UIActionManager:public Object +enum FrameEasingType +{ + kframeEasingInstant, + + kframeEasingLinear, + + kframeEasingCubicIn, + kframeEasingCubicOut, + kframeEasingCubicInOut, + + kframeEasingElasticIn, + kframeEasingElasticOut, + kframeEasingElasticInOut, + + kframeEasingBounceIn, + kframeEasingBounceOut, + kframeEasingBounceInOut, + + kframeEasingBackIn, + kframeEasingBackOut, + kframeEasingBackInOut, +}; + +class ActionFrameEasing:public cocos2d::Object { protected: -// CCArray* m_ActionList;/*guiaction*/ - Dictionary* m_pActionDic; - + FrameEasingType _type; + float _fValue; public: - UIActionManager(); - virtual ~UIActionManager(); - static UIActionManager* shareManager(); - static void purgeUIActionManager(); + ActionFrameEasing(); + virtual ~ActionFrameEasing(); - UIAction* GetActionByName(const char* jsonName,const char* actionName); + float bounceTime(float t); - void PlayActionByName(const char* jsonName,const char* actionName); - - void initWithDictionary(const char* jsonName, cs::JsonDictionary* dic,UIWidget* root); - void releaseActions(); + float easeValue(float t); }; NS_CC_EXT_END diff --git a/extensions/CocoStudio/Action/CCActionManagerEx.cpp b/extensions/CocoStudio/Action/CCActionManagerEx.cpp new file mode 100644 index 0000000000..274169abb9 --- /dev/null +++ b/extensions/CocoStudio/Action/CCActionManagerEx.cpp @@ -0,0 +1,111 @@ +/**************************************************************************** + Copyright (c) 2013 cocos2d-x.org + + http://www.cocos2d-x.org + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + THE SOFTWARE. + ****************************************************************************/ + +#include "CCActionManagerEx.h" +#include "../Json/DictionaryHelper.h" + +NS_CC_EXT_BEGIN + +static ActionManagerEx* sharedActionManager = NULL; + +ActionManagerEx* ActionManagerEx::shareManager() +{ + if (!sharedActionManager) { + sharedActionManager = new ActionManagerEx(); + } + return sharedActionManager; +} + +void ActionManagerEx::purgeActionManager() +{ + CC_SAFE_DELETE(sharedActionManager); +} + +ActionManagerEx::ActionManagerEx() +: _pActionDic(NULL) +{ + _pActionDic = Dictionary::create(); + _pActionDic->retain(); +} + +ActionManagerEx::~ActionManagerEx() +{ + _pActionDic->removeAllObjects(); + _pActionDic->release(); +} + +void ActionManagerEx::initWithDictionary(const char* jsonName,cs::JsonDictionary *dic,Object* root) +{ + std::string path = jsonName; + int pos = path.find_last_of("/"); + std::string fileName = path.substr(pos+1,path.length()); + CCLOG("filename == %s",fileName.c_str()); + Array* actionList = Array::create(); + int actionCount = DICTOOL->getArrayCount_json(dic, "actionlist"); + for (int i=0; iautorelease(); + cs::JsonDictionary* actionDic = DICTOOL->getDictionaryFromArray_json(dic, "actionlist", i); + action->initWithDictionary(actionDic,root); + actionList->addObject(action); + CC_SAFE_DELETE(actionDic); + } + _pActionDic->setObject(actionList, fileName); +} + + +ActionObject* ActionManagerEx::getActionByName(const char* jsonName,const char* actionName) +{ + Array* actionList = (Array*)(_pActionDic->objectForKey(jsonName)); + if (!actionList) + { + return NULL; + } + for (unsigned int i=0; icount(); i++) + { + ActionObject* action = dynamic_cast(actionList->getObjectAtIndex(i)); + if (strcmp(actionName, action->getName()) == 0) + { + return action; + } + } + return NULL; +} + +void ActionManagerEx::playActionByName(const char* jsonName,const char* actionName) +{ + ActionObject* action = getActionByName(jsonName,actionName); + if (action) + { + action->play(); + } +} + +void ActionManagerEx::releaseActions() +{ + _pActionDic->removeAllObjects(); + +} + +NS_CC_EXT_END \ No newline at end of file diff --git a/extensions/CocoStudio/GUI/Action/UIAction.h b/extensions/CocoStudio/Action/CCActionManagerEx.h similarity index 50% rename from extensions/CocoStudio/GUI/Action/UIAction.h rename to extensions/CocoStudio/Action/CCActionManagerEx.h index eb8b8b9d83..5b6fc35052 100644 --- a/extensions/CocoStudio/GUI/Action/UIAction.h +++ b/extensions/CocoStudio/Action/CCActionManagerEx.h @@ -22,43 +22,71 @@ THE SOFTWARE. ****************************************************************************/ -#ifndef __UIACTION_H__ -#define __UIACTION_H__ +#ifndef __ActionMANAGER_H__ +#define __ActionMANAGER_H__ #include "cocos2d.h" #include "ExtensionMacros.h" -#include "UIActionNode.h" -#include "../../Json/CSContentJsonDictionary.h" +#include "CCActionObject.h" +#include "../Json/CSContentJsonDictionary.h" NS_CC_EXT_BEGIN -class UIAction : public Object +class ActionManagerEx:public Object { -protected: - cocos2d::Array* m_ActionNodeList;/*actionnode*/ - std::string m_name; public: - UIAction(); - virtual ~UIAction(); - - void Play(); - void Pause(); - void Stop(); - - void UpdateToFrameByIndex(int index); - - // -// CC_SYNTHESIZE(std::string, m_name, Name); - // - CC_SYNTHESIZE(bool, m_loop, Loop); - // - CC_SYNTHESIZE(float, m_fUnitTime, UnitTime); + /** + * Default constructor + */ + ActionManagerEx(); - void initWithDictionary(cs::JsonDictionary* dic,UIWidget* root); + /** + * Default destructor + */ + virtual ~ActionManagerEx(); - void setName(const char* name); - const char* getName() const; + /** + * Gets the static instance of ActionManager. + */ + static ActionManagerEx* shareManager(); + + /** + * Purges ActionManager point. + */ + static void purgeActionManager(); + + /** + * Gets an ActionObject with a name. + * + * @param jsonName UI file name + * + * @param actionName action name in the UI file. + * + * @return ActionObject which named as the param name + */ + ActionObject* getActionByName(const char* jsonName,const char* actionName); + + /** + * Play an Action with a name. + * + * @param jsonName UI file name + * + * @param actionName action name in teh UIfile. + */ + void playActionByName(const char* jsonName,const char* actionName); + + /*init properties with json dictionay*/ + void initWithDictionary(const char* jsonName,cs::JsonDictionary* dic,Object* root); + + /** + * Release all actions. + * + */ + void releaseActions(); + +protected: + Dictionary* _pActionDic; }; NS_CC_EXT_END diff --git a/extensions/CocoStudio/Action/CCActionNode.cpp b/extensions/CocoStudio/Action/CCActionNode.cpp new file mode 100644 index 0000000000..9b92ccf016 --- /dev/null +++ b/extensions/CocoStudio/Action/CCActionNode.cpp @@ -0,0 +1,468 @@ +/**************************************************************************** +Copyright (c) 2013 cocos2d-x.org + +http://www.cocos2d-x.org + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +****************************************************************************/ + +#include "CCActionNode.h" +#include "CCActionFrameEasing.h" +#include "../GUI/BaseClasses/UIWidget.h" +#include "../GUI/System/UIHelper.h" +#include "../Json/DictionaryHelper.h" + +NS_CC_EXT_BEGIN + + ActionNode::ActionNode() + : _currentFrameIndex(0) + , _destFrameIndex(0) + , _fUnitTime(0.1f) + , _actionTag(0) + , _actionSpawn(NULL) + , _action(NULL) + , _object(NULL) + , _frameArray(NULL) + , _frameArrayNum(0) +{ + _frameArray = Array::create(); + _frameArray->retain(); + + _frameArrayNum = (int)kKeyframeMax; + for(int i = 0; i < _frameArrayNum; i++) + { + Array* cArray = Array::create(); + _frameArray->addObject(cArray); + } +} + +ActionNode::~ActionNode() +{ + if (_action == NULL) + { + CC_SAFE_RELEASE(_actionSpawn); + } + else + { + CC_SAFE_RELEASE(_action); + } + + if (_frameArray != NULL) + { + _frameArray->removeAllObjects(); + CC_SAFE_RELEASE(_frameArray); + } + +} + +void ActionNode::initWithDictionary(cs::JsonDictionary *dic,Object* root) +{ + setActionTag(DICTOOL->getIntValue_json(dic, "ActionTag")); + int actionFrameCount = DICTOOL->getArrayCount_json(dic, "actionframelist"); + for (int i=0; igetDictionaryFromArray_json(dic, "actionframelist", i); + int frameInex = DICTOOL->getIntValue_json(actionFrameDic,"frameid"); + + bool existPosition = DICTOOL->checkObjectExist_json(actionFrameDic,"positionx"); + if (existPosition) + { + float positionX = DICTOOL->getFloatValue_json(actionFrameDic, "positionx"); + float positionY = DICTOOL->getFloatValue_json(actionFrameDic, "positiony"); + ActionMoveFrame* actionFrame = new ActionMoveFrame(); + actionFrame->setFrameIndex(frameInex); + actionFrame->setPosition(Point(positionX, positionY)); + Array* cActionArray = (Array*)_frameArray->getObjectAtIndex((int)kKeyframeMove); + cActionArray->addObject(actionFrame); + } + + bool existScale = DICTOOL->checkObjectExist_json(actionFrameDic,"scalex"); + if (existScale) + { + float scaleX = DICTOOL->getFloatValue_json(actionFrameDic, "scalex"); + float scaleY = DICTOOL->getFloatValue_json(actionFrameDic, "scaley"); + ActionScaleFrame* actionFrame = new ActionScaleFrame(); + actionFrame->setFrameIndex(frameInex); + actionFrame->setScaleX(scaleX); + actionFrame->setScaleY(scaleY); + Array* cActionArray = (Array*)_frameArray->getObjectAtIndex((int)kKeyframeScale); + cActionArray->addObject(actionFrame); + } + + bool existRotation = DICTOOL->checkObjectExist_json(actionFrameDic,"rotation"); + if (existRotation) + { + float rotation = DICTOOL->getFloatValue_json(actionFrameDic, "rotation"); + ActionRotationFrame* actionFrame = new ActionRotationFrame(); + actionFrame->setFrameIndex(frameInex); + actionFrame->setRotation(rotation); + Array* cActionArray = (Array*)_frameArray->getObjectAtIndex((int)kKeyframeRotate); + cActionArray->addObject(actionFrame); + } + + bool existOpacity = DICTOOL->checkObjectExist_json(actionFrameDic,"opacity"); + if (existOpacity) + { + int opacity = DICTOOL->getIntValue_json(actionFrameDic, "opacity"); + ActionFadeFrame* actionFrame = new ActionFadeFrame(); + actionFrame->setFrameIndex(frameInex); + actionFrame->setOpacity(opacity); + Array* cActionArray = (Array*)_frameArray->getObjectAtIndex((int)kKeyframeFade); + cActionArray->addObject(actionFrame); + } + + bool existColor = DICTOOL->checkObjectExist_json(actionFrameDic,"colorr"); + if (existColor) + { + int colorR = DICTOOL->getIntValue_json(actionFrameDic, "colorr"); + int colorG = DICTOOL->getIntValue_json(actionFrameDic, "colorg"); + int colorB = DICTOOL->getIntValue_json(actionFrameDic, "colorb"); + ActionTintFrame* actionFrame = new ActionTintFrame(); + actionFrame->setFrameIndex(frameInex); + actionFrame->setColor(Color3B(colorR,colorG,colorB)); + Array* cActionArray = (Array*)_frameArray->getObjectAtIndex((int)kKeyframeTint); + cActionArray->addObject(actionFrame); + } + + CC_SAFE_DELETE(actionFrameDic); + } + initActionNodeFromRoot(root); +} + +void ActionNode::initActionNodeFromRoot(Object* root) +{ + Node* rootNode = dynamic_cast(root); + if (rootNode != NULL) + { + log("Need a definition of for gameObject"); + } + else + { + UIWidget* rootWidget = dynamic_cast(root); + if (rootWidget != NULL) + { + UIWidget* widget = UIHelper::instance()->seekActionWidgetByActionTag(rootWidget, getActionTag()); + if (widget != NULL) + { + setObject(widget); + } + } + } +} + +void ActionNode::setUnitTime(float fTime) +{ + _fUnitTime = fTime; + this->refreshActionProperty(); +} + +float ActionNode::getUnitTime() +{ + return _fUnitTime; +} + +void ActionNode::setActionTag(int tag) +{ + _actionTag = tag; +} + +int ActionNode::getActionTag() +{ + return _actionTag; +} + +void ActionNode::setObject(Object* node) +{ + _object = node; +} + +Object* ActionNode::getObject() +{ + return _object; +} + +Node* ActionNode::getActionNode() +{ + Node* cNode = dynamic_cast(_object); + if (cNode != NULL) + { + return cNode; + } + else + { + UIWidget* rootWidget = dynamic_cast(_object); + if (rootWidget != NULL) + { + return rootWidget->getRenderer(); + } + } + return NULL; +} + +void ActionNode::insertFrame(int index, ActionFrame* frame) +{ + if (frame == NULL) + { + return; + } + int frameType = frame->getFrameType(); + Array* cArray = (Array*)_frameArray->getObjectAtIndex(frameType); + if (cArray == NULL) + { + return; + } + cArray->insertObject(frame,index); +} + +void ActionNode::addFrame(ActionFrame* frame) +{ + if (frame == NULL) + { + return; + } + int frameType = frame->getFrameType(); + Array* cArray = (Array*)_frameArray->getObjectAtIndex(frameType); + if (cArray == NULL) + { + return; + } + cArray->addObject(frame); +} + +void ActionNode::deleteFrame(ActionFrame* frame) +{ + if (frame == NULL) + { + return; + } + int frameType = frame->getFrameType(); + Array* cArray = (Array*)_frameArray->getObjectAtIndex(frameType); + if (cArray == NULL) + { + return; + } + cArray->removeObject(frame); +} + +void ActionNode::clearAllFrame() +{ + for (int i = 0; i < _frameArrayNum; i++) + { + _frameArray[i].removeAllObjects(); + } +} + +Spawn * ActionNode::refreshActionProperty() +{ + if ( _object == NULL ) + { + return NULL; + } + Array* cSpawnArray = Array::create(); + for (int n = 0; n < _frameArrayNum; n++) + { + Array* cArray = (Array*)(_frameArray->getObjectAtIndex(n)); + if (cArray == NULL || cArray->count() <= 0) + { + continue; + } + + Array* cSequenceArray = Array::create(); + int frameCount = cArray->count(); + for (int i = 0; i < frameCount; i++) + { + ActionFrame* frame = (ActionFrame*)(cArray->getObjectAtIndex(i)); + if (i == 0) + { + } + else + { + ActionFrame* srcFrame = (ActionFrame*)(cArray->getObjectAtIndex(i-1)); + float duration = (frame->getFrameIndex() - srcFrame->getFrameIndex()) * getUnitTime(); + Action* cAction = frame->getAction(duration); + cSequenceArray->addObject(cAction); + } + } + Sequence* cSequence = Sequence::create(cSequenceArray); + cSpawnArray->addObject(cSequence); + } + + if (_action == NULL) + { + CC_SAFE_RELEASE(_actionSpawn); + } + else + { + CC_SAFE_RELEASE(_action); + } + + _actionSpawn = Spawn::create(cSpawnArray); + return _actionSpawn; +} + +void ActionNode::playAction(bool bloop) +{ + if ( _object == NULL || _actionSpawn == NULL) + { + return; + } + + if (_action!=NULL) + { + _action->release(); + } + if (bloop) + { + _action = RepeatForever::create(_actionSpawn); + } + else + { + _action = Sequence::create(_actionSpawn, NULL); + } + _action->retain(); + + this->runAction(); + +} + +void ActionNode::runAction() +{ + Node* cNode = this->getActionNode(); + if (cNode != NULL && _action != NULL) + { + cNode->runAction(_action); + } +} + +void ActionNode::stopAction() +{ + Node* cNode = this->getActionNode(); + if (cNode != NULL && _action != NULL) + { + cNode->stopAction(_action); + } +} + +int ActionNode::getFirstFrameIndex() +{ + int frameindex = 99999; + for (int n = 0; n < _frameArrayNum; n++) + { + Array* cArray = (Array*)(_frameArray->getObjectAtIndex(n)); + if (cArray == NULL || cArray->count() <= 0) + { + continue; + } + + ActionFrame* frame = (ActionFrame*)(cArray->getObjectAtIndex(0)); + int iFrameIndex = frame->getFrameIndex(); + + if (frameindex > iFrameIndex) + { + frameindex = iFrameIndex; + } + } + + return frameindex; +} + +int ActionNode::getLastFrameIndex() +{ + int frameindex = -1; + for (int n = 0; n < _frameArrayNum; n++) + { + Array* cArray = (Array*)(_frameArray->getObjectAtIndex(n)); + if (cArray == NULL || cArray->count() <= 0) + { + continue; + } + int lastInex = cArray->count() - 1; + ActionFrame* frame = (ActionFrame*)(cArray->getObjectAtIndex(lastInex)); + int iFrameIndex = frame->getFrameIndex(); + + if (frameindex < iFrameIndex) + { + frameindex = iFrameIndex; + } + } + + return frameindex; +} +bool ActionNode::updateActionToTimeLine(float fTime) +{ + bool bFindFrame = false; + + ActionFrame* srcFrame = NULL; + ActionFrame* destFrame = NULL; + + for (int n = 0; n < _frameArrayNum; n++) + { + Array* cArray = (Array*)(_frameArray->getObjectAtIndex(n)); + if (cArray == NULL) + { + continue; + } + int frameCount = cArray->count(); + for (int i = 0; i < frameCount; i++) + { + ActionFrame* frame = (ActionFrame*)(cArray->getObjectAtIndex(i)); + + if (frame->getFrameIndex()*getUnitTime() == fTime) + { + this->easingToFrame(1.0f,1.0f,frame); + bFindFrame = true; + break; + } + else if (frame->getFrameIndex()*getUnitTime() > fTime) + { + if (i == 0) + { + this->easingToFrame(1.0f,1.0f,frame); + bFindFrame = false; + } + else + { + srcFrame = (ActionFrame*)(cArray->getObjectAtIndex(i-1)); + float duration = (frame->getFrameIndex() - srcFrame->getFrameIndex())*getUnitTime(); + float delaytime = fTime - srcFrame->getFrameIndex()*getUnitTime(); + this->easingToFrame(duration,1.0f,srcFrame); + //float easingTime = ActionFrameEasing::bounceTime(delaytime); + this->easingToFrame(duration,delaytime/duration,frame); + bFindFrame = true; + } + break; + } + } + } + return bFindFrame; +} + +void ActionNode::easingToFrame(float duration,float delayTime,ActionFrame* destFrame) +{ + Action* cAction = destFrame->getAction(duration); + Node* cNode = this->getActionNode(); + if (cAction == NULL || cNode == NULL) + { + return; + } + cAction->startWithTarget(cNode); + cAction->update(delayTime); +} + +NS_CC_EXT_END \ No newline at end of file diff --git a/extensions/CocoStudio/Action/CCActionNode.h b/extensions/CocoStudio/Action/CCActionNode.h new file mode 100644 index 0000000000..2c88a5a8cd --- /dev/null +++ b/extensions/CocoStudio/Action/CCActionNode.h @@ -0,0 +1,176 @@ +/**************************************************************************** + Copyright (c) 2013 cocos2d-x.org + + http://www.cocos2d-x.org + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + THE SOFTWARE. + ****************************************************************************/ + +#ifndef __ActionNODE_H__ +#define __ActionNODE_H__ + +#include "cocos2d.h" +#include "ExtensionMacros.h" +#include "CCActionFrame.h" +#include "../Json/CSContentJsonDictionary.h" + +NS_CC_EXT_BEGIN + +class ActionNode:public Object +{ +public: + + /** + * Default constructor + */ + ActionNode(); + + /** + * Default destructor + */ + virtual ~ActionNode(); + /** + * Sets the time interval of frame. + * + * @param fTime the time interval of frame + */ + void setUnitTime(float fTime); + + /** + * Gets the time interval of frame. + * + * @return fTime the time interval of frame + */ + float getUnitTime(); + /** + * Sets tag for ActionNode + * + * @param tag tag of ActionNode + */ + void setActionTag(int tag); + + /** + * Gets tag for ActionNode + * + * @return tag tag of ActionNode + */ + int getActionTag(); + + /** + * Sets node which will run a action. + * + * @param node which will run a action + */ + void setObject(Object* node); + + /** + * Gets node which will run a action. + * + * @return node which will run a action + */ + Object* getObject(); + + /** + * Insets a ActionFrame to ActionNode. + * + * @param index the index of ActionFrame + * + * @param frame the ActionFrame which will be inserted + */ + void insertFrame(int index, ActionFrame* frame); + + /** + * Pushs back a ActionFrame to ActionNode. + * + * @param frame the ActionFrame which will be added + */ + void addFrame(ActionFrame* frame); + + /** + * Remove a ActionFrame from ActionNode. + * + * @param frame the ActionFrame which will be removed + */ + void deleteFrame(ActionFrame* frame ); + + /** + * Remove all ActionFrames from ActionNode. + */ + void clearAllFrame(); + + /** + * Gets index of first ActionFrame. + * + * @return index of first ActionFrame + */ + int getFirstFrameIndex(); + + /** + * Gets index of last ActionFrame. + * + * @return index of last ActionFrame + */ + int getLastFrameIndex(); + + /** + * Updates action states to some time. + * + * @param fTime the time when need to update + */ + virtual bool updateActionToTimeLine(float fTime); + + /** + * Play the action. + * + * @param bloop true the + */ + virtual void playAction(bool bloop); + + /** + * Stop the action. + */ + virtual void stopAction(); + + /*init properties with a json dictionary*/ + virtual void initWithDictionary(cs::JsonDictionary* dic,Object* root); +protected: + int _currentFrameIndex; + int _destFrameIndex; + + float _fUnitTime; + + int _actionTag; + Spawn * _actionSpawn; + Action* _action; + Object* _object; + + Array* _frameArray; + int _frameArrayNum; + +protected: + virtual Node* getActionNode(); + virtual Spawn * refreshActionProperty(); + virtual void runAction(); + virtual void initActionNodeFromRoot(Object* root); + virtual void easingToFrame(float duration,float delayTime,ActionFrame* destFrame); +}; + +NS_CC_EXT_END + +#endif diff --git a/extensions/CocoStudio/Action/CCActionObject.cpp b/extensions/CocoStudio/Action/CCActionObject.cpp new file mode 100644 index 0000000000..f3ea0dc7e6 --- /dev/null +++ b/extensions/CocoStudio/Action/CCActionObject.cpp @@ -0,0 +1,174 @@ +/**************************************************************************** + Copyright (c) 2013 cocos2d-x.org + + http://www.cocos2d-x.org + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + THE SOFTWARE. + ****************************************************************************/ + +#include "CCActionObject.h" +#include "../Json/DictionaryHelper.h" + +NS_CC_EXT_BEGIN + +ActionObject::ActionObject() +: _actionNodeList(NULL) +, _name("") +, _loop(false) +, _bPause(false) +, _bPlaying(false) +, _fUnitTime(0.1f) +, _currentTime(0.0f) +{ + _actionNodeList = Array::create(); + _actionNodeList->retain(); +} + +ActionObject::~ActionObject() +{ + _actionNodeList->removeAllObjects(); + _actionNodeList->release(); +} + +void ActionObject::setName(const char* name) +{ + _name.assign(name); +} +const char* ActionObject::getName() +{ + return _name.c_str(); +} + +void ActionObject::setLoop(bool bLoop) +{ + _loop = bLoop; +} +bool ActionObject::getLoop() +{ + return _loop; +} + +void ActionObject::setUnitTime(float fTime) +{ + _fUnitTime = fTime; + int nodeNum = _actionNodeList->count(); + for ( int i = 0; i < nodeNum; i++ ) + { + ActionNode* actionNode = (ActionNode*)_actionNodeList->getObjectAtIndex(i); + actionNode->setUnitTime(_fUnitTime); + } +} +float ActionObject::getUnitTime() +{ + return _fUnitTime; +} + +float ActionObject::getCurrentTime() +{ + return _currentTime; +} + +void ActionObject::setCurrentTime(float fTime) +{ + _currentTime = fTime; +} + +bool ActionObject::isPlaying() +{ + return _bPlaying; +} + +void ActionObject::initWithDictionary(cs::JsonDictionary *dic,Object* root) +{ + setName(DICTOOL->getStringValue_json(dic, "name")); + setLoop(DICTOOL->getBooleanValue_json(dic, "loop")); + setUnitTime(DICTOOL->getFloatValue_json(dic, "unittime")); + int actionNodeCount = DICTOOL->getArrayCount_json(dic, "actionnodelist"); + for (int i=0; iautorelease(); + cs::JsonDictionary* actionNodeDic = DICTOOL->getDictionaryFromArray_json(dic, "actionnodelist", i); + actionNode->initWithDictionary(actionNodeDic,root); + actionNode->setUnitTime(getUnitTime()); + _actionNodeList->addObject(actionNode); + CC_SAFE_DELETE(actionNodeDic); + } +} + +void ActionObject::addActionNode(ActionNode* node) +{ + if (node == NULL) + { + return; + } + _actionNodeList->addObject(node); +} +void ActionObject::removeActionNode(ActionNode* node) +{ + if (node == NULL) + { + return; + } + _actionNodeList->removeObject(node); +} + +void ActionObject::play() +{ + stop(); + int frameNum = _actionNodeList->count(); + for ( int i = 0; i < frameNum; i++ ) + { + ActionNode* actionNode = (ActionNode*)_actionNodeList->getObjectAtIndex(i); + actionNode->playAction( getLoop()); + } +} + +void ActionObject::pause() +{ + _bPause = true; +} + +void ActionObject::stop() +{ + int frameNum = _actionNodeList->count(); + + for ( int i = 0; i < frameNum; i++ ) + { + ActionNode* actionNode = (ActionNode*)_actionNodeList->getObjectAtIndex(i); + actionNode->stopAction(); + } + + _bPause = false; +} + +void ActionObject::updateToFrameByTime(float fTime) +{ + _currentTime = fTime; + + int nodeNum = _actionNodeList->count(); + + for ( int i = 0; i < nodeNum; i++ ) + { + ActionNode* actionNode = (ActionNode*)_actionNodeList->getObjectAtIndex(i); + + actionNode->updateActionToTimeLine(fTime); + } +} + +NS_CC_EXT_END \ No newline at end of file diff --git a/extensions/CocoStudio/Action/CCActionObject.h b/extensions/CocoStudio/Action/CCActionObject.h new file mode 100644 index 0000000000..ed4d06cd31 --- /dev/null +++ b/extensions/CocoStudio/Action/CCActionObject.h @@ -0,0 +1,159 @@ +/**************************************************************************** + Copyright (c) 2013 cocos2d-x.org + + http://www.cocos2d-x.org + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + THE SOFTWARE. + ****************************************************************************/ + +#ifndef __ActionObject_H__ +#define __ActionObject_H__ + +#include "cocos2d.h" +#include "ExtensionMacros.h" +#include "CCActionNode.h" +#include "../Json/CSContentJsonDictionary.h" + +NS_CC_EXT_BEGIN + +class ActionObject:public Object +{ +public: + + /** + * Default constructor + */ + ActionObject(); + + /** + * Default destructor + */ + virtual ~ActionObject(); + + /** + * Sets name for object + * + * @param name name of object + */ + void setName(const char* name); + + /** + * Sets name for object + * + * @return name of object + */ + const char* getName(); + + /** + * Sets if the action will loop play. + * + * @param bLoop that if the action will loop play + */ + void setLoop(bool bLoop); + + /** + * Gets if the action will loop play. + * + * @return that if the action will loop play + */ + bool getLoop(); + + /** + * Sets the time interval of frame. + * + * @param fTime the time interval of frame + */ + void setUnitTime(float fTime); + + /** + * Gets the time interval of frame. + * + * @return fTime the time interval of frame + */ + float getUnitTime(); + + /** + * Sets the current time of frame. + * + * @param fTime the current time of frame + */ + void setCurrentTime(float fTime); + + /** + * Gets the current time of frame. + * + * @return fTime the current time of frame + */ + float getCurrentTime(); + + /** + * Return if the action is playing. + * + * @return true if the action is playing, false the otherwise + */ + bool isPlaying(); + + /** + * Play the action. + */ + void play(); + + /** + * Pause the action. + */ + void pause(); + + /** + * Stop the action. + */ + void stop(); + + /** + * Adds a ActionNode to play the action. + * + * @node the ActionNode which will play the action + */ + void addActionNode(ActionNode* node); + + /** + * Removes a ActionNode which play the action. + * + * @node the ActionNode which play the action + */ + void removeActionNode(ActionNode* node); + + /*update frame method*/ + void updateToFrameByTime(float fTime); + + /*init properties with a json dictionary*/ + void initWithDictionary(cs::JsonDictionary* dic,Object* root); + +protected: + Array* _actionNodeList;/*actionnode*/ + std::string _name; + bool _loop; + bool _bPause; + bool _bPlaying; + float _fUnitTime; + float _currentTime; +}; + +NS_CC_EXT_END + +#endif diff --git a/extensions/CocoStudio/GUI/Action/UIAction.cpp b/extensions/CocoStudio/GUI/Action/UIAction.cpp deleted file mode 100644 index 4944034828..0000000000 --- a/extensions/CocoStudio/GUI/Action/UIAction.cpp +++ /dev/null @@ -1,110 +0,0 @@ -/**************************************************************************** - Copyright (c) 2013 cocos2d-x.org - - http://www.cocos2d-x.org - - Permission is hereby granted, free of charge, to any person obtaining a copy - of this software and associated documentation files (the "Software"), to deal - in the Software without restriction, including without limitation the rights - to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - copies of the Software, and to permit persons to whom the Software is - furnished to do so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in - all copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - THE SOFTWARE. - ****************************************************************************/ - -#include "UIAction.h" -#include "UIActionNode.h" -#include "../../Json/DictionaryHelper.h" - - -NS_CC_EXT_BEGIN - -UIAction::UIAction() -{ - m_ActionNodeList = CCArray::create(); - m_ActionNodeList->retain(); -} - -UIAction::~UIAction() -{ - m_ActionNodeList->removeAllObjects(); - m_ActionNodeList->release(); -} - -void UIAction::initWithDictionary(cs::JsonDictionary *dic,UIWidget* root) -{ - setName(DICTOOL->getStringValue_json(dic, "name")); - setLoop(DICTOOL->getBooleanValue_json(dic, "loop")); - setUnitTime(DICTOOL->getFloatValue_json(dic, "unittime")); - int actionNodeCount = DICTOOL->getArrayCount_json(dic, "actionnodelist"); - for (int i=0; iautorelease(); - cs::JsonDictionary* actionNodeDic = DICTOOL->getDictionaryFromArray_json(dic, "actionnodelist", i); - actionNode->initWithDictionary(actionNodeDic,root); - m_ActionNodeList->addObject(actionNode); - CC_SAFE_DELETE(actionNodeDic); - } -} - -void UIAction::Play() -{ - Stop(); - int frameNum = m_ActionNodeList->count(); - for ( int i = 0; i < frameNum; i++ ) - { - UIActionNode* actionNode = (UIActionNode*)m_ActionNodeList->getObjectAtIndex(i); - actionNode->RunAction( getUnitTime(),getLoop() ); - } -} - -void UIAction::Pause() -{ - -} - -void UIAction::Stop() -{ - int frameNum = m_ActionNodeList->count(); - - for ( int i = 0; i < frameNum; i++ ) - { - UIActionNode* actionNode = (UIActionNode*)m_ActionNodeList->getObjectAtIndex(i); - actionNode->StopAction(); - } -} - -void UIAction::UpdateToFrameByIndex(int index) -{ - int frameNum = m_ActionNodeList->count(); - - for ( int i = 0; i < frameNum; i++ ) - { - UIActionNode* actionNode = (UIActionNode*)m_ActionNodeList->getObjectAtIndex(i); - - actionNode->UpdateToFrameByIndex(index); - } -} - -void UIAction::setName(const char* name) -{ - m_name = name; -} - -const char* UIAction::getName() const -{ - return m_name.c_str(); -} - -NS_CC_EXT_END \ No newline at end of file diff --git a/extensions/CocoStudio/GUI/Action/UIActionFrame.cpp b/extensions/CocoStudio/GUI/Action/UIActionFrame.cpp deleted file mode 100644 index 06a5384f00..0000000000 --- a/extensions/CocoStudio/GUI/Action/UIActionFrame.cpp +++ /dev/null @@ -1,51 +0,0 @@ -/**************************************************************************** - Copyright (c) 2013 cocos2d-x.org - - http://www.cocos2d-x.org - - Permission is hereby granted, free of charge, to any person obtaining a copy - of this software and associated documentation files (the "Software"), to deal - in the Software without restriction, including without limitation the rights - to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - copies of the Software, and to permit persons to whom the Software is - furnished to do so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in - all copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - THE SOFTWARE. - ****************************************************************************/ - -#include "UIActionFrame.h" -#include "../../Json/DictionaryHelper.h" - -NS_CC_EXT_BEGIN - -UIActionFrame::UIActionFrame() -{ - -} -UIActionFrame::~UIActionFrame() -{ - -} - -void UIActionFrame::initWithDictionary(cs::JsonDictionary *dic) -{ - setFrameId(DICTOOL->getIntValue_json(dic, "frameid")); - setStartTime(DICTOOL->getFloatValue_json(dic, "starttime")); - setPosition(Point(DICTOOL->getFloatValue_json(dic, "positionx"), DICTOOL->getFloatValue_json(dic, "positiony"))); - setScaleX(DICTOOL->getFloatValue_json(dic, "scalex")); - setScaleY(DICTOOL->getFloatValue_json(dic, "scaley")); - setRotation(DICTOOL->getFloatValue_json(dic, "rotation")); - setOpacity(DICTOOL->getIntValue_json(dic, "opacity")); - setColor(Color3B(DICTOOL->getIntValue_json(dic, "colorr"), DICTOOL->getIntValue_json(dic, "colorg"), DICTOOL->getIntValue_json(dic, "colorb"))); -} - -NS_CC_EXT_END \ No newline at end of file diff --git a/extensions/CocoStudio/GUI/Action/UIActionFrame.h b/extensions/CocoStudio/GUI/Action/UIActionFrame.h deleted file mode 100644 index 03518735f3..0000000000 --- a/extensions/CocoStudio/GUI/Action/UIActionFrame.h +++ /dev/null @@ -1,64 +0,0 @@ -/**************************************************************************** - Copyright (c) 2013 cocos2d-x.org - - http://www.cocos2d-x.org - - Permission is hereby granted, free of charge, to any person obtaining a copy - of this software and associated documentation files (the "Software"), to deal - in the Software without restriction, including without limitation the rights - to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - copies of the Software, and to permit persons to whom the Software is - furnished to do so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in - all copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - THE SOFTWARE. - ****************************************************************************/ - -#ifndef __UIACTIONFRAME_H__ -#define __UIACTIONFRAME_H__ - -#include "cocos2d.h" -#include "ExtensionMacros.h" -#include "../../Json/CSContentJsonDictionary.h" - -NS_CC_EXT_BEGIN - -class UIActionFrame:public Object -{ -protected: - -public: - UIActionFrame(); - virtual ~UIActionFrame(); - // - CC_SYNTHESIZE(int, m_frameId, FrameId); - // - CC_SYNTHESIZE(float, m_startTime, StartTime); - // - CC_SYNTHESIZE(Point, m_position, Position); - // - CC_SYNTHESIZE(float, m_scaleX, ScaleX); - // - CC_SYNTHESIZE(float, m_scaleY, ScaleY); - // - CC_SYNTHESIZE(float, m_rotation, Rotation); - // - CC_SYNTHESIZE(float, m_opacity, Opacity); - // - CC_SYNTHESIZE(Color3B, m_color, Color); - - void initWithDictionary(cs::JsonDictionary* dic); - -}; - -NS_CC_EXT_END - -#endif diff --git a/extensions/CocoStudio/GUI/Action/UIActionManager.cpp b/extensions/CocoStudio/GUI/Action/UIActionManager.cpp deleted file mode 100644 index 29eb424823..0000000000 --- a/extensions/CocoStudio/GUI/Action/UIActionManager.cpp +++ /dev/null @@ -1,112 +0,0 @@ -/**************************************************************************** - Copyright (c) 2013 cocos2d-x.org - - http://www.cocos2d-x.org - - Permission is hereby granted, free of charge, to any person obtaining a copy - of this software and associated documentation files (the "Software"), to deal - in the Software without restriction, including without limitation the rights - to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - copies of the Software, and to permit persons to whom the Software is - furnished to do so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in - all copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - THE SOFTWARE. - ****************************************************************************/ - -#include "UIActionManager.h" -#include "../../Json/DictionaryHelper.h" -#include "UIAction.h" - -NS_CC_EXT_BEGIN - -static UIActionManager* sharedActionManager = NULL; - -UIActionManager* UIActionManager::shareManager() -{ - if (!sharedActionManager) - { - sharedActionManager = new UIActionManager(); - } - return sharedActionManager; -} - -void UIActionManager::purgeUIActionManager() -{ - CC_SAFE_DELETE(sharedActionManager); -} - -UIActionManager::UIActionManager() -{ - m_pActionDic = CCDictionary::create(); - m_pActionDic->retain(); -} - -UIActionManager::~UIActionManager() -{ - m_pActionDic->removeAllObjects(); - m_pActionDic->release(); -} - -void UIActionManager::initWithDictionary(const char* jsonName,cs::JsonDictionary *dic,UIWidget* root) -{ - std::string path = jsonName; - int pos = path.find_last_of("/"); - std::string fileName = path.substr(pos+1,path.length()); - CCLOG("filename == %s",fileName.c_str()); - Array* actionList = Array::create(); - int actionCount = DICTOOL->getArrayCount_json(dic, "actionlist"); - for (int i=0; iautorelease(); - cs::JsonDictionary* actionDic = DICTOOL->getDictionaryFromArray_json(dic, "actionlist", i); - action->initWithDictionary(actionDic,root); - actionList->addObject(action); - CC_SAFE_DELETE(actionDic); - } - m_pActionDic->setObject(actionList, fileName); -} - -UIAction* UIActionManager::GetActionByName(const char* jsonName,const char* actionName) -{ - Array* actionList = (Array*)(m_pActionDic->objectForKey(jsonName)); - if (!actionList) - { - return NULL; - } - for (unsigned int i=0; icount(); i++) - { - UIAction* action = dynamic_cast(actionList->getObjectAtIndex(i)); - if (strcmp(actionName, action->getName()) == 0) - { - return action; - } - } - return NULL; -} - -void UIActionManager::PlayActionByName(const char* jsonName,const char* actionName) -{ - UIAction* action = GetActionByName(jsonName,actionName); - if (action) - { - action->Play(); - } -} - -/*temp */ -void UIActionManager::releaseActions() -{ - m_pActionDic->removeAllObjects(); -} - -NS_CC_EXT_END \ No newline at end of file diff --git a/extensions/CocoStudio/GUI/Action/UIActionNode.cpp b/extensions/CocoStudio/GUI/Action/UIActionNode.cpp deleted file mode 100644 index d3fdb0f92a..0000000000 --- a/extensions/CocoStudio/GUI/Action/UIActionNode.cpp +++ /dev/null @@ -1,228 +0,0 @@ -/**************************************************************************** - Copyright (c) 2013 cocos2d-x.org - - http://www.cocos2d-x.org - - Permission is hereby granted, free of charge, to any person obtaining a copy - of this software and associated documentation files (the "Software"), to deal - in the Software without restriction, including without limitation the rights - to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - copies of the Software, and to permit persons to whom the Software is - furnished to do so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in - all copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - THE SOFTWARE. - ****************************************************************************/ - -#include "UIActionNode.h" -#include "UIActionFrame.h" -#include "../../Json/DictionaryHelper.h" -#include "../System/UIHelper.h" - -NS_CC_EXT_BEGIN - -UIActionNode::UIActionNode() -{ - currentIndex = 0; - m_actionNode = NULL; - - m_action = NULL; - - m_ActionFrameList = Array::create(); - m_ActionFrameList->retain(); -} - -UIActionNode::~UIActionNode() -{ - if (m_action != NULL) - { - m_action->release(); - } - if (m_actionNode) - { - m_actionNode->setBindingAction(NULL); - } - m_ActionFrameList->removeAllObjects(); - m_ActionFrameList->release(); -} - -void UIActionNode::initWithDictionary(cs::JsonDictionary *dic,UIWidget* root) -{ - setActionTag(DICTOOL->getIntValue_json(dic, "ActionTag")); - int actionFrameCount = DICTOOL->getArrayCount_json(dic, "actionframelist"); - UIWidget* bindingWidget = CCUIHELPER->seekActionWidgetByActionTag(root, getActionTag()); - if (bindingWidget) - { - SetActionNode(bindingWidget); - bindingWidget->setBindingAction(this); - } - - for (int i=0; iautorelease(); - cs::JsonDictionary* actionFrameDic = DICTOOL->getDictionaryFromArray_json(dic, "actionframelist", i); - actionFrame->initWithDictionary(actionFrameDic); - m_ActionFrameList->addObject(actionFrame); - CC_SAFE_DELETE(actionFrameDic); - } -} - -void UIActionNode::SetActionNode(UIWidget* widget) -{ - m_actionNode = widget; - - //UpdateToFrameByIndex(currentIndex); -} - -void UIActionNode::releaseBindingWidget() -{ - m_actionNode = NULL; -} - -void UIActionNode::InsertFrame(int index, UIActionFrame* frame) -{ - m_ActionFrameList->insertObject(frame,index); -} - -void UIActionNode::AddFrame(UIActionFrame* frame) -{ - m_ActionFrameList->addObject(frame); -} - -void UIActionNode::DeleteFrame(UIActionFrame* frame) -{ - m_ActionFrameList->removeObject(frame); -} - -void UIActionNode::ClearAllFrame() -{ - m_ActionFrameList->removeAllObjects(); -} - -void UIActionNode::UpdateToFrameByIndex(int index) -{ - currentIndex = index; - - int frameNum = m_ActionFrameList->count(); - - bool bFindFrame = false; - - UIActionFrame* frame = NULL; - for (int i = 0; i < frameNum; i++) - { - frame = (UIActionFrame*)m_ActionFrameList->getObjectAtIndex(index); - if (frame->getFrameId() == index) - { - bFindFrame = true; - UpdateToFrame(frame); - break; - } - } - - if (!bFindFrame) - { - m_actionNode->setVisible(false); - } -} - -void UIActionNode::UpdateToFrame(UIActionFrame* frame) -{ - if ( m_actionNode == NULL || frame == NULL ) - { - return; - } - - m_actionNode->setRotation(frame->getRotation()); - m_actionNode->setScaleX(frame->getScaleX()); - m_actionNode->setScaleY(frame->getScaleY()); - m_actionNode->setPosition(frame->getPosition()); - m_actionNode->setOpacity(frame->getOpacity()); - m_actionNode->setColor(frame->getColor()); - -} - -void UIActionNode::RunAction(float fUnitTime, bool bloop) -{ - int frameNum = m_ActionFrameList->count(); - - if ( m_actionNode == NULL || frameNum <= 0 ) - { - return; - } - - Array* actionFrame = Array::create(); - - for ( int i = 0; i < frameNum; i++ ) - { - float duration; - - UIActionFrame* frame = (UIActionFrame*)m_ActionFrameList->getObjectAtIndex(i); - - if ( i == 0 ) - { - //duration = frame->getFrameId() * fUnitTime; - duration = 0.01f; - } - else - { - UIActionFrame* frame_pre = (UIActionFrame*)m_ActionFrameList->getObjectAtIndex(i-1); - duration = (frame->getFrameId() - frame_pre->getFrameId()) * fUnitTime; - } - - MoveTo* action_1 = MoveTo::create(duration,frame->getPosition()); - RotateTo* action_2 = RotateTo::create(duration,frame->getRotation()); - ScaleTo* action_3 = ScaleTo::create(duration,frame->getScaleX(),frame->getScaleY()); - FadeTo* action_4 = FadeTo::create(duration,frame->getOpacity()); - TintTo* action_5 = TintTo::create(duration,frame->getColor().r,frame->getColor().g,frame->getColor().b); - - Spawn * actionSpawn = Spawn::create(action_1,action_2,action_3,action_4,action_5, NULL); - actionFrame->addObject( actionSpawn ); - } - - if (bloop) - { - ActionInterval* actionInterval = dynamic_cast(Sequence::create(actionFrame)); - if (actionInterval) - { - if (m_actionNode) { - if (m_action!=NULL) - { - m_action->release(); - } - m_action = RepeatForever::create(actionInterval); - m_action->retain(); - m_actionNode->runAction(m_action); - } - } - } - else - { - if (m_actionNode) { - if (m_action!=NULL) - { - m_action->release(); - } - m_action = Sequence::create(actionFrame); - m_action->retain(); - m_actionNode->runAction(m_action); - } - } -} - -void UIActionNode::StopAction() -{ - if (m_actionNode) { - m_actionNode->stopAction(m_action); - } -} - -NS_CC_EXT_END \ No newline at end of file diff --git a/extensions/CocoStudio/GUI/Action/UIActionNode.h b/extensions/CocoStudio/GUI/Action/UIActionNode.h deleted file mode 100644 index 01d7cdde9e..0000000000 --- a/extensions/CocoStudio/GUI/Action/UIActionNode.h +++ /dev/null @@ -1,67 +0,0 @@ -/**************************************************************************** - Copyright (c) 2013 cocos2d-x.org - - http://www.cocos2d-x.org - - Permission is hereby granted, free of charge, to any person obtaining a copy - of this software and associated documentation files (the "Software"), to deal - in the Software without restriction, including without limitation the rights - to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - copies of the Software, and to permit persons to whom the Software is - furnished to do so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in - all copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - THE SOFTWARE. - ****************************************************************************/ - -#ifndef __UIACTIONNODE_H__ -#define __UIACTIONNODE_H__ - -#include "cocos2d.h" -#include "ExtensionMacros.h" -#include "../BaseClasses/UIWidget.h" -#include "UIActionFrame.h" -#include "../../Json/CSContentJsonDictionary.h" - -NS_CC_EXT_BEGIN - -class UIActionNode:public Object -{ -protected: - int currentIndex; - Action* m_action; - UIWidget* m_actionNode; - //data - Array* m_ActionFrameList;/*action frame*/ - CC_SYNTHESIZE(int, m_nActionTag, ActionTag); -public: - UIActionNode(); - virtual ~UIActionNode(); - - void SetActionNode(UIWidget* widget); - - void InsertFrame(int index, UIActionFrame* frame); - void AddFrame(UIActionFrame* frame); - void DeleteFrame(UIActionFrame* frame); - void ClearAllFrame(); - - void UpdateToFrameByIndex(int index); - void UpdateToFrame(UIActionFrame* frame); - - void RunAction(float fUnitTime, bool bloop); - void StopAction(); - void initWithDictionary(cs::JsonDictionary* dic,UIWidget* root); - void releaseBindingWidget(); -}; - -NS_CC_EXT_END - -#endif diff --git a/extensions/CocoStudio/GUI/BaseClasses/UIWidget.cpp b/extensions/CocoStudio/GUI/BaseClasses/UIWidget.cpp index 3a64c4667a..e120e12186 100644 --- a/extensions/CocoStudio/GUI/BaseClasses/UIWidget.cpp +++ b/extensions/CocoStudio/GUI/BaseClasses/UIWidget.cpp @@ -68,10 +68,7 @@ _sizeType(SIZE_ABSOLUTE), _sizePercent(Point::ZERO), _positionType(POSITION_ABSOLUTE), _positionPercent(Point::ZERO), -_isRunning(false), - -/*temp action*/ -_bindingAction(NULL) +_isRunning(false) { } @@ -1174,11 +1171,6 @@ int UIWidget::getActionTag() return _actionTag; } -void UIWidget::setBindingAction(UIActionNode *actionNode) -{ - _bindingAction = actionNode; -} - GUIRenderer::GUIRenderer(): _enabled(true) { diff --git a/extensions/CocoStudio/GUI/BaseClasses/UIWidget.h b/extensions/CocoStudio/GUI/BaseClasses/UIWidget.h index ce3c9e59a8..e0163645cd 100644 --- a/extensions/CocoStudio/GUI/BaseClasses/UIWidget.h +++ b/extensions/CocoStudio/GUI/BaseClasses/UIWidget.h @@ -883,7 +883,6 @@ public: /*temp action*/ void setActionTag(int tag); int getActionTag(); - void setBindingAction(UIActionNode* actionNode); protected: //call back function called when size changed. virtual void onSizeChanged(); @@ -955,9 +954,6 @@ protected: PositionType _positionType; Point _positionPercent; bool _isRunning; - - /*temp action*/ - UIActionNode* _bindingAction; }; class GUIRenderer : public NodeRGBA diff --git a/extensions/CocoStudio/GUI/System/CocosGUI.h b/extensions/CocoStudio/GUI/System/CocosGUI.h index 8fb10a5a4d..37651a694b 100644 --- a/extensions/CocoStudio/GUI/System/CocosGUI.h +++ b/extensions/CocoStudio/GUI/System/CocosGUI.h @@ -46,8 +46,6 @@ #include "../../Reader/CCSGUIReader.h" #include "UILayer.h" #include "../Layouts/LayoutExecutant.h" -/*temp action*/ -#include "../Action/UIActionManager.h" NS_CC_EXT_BEGIN const char* CocosGUIVersion(); diff --git a/extensions/CocoStudio/Reader/CCSGUIReader.cpp b/extensions/CocoStudio/Reader/CCSGUIReader.cpp index c58533dadc..57778d758a 100755 --- a/extensions/CocoStudio/Reader/CCSGUIReader.cpp +++ b/extensions/CocoStudio/Reader/CCSGUIReader.cpp @@ -24,7 +24,7 @@ #include "../GUI/System/CocosGUI.h" #include "../Json/DictionaryHelper.h" -//#include "../Action/UIActionManager.h" +#include "../Action/CCActionManagerEx.h" #include #include @@ -258,10 +258,10 @@ UIWidget* CCSGUIReader::widgetFromJsonFile(const char *fileName) // widget->setFileDesignSize(CCSizeMake(fileDesignWidth, fileDesignHeight)); cs::JsonDictionary* actions = DICTOOL->getSubDictionary_json(jsonDict, "animation"); /* *********temp********* */ -// UIActionManager::shareManager()->releaseActions(); +// ActionManager::shareManager()->releaseActions(); /* ********************** */ CCLOG("file name == [%s]",fileName); - UIActionManager::shareManager()->initWithDictionary(fileName,actions,widget); + ActionManagerEx::shareManager()->initWithDictionary(fileName,actions,widget); CC_SAFE_DELETE(widgetTree); CC_SAFE_DELETE(actions); diff --git a/extensions/cocos-ext.h b/extensions/cocos-ext.h index 5c8f14e5bf..64b302fdb6 100644 --- a/extensions/cocos-ext.h +++ b/extensions/cocos-ext.h @@ -77,7 +77,7 @@ #include "CocoStudio/Reader/CCSSceneReader.h" #include "CocoStudio/Reader/CCSGUIReader.h" - +#include "CocoStudio/Action/CCActionManagerEx.h" #include "CCDeprecated-ext.h" diff --git a/extensions/proj.emscripten/Makefile b/extensions/proj.emscripten/Makefile index 840e7564a5..5811dbca76 100644 --- a/extensions/proj.emscripten/Makefile +++ b/extensions/proj.emscripten/Makefile @@ -10,8 +10,8 @@ INCLUDES = -I$(COCOS_ROOT)/external \ -I../GUI/CCControlExtension \ -I../network \ -I../GUI/CCEditBox \ - -I../Components \ - -I../CCArmature + -I../CocoStudio/Components \ + -I../CocoStudio/Armature DEFINES += -DCC_ENABLE_CHIPMUNK_INTEGRATION=1 DEFINES += -D__CC_PLATFORM_IMAGE_CPP__ @@ -59,35 +59,65 @@ SOURCES = ../CCBReader/CCBFileLoader.cpp \ ../GUI/CCEditBox/CCEditBoxImplNone.cpp \ ../physics_nodes/CCPhysicsDebugNode.cpp \ ../physics_nodes/CCPhysicsSprite.cpp \ -../Components/CCComAttribute.cpp \ -../Components/CCComAudio.cpp \ -../Components/CCComController.cpp \ -../Components/CCInputDelegate.cpp \ -../CCArmature/CCArmature.cpp \ -../CCArmature/CCBone.cpp \ -../CCArmature/animation/CCArmatureAnimation.cpp \ -../CCArmature/animation/CCProcessBase.cpp \ -../CCArmature/animation/CCTween.cpp \ -../CCArmature/datas/CCDatas.cpp \ -../CCArmature/display/CCBatchNode.cpp \ -../CCArmature/display/CCDecorativeDisplay.cpp \ -../CCArmature/display/CCDisplayFactory.cpp \ -../CCArmature/display/CCDisplayManager.cpp \ -../CCArmature/display/CCShaderNode.cpp \ -../CCArmature/display/CCSkin.cpp \ -../CCArmature/external_tool/GLES-Render.cpp \ -../CCArmature/external_tool/Json/CSContentJsonDictionary.cpp \ -../CCArmature/external_tool/Json/lib_json/json_value.cpp \ -../CCArmature/external_tool/Json/lib_json/json_reader.cpp \ -../CCArmature/external_tool/Json/lib_json/json_writer.cpp \ -../CCArmature/physics/CCColliderDetector.cpp \ -../CCArmature/physics/CCPhysicsWorld.cpp \ -../CCArmature/utils/CCArmatureDataManager.cpp \ -../CCArmature/utils/CCDataReaderHelper.cpp \ -../CCArmature/utils/CCSpriteFrameCacheHelper.cpp \ -../CCArmature/utils/CCTransformHelp.cpp \ -../CCArmature/utils/CCTweenFunction.cpp \ -../CCArmature/utils/CCUtilMath.cpp \ +../CocoStudio/Armature/CCArmature.cpp \ +../CocoStudio/Armature/CCBone.cpp \ +../CocoStudio/Armature/animation/CCArmatureAnimation.cpp \ +../CocoStudio/Armature/animation/CCProcessBase.cpp \ +../CocoStudio/Armature/animation/CCTween.cpp \ +../CocoStudio/Armature/datas/CCDatas.cpp \ +../CocoStudio/Armature/display/CCBatchNode.cpp \ +../CocoStudio/Armature/display/CCDecorativeDisplay.cpp \ +../CocoStudio/Armature/display/CCDisplayFactory.cpp \ +../CocoStudio/Armature/display/CCDisplayManager.cpp \ +../CocoStudio/Armature/display/CCSkin.cpp \ +../CocoStudio/Armature/physics/CCColliderDetector.cpp \ +../CocoStudio/Armature/utils/CCArmatureDefine.cpp \ +../CocoStudio/Armature/utils/CCArmatureDataManager.cpp \ +../CocoStudio/Armature/utils/CCDataReaderHelper.cpp \ +../CocoStudio/Armature/utils/CCSpriteFrameCacheHelper.cpp \ +../CocoStudio/Armature/utils/CCTransformHelp.cpp \ +../CocoStudio/Armature/utils/CCTweenFunction.cpp \ +../CocoStudio/Armature/utils/CCUtilMath.cpp \ +../CocoStudio/Components/CCComAttribute.cpp \ +../CocoStudio/Components/CCComAudio.cpp \ +../CocoStudio/Components/CCComController.cpp \ +../CocoStudio/Components/CCComRender.cpp \ +../CocoStudio/Components/CCInputDelegate.cpp \ +../CocoStudio/GUI/BaseClasses/UIRootWidget.cpp \ +../CocoStudio/GUI/BaseClasses/UIWidget.cpp \ +../CocoStudio/GUI/Layouts/Layout.cpp \ +../CocoStudio/GUI/Layouts/LayoutExecutant.cpp \ +../CocoStudio/GUI/Layouts/LayoutParameter.cpp \ +../CocoStudio/GUI/Layouts/UILayoutDefine.cpp \ +../CocoStudio/GUI/System/CocosGUI.cpp \ +../CocoStudio/GUI/System/UIHelper.cpp \ +../CocoStudio/GUI/System/UIInputManager.cpp \ +../CocoStudio/GUI/System/UILayer.cpp \ +../CocoStudio/GUI/UIWidgets/UIButton.cpp \ +../CocoStudio/GUI/UIWidgets/UICheckBox.cpp \ +../CocoStudio/GUI/UIWidgets/UIImageView.cpp \ +../CocoStudio/GUI/UIWidgets/UILabel.cpp \ +../CocoStudio/GUI/UIWidgets/UILabelAtlas.cpp \ +../CocoStudio/GUI/UIWidgets/UILabelBMFont.cpp \ +../CocoStudio/GUI/UIWidgets/UILoadingBar.cpp \ +../CocoStudio/GUI/UIWidgets/UISlider.cpp \ +../CocoStudio/GUI/UIWidgets/UITextField.cpp \ +../CocoStudio/GUI/UIWidgets/ScrollWidget/UIDragPanel.cpp \ +../CocoStudio/GUI/UIWidgets/ScrollWidget/UIListView.cpp \ +../CocoStudio/GUI/UIWidgets/ScrollWidget/UIPageView.cpp \ +../CocoStudio/GUI/UIWidgets/ScrollWidget/UIScrollView.cpp \ +../CocoStudio/Json/CSContentJsonDictionary.cpp \ +../CocoStudio/Json/DictionaryHelper.cpp \ +../CocoStudio/Json/lib_json/json_reader.cpp \ +../CocoStudio/Json/lib_json/json_value.cpp \ +../CocoStudio/Json/lib_json/json_writer.cpp \ +../CocoStudio/Reader/CCSGUIReader.cpp \ +../CocoStudio/Reader/CCSSceneReader.cpp \ +../CocoStudio/Action/CCActionFrame.cpp \ +../CocoStudio/Action/CCActionFrameEasing.cpp \ +../CocoStudio/Action/CCActionManagerEx.cpp \ +../CocoStudio/Action/CCActionNode.cpp \ +../CocoStudio/Action/CCActionObject.cpp \ ../CCDeprecated-ext.cpp include $(COCOS_ROOT)/cocos2dx/proj.emscripten/cocos2dx.mk diff --git a/extensions/proj.linux/Makefile b/extensions/proj.linux/Makefile index f2dd2fb23a..d491fc23ab 100644 --- a/extensions/proj.linux/Makefile +++ b/extensions/proj.linux/Makefile @@ -10,8 +10,8 @@ INCLUDES = -I$(COCOS_ROOT)/external \ -I../GUI/CCControlExtension \ -I../GUI/CCEditBox \ -I../network \ - -I../Components \ - -I../CCArmature + -I../CocoStudio/Components \ + -I../CocoStudio/Armature SOURCES = ../CCBReader/CCBFileLoader.cpp \ ../CCBReader/CCMenuItemImageLoader.cpp \ @@ -81,10 +81,6 @@ SOURCES = ../CCBReader/CCBFileLoader.cpp \ ../CocoStudio/Components/CCComController.cpp \ ../CocoStudio/Components/CCComRender.cpp \ ../CocoStudio/Components/CCInputDelegate.cpp \ -../CocoStudio/GUI/Action/UIAction.cpp \ -../CocoStudio/GUI/Action/UIActionFrame.cpp \ -../CocoStudio/GUI/Action/UIActionManager.cpp \ -../CocoStudio/GUI/Action/UIActionNode.cpp \ ../CocoStudio/GUI/BaseClasses/UIRootWidget.cpp \ ../CocoStudio/GUI/BaseClasses/UIWidget.cpp \ ../CocoStudio/GUI/Layouts/Layout.cpp \ @@ -115,6 +111,11 @@ SOURCES = ../CCBReader/CCBFileLoader.cpp \ ../CocoStudio/Json/lib_json/json_writer.cpp \ ../CocoStudio/Reader/CCSGUIReader.cpp \ ../CocoStudio/Reader/CCSSceneReader.cpp \ +../CocoStudio/Action/CCActionFrame.cpp \ +../CocoStudio/Action/CCActionFrameEasing.cpp \ +../CocoStudio/Action/CCActionManagerEx.cpp \ +../CocoStudio/Action/CCActionNode.cpp \ +../CocoStudio/Action/CCActionObject.cpp \ ../spine/Animation.cpp \ ../spine/AnimationState.cpp \ ../spine/AnimationStateData.cpp \ diff --git a/extensions/proj.nacl/Makefile b/extensions/proj.nacl/Makefile index 7e99f3eaca..48cd332a41 100644 --- a/extensions/proj.nacl/Makefile +++ b/extensions/proj.nacl/Makefile @@ -68,12 +68,41 @@ EXTENSIONS_SOURCES = ../CCBReader/CCBFileLoader.cpp \ ../CocoStudio/Components/CCComController.cpp \ ../CocoStudio/Components/CCComRender.cpp \ ../CocoStudio/Components/CCInputDelegate.cpp \ +../CocoStudio/GUI/BaseClasses/UIRootWidget.cpp \ +../CocoStudio/GUI/BaseClasses/UIWidget.cpp \ +../CocoStudio/GUI/Layouts/Layout.cpp \ +../CocoStudio/GUI/Layouts/LayoutExecutant.cpp \ +../CocoStudio/GUI/Layouts/LayoutParameter.cpp \ +../CocoStudio/GUI/Layouts/UILayoutDefine.cpp \ +../CocoStudio/GUI/System/CocosGUI.cpp \ +../CocoStudio/GUI/System/UIHelper.cpp \ +../CocoStudio/GUI/System/UIInputManager.cpp \ +../CocoStudio/GUI/System/UILayer.cpp \ +../CocoStudio/GUI/UIWidgets/UIButton.cpp \ +../CocoStudio/GUI/UIWidgets/UICheckBox.cpp \ +../CocoStudio/GUI/UIWidgets/UIImageView.cpp \ +../CocoStudio/GUI/UIWidgets/UILabel.cpp \ +../CocoStudio/GUI/UIWidgets/UILabelAtlas.cpp \ +../CocoStudio/GUI/UIWidgets/UILabelBMFont.cpp \ +../CocoStudio/GUI/UIWidgets/UILoadingBar.cpp \ +../CocoStudio/GUI/UIWidgets/UISlider.cpp \ +../CocoStudio/GUI/UIWidgets/UITextField.cpp \ +../CocoStudio/GUI/UIWidgets/ScrollWidget/UIDragPanel.cpp \ +../CocoStudio/GUI/UIWidgets/ScrollWidget/UIListView.cpp \ +../CocoStudio/GUI/UIWidgets/ScrollWidget/UIPageView.cpp \ +../CocoStudio/GUI/UIWidgets/ScrollWidget/UIScrollView.cpp \ ../CocoStudio/Json/CSContentJsonDictionary.cpp \ ../CocoStudio/Json/DictionaryHelper.cpp \ ../CocoStudio/Json/lib_json/json_value.cpp \ ../CocoStudio/Json/lib_json/json_reader.cpp \ ../CocoStudio/Json/lib_json/json_writer.cpp \ ../CocoStudio/Reader/CCSSceneReader.cpp \ +../CocoStudio/Reader/CCSGUIReader.cpp \ +../CocoStudio/Action/CCActionFrame.cpp \ +../CocoStudio/Action/CCActionFrameEasing.cpp \ +../CocoStudio/Action/CCActionManagerEx.cpp \ +../CocoStudio/Action/CCActionNode.cpp \ +../CocoStudio/Action/CCActionObject.cpp \ ../spine/Animation.cpp \ ../spine/AnimationState.cpp \ ../spine/AnimationStateData.cpp \ diff --git a/extensions/proj.win32/libExtensions.vcxproj b/extensions/proj.win32/libExtensions.vcxproj index 62fa470bff..2ef0096015 100644 --- a/extensions/proj.win32/libExtensions.vcxproj +++ b/extensions/proj.win32/libExtensions.vcxproj @@ -117,6 +117,11 @@ + + + + + @@ -141,10 +146,6 @@ - - - - @@ -251,6 +252,11 @@ + + + + + @@ -275,10 +281,6 @@ - - - - diff --git a/extensions/proj.win32/libExtensions.vcxproj.filters b/extensions/proj.win32/libExtensions.vcxproj.filters index 8a6b82a9bd..ed8522231e 100644 --- a/extensions/proj.win32/libExtensions.vcxproj.filters +++ b/extensions/proj.win32/libExtensions.vcxproj.filters @@ -67,9 +67,6 @@ {9af947f9-84cd-4051-953e-67291da6528c} - - {6ad66a63-e7d6-4285-b30a-7ab70a299f7e} - {9713ac75-d9ba-494a-8dcf-03e30f8ee2b2} @@ -85,6 +82,9 @@ {1c44450b-d06e-4638-9f0c-1ff62e67ec84} + + {bec3cdd7-e05b-42d3-97b1-86e26a528a2d} + @@ -427,18 +427,6 @@ CocoStudio\GUI\UIWidgets - - CocoStudio\GUI\Action - - - CocoStudio\GUI\Action - - - CocoStudio\GUI\Action - - - CocoStudio\GUI\Action - CocoStudio\GUI\BaseClasses @@ -511,18 +499,6 @@ CocoStudio\GUI\UIWidgets - - CocoStudio\GUI\Action - - - CocoStudio\GUI\Action - - - CocoStudio\GUI\Action - - - CocoStudio\GUI\Action - CocoStudio\GUI\BaseClasses @@ -556,6 +532,21 @@ CocoStudio\Reader + + CocoStudio\Action + + + CocoStudio\Action + + + CocoStudio\Action + + + CocoStudio\Action + + + CocoStudio\Action + @@ -866,9 +857,6 @@ CocoStudio\Armature - - CocoStudio\Armature\external_tool - CocoStudio\Json @@ -953,18 +941,6 @@ CocoStudio\GUI\UIWidgets - - CocoStudio\GUI\Action - - - CocoStudio\GUI\Action - - - CocoStudio\GUI\Action - - - CocoStudio\GUI\Action - CocoStudio\GUI\BaseClasses @@ -998,6 +974,21 @@ CocoStudio\Reader + + CocoStudio\Action + + + CocoStudio\Action + + + CocoStudio\Action + + + CocoStudio\Action + + + CocoStudio\Action + @@ -1013,4 +1004,4 @@ CocoStudio\Json\lib_json - + \ No newline at end of file diff --git a/samples/Cpp/TestCpp/Classes/ExtensionsTest/CocoStudioGUITest/CocosGUIScene.cpp b/samples/Cpp/TestCpp/Classes/ExtensionsTest/CocoStudioGUITest/CocosGUIScene.cpp index 4d17896184..a0f5cd550a 100644 --- a/samples/Cpp/TestCpp/Classes/ExtensionsTest/CocoStudioGUITest/CocosGUIScene.cpp +++ b/samples/Cpp/TestCpp/Classes/ExtensionsTest/CocoStudioGUITest/CocosGUIScene.cpp @@ -18,7 +18,7 @@ CocosGUITestScene::CocosGUITestScene(bool bPortrait) CocosGUITestScene::~CocosGUITestScene() { cocos2d::extension::SceneReader::getInstance()->purgeSceneReader(); - cocos2d::extension::UIActionManager::purgeUIActionManager(); + cocos2d::extension::ActionManagerEx::purgeActionManager(); cocos2d::extension::UIHelper::purgeUIHelper(); } diff --git a/samples/Cpp/TestCpp/Classes/ExtensionsTest/CocoStudioSceneTest/SceneEditorTest.cpp b/samples/Cpp/TestCpp/Classes/ExtensionsTest/CocoStudioSceneTest/SceneEditorTest.cpp index ffff9ad307..55083983af 100644 --- a/samples/Cpp/TestCpp/Classes/ExtensionsTest/CocoStudioSceneTest/SceneEditorTest.cpp +++ b/samples/Cpp/TestCpp/Classes/ExtensionsTest/CocoStudioSceneTest/SceneEditorTest.cpp @@ -8,9 +8,9 @@ using namespace cocos2d::extension; SceneEditorTestLayer::~SceneEditorTestLayer() { - armature::ArmatureDataManager::purge(); + armature::ArmatureDataManager::getInstance()->purge(); SceneReader::getInstance()->purgeSceneReader(); - cocos2d::extension::UIActionManager::shareManager()->purgeUIActionManager(); + cocos2d::extension::ActionManagerEx::shareManager()->purgeActionManager(); cocos2d::extension::UIHelper::instance()->purgeUIHelper(); } @@ -77,7 +77,7 @@ cocos2d::Node* SceneEditorTestLayer::createGameScene() pNode->addChild(menuBack); //ui action - cocos2d::extension::UIActionManager::shareManager()->PlayActionByName("startMenu_1.json","Animation1"); + cocos2d::extension::ActionManagerEx::shareManager()->playActionByName("startMenu_1.json","Animation1"); return pNode; }