diff --git a/Easy2D/Action/ActionFrames.cpp b/Easy2D/Action/ActionFrames.cpp
index c04a3744..582bf48b 100644
--- a/Easy2D/Action/ActionFrames.cpp
+++ b/Easy2D/Action/ActionFrames.cpp
@@ -18,6 +18,7 @@ ActionFrames::~ActionFrames()
{
for (auto frame : m_vFrames)
{
+ frame->autoRelease();
frame->release();
}
}
@@ -42,6 +43,7 @@ void ActionFrames::_exec(steady_clock::time_point nNow)
if (m_nFrameIndex == m_vFrames.size())
{
this->stop();
+ break;
}
}
}
diff --git a/Easy2D/Action/ActionMoveBy.cpp b/Easy2D/Action/ActionMoveBy.cpp
index a61207ef..ebc83a66 100644
--- a/Easy2D/Action/ActionMoveBy.cpp
+++ b/Easy2D/Action/ActionMoveBy.cpp
@@ -19,7 +19,7 @@ void ActionMoveBy::_init()
void ActionMoveBy::_exec(steady_clock::time_point nNow)
{
- if (Animation::_isDelayEnough(nNow))
+ while (Animation::_isDelayEnough(nNow))
{
// 计算移动位置
float scale = float(m_nDuration) / m_nTotalDuration;
@@ -30,6 +30,7 @@ void ActionMoveBy::_exec(steady_clock::time_point nNow)
if (_isEnd())
{
this->stop();
+ break;
}
}
}
diff --git a/Easy2D/Action/ActionOpacityBy.cpp b/Easy2D/Action/ActionOpacityBy.cpp
index da200578..2d9ea7c0 100644
--- a/Easy2D/Action/ActionOpacityBy.cpp
+++ b/Easy2D/Action/ActionOpacityBy.cpp
@@ -19,7 +19,7 @@ void ActionOpacityBy::_init()
void ActionOpacityBy::_exec(steady_clock::time_point nNow)
{
- if (Animation::_isDelayEnough(nNow))
+ while (Animation::_isDelayEnough(nNow))
{
// 计算移动位置
float scale = float(m_nDuration) / m_nTotalDuration;
@@ -29,6 +29,7 @@ void ActionOpacityBy::_exec(steady_clock::time_point nNow)
if (_isEnd())
{
this->stop();
+ break;
}
}
}
diff --git a/Easy2D/Action/ActionScaleBy.cpp b/Easy2D/Action/ActionScaleBy.cpp
index 768072fc..b86f0f5c 100644
--- a/Easy2D/Action/ActionScaleBy.cpp
+++ b/Easy2D/Action/ActionScaleBy.cpp
@@ -21,7 +21,7 @@ void ActionScaleBy::_init()
void ActionScaleBy::_exec(steady_clock::time_point nNow)
{
- if (Animation::_isDelayEnough(nNow))
+ while (Animation::_isDelayEnough(nNow))
{
// 计算移动位置
float scale = float(m_nDuration) / m_nTotalDuration;
@@ -31,6 +31,7 @@ void ActionScaleBy::_exec(steady_clock::time_point nNow)
if (_isEnd())
{
this->stop();
+ break;
}
}
}
diff --git a/Easy2D/Easy2D.vcxproj b/Easy2D/Easy2D.vcxproj
index ce91ac53..b9c06cd1 100644
--- a/Easy2D/Easy2D.vcxproj
+++ b/Easy2D/Easy2D.vcxproj
@@ -287,7 +287,7 @@
true
WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)
true
- EditAndContinue
+ None
Console