private void SetFramesets(ref List<OTAnimationFrameset> framesetsList, ref List<string> frameNamesList, OTContainer container)
    {
        if( framesetsList == null )
            framesetsList = new List<OTAnimationFrameset>();
        if( frameNamesList == null )
            frameNamesList = new List<string>();

        int startFrameIndex = 0;
        int endFrameIndex = -1;
        int index = 0;

        string preClearFrameName = null;

        OTAtlasData[] datas = container.GetComponent<OTSpriteAtlasCocos2D>().atlasData;
        foreach( OTAtlasData data in datas )
        {
            string frameName = data.name;

            string currentClearFrameName = GetFrameNameWithoutIndex( frameName );

            if( preClearFrameName == null )
            {
                preClearFrameName = currentClearFrameName;
            }

            if( currentClearFrameName != preClearFrameName || index == datas.Length - 1 )
            {
                endFrameIndex = ( index == datas.Length - 1 )? index : index - 1;

                OTAnimationFrameset frameset = CreateFrameset( preClearFrameName, container, startFrameIndex, endFrameIndex );

                framesetsList.Add( frameset );
                frameNamesList.Add( preClearFrameName );

                startFrameIndex = index;
                preClearFrameName = currentClearFrameName;
            }

            index++;
        }
    }