From e8659b96f42adb882bde9b3d8fca34d61dd30609 Mon Sep 17 00:00:00 2001 From: Nomango <569629550@qq.com> Date: Fri, 6 Oct 2017 01:41:06 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E4=BA=86ActionManager?= =?UTF-8?q?=E5=9C=A8=E5=8A=A8=E4=BD=9C=E6=89=A7=E8=A1=8C=E6=97=B6=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0=E5=8A=A8=E4=BD=9C=E5=B4=A9=E6=BA=83=E7=9A=84bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Easy2D/Tool/ActionManager.cpp | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/Easy2D/Tool/ActionManager.cpp b/Easy2D/Tool/ActionManager.cpp index 69b8f9c9..13fb6297 100644 --- a/Easy2D/Tool/ActionManager.cpp +++ b/Easy2D/Tool/ActionManager.cpp @@ -9,18 +9,14 @@ void ActionManager::__exec() static LARGE_INTEGER nNow; QueryPerformanceCounter(&nNow); // 循环遍历所有正在运行的动作 - std::vector::iterator iter; - for (iter = s_vActions.begin(); iter != s_vActions.end();) + for (size_t i = 0; i < s_vActions.size(); i++) { - if ((*iter)->isRunning() && (*iter)->_exec(nNow)) + auto a = s_vActions[i]; + if (a->isRunning() && a->_exec(nNow)) { // _exec 返回 true 时说明动作已经结束 - (*iter)->release(); - iter = s_vActions.erase(iter); - } - else - { - iter++; + a->release(); + s_vActions.erase(s_vActions.begin() + i); } } }