Пример #1
0
        protected void SetNextScene()
        {
            bool runningIsTransition = m_pRunningScene != null && m_pRunningScene.IsTransition;// is CCTransitionScene;

            // If it is not a transition, call onExit/cleanup
            if (!m_pNextScene.IsTransition)
            {
                if (m_pRunningScene != null)
                {
                    m_pRunningScene.OnExit();

                    // issue #709. the root node (scene) should receive the cleanup message too
                    // otherwise it might be leaked.
                    if (m_bSendCleanupToScene)
                    {
                        m_pRunningScene.Cleanup();

                        GC.Collect();
                    }
                }
            }

            m_pRunningScene = m_pNextScene;
            m_pNextScene = null;

            if (!runningIsTransition && m_pRunningScene != null)
            {
                m_pRunningScene.OnEnter();
                m_pRunningScene.OnEnterTransitionDidFinish();
            }
        }