public static void Remove(GameSprite pNode)
        {
            //ensure call Create() first
            ProxySpriteMan pMan = ProxySpriteMan.GetInstance();

            Debug.Assert(pMan != null);

            Debug.Assert(pNode != null);
            pMan.baseRemove(pNode);
        }
        public static void Destory()
        {
            //ensure call Create() first
            ProxySpriteMan pMan = ProxySpriteMan.GetInstance();

            Debug.Assert(pMan != null);

            pMan.baseDestory();

            pMan.poNodeForCompare    = null;
            ProxySpriteMan.pInstance = null;
        }
        public static ProxySprite Find(ProxySprite.Name name)
        {
            //ensure call Create() first
            ProxySpriteMan pMan = ProxySpriteMan.GetInstance();

            Debug.Assert(pMan != null);

            pMan.poNodeForCompare.setName(name);

            ProxySprite pData = (ProxySprite)pMan.baseFind(pMan.poNodeForCompare);

            return(pData);
        }
        public static ProxySprite Add(GameSprite.Name name)
        {
            //ensure call Create() first
            ProxySpriteMan pMan = ProxySpriteMan.GetInstance();

            Debug.Assert(pMan != null);

            ProxySprite pProxySprite = (ProxySprite)pMan.baseAdd();

            Debug.Assert(pProxySprite != null);

            pProxySprite.set(name);
            return(pProxySprite);
        }
        public static void Reset()
        {
            //ensure call Create() first
            ProxySpriteMan pMan = ProxySpriteMan.GetInstance();

            Debug.Assert(pMan != null);

            ProxySprite pProxySprite = (ProxySprite)pMan.pActive;

            while (pProxySprite != null)
            {
                pProxySprite.deepClear();
                pProxySprite = (ProxySprite)pProxySprite.pNext;
            }

            pMan.baseSetActiveHead(null);
        }