Example #1
0
    /// <summary>
    /// 执行协成
    /// </summary>
    /// <param name="e"></param>
    /// <param name="type"></param>
    public void StartIenumrator(IEnumerator e, IeType type)
    {
        IenumratorEntity        ie     = null;
        List <IenumratorEntity> listIe = null;

        if (dicIe.TryGetValue(type, out listIe))
        {
            if (type == IeType.Voice)//没有执行完毕 可随时替换
            {
                ie = listIe[0];
            }
            else
            {
                ie = listIe.Find(tp => tp.currentIenumrator == null || tp.isPlayOver);//执行完的
                if (ie == null)
                {
                    ie      = new IenumratorEntity();
                    ie.type = type;
                    listIe.Add(ie);
                    dicIe[type] = listIe;
                }
            }
        }
        else
        {
            listIe  = new List <IenumratorEntity>();
            ie      = new IenumratorEntity();
            ie.type = type;
            listIe.Add(ie);
            dicIe.Add(type, listIe);
        }
        ie.currentIenumrator = e;
    }
Example #2
0
    /// <summary>
    /// 根据类型停止某个协成
    /// </summary>
    /// <param name="ty"></param>
    public void StopIeByType(IeType ty)
    {
        List <IenumratorEntity> listIe = null;

        if (dicIe.TryGetValue(ty, out listIe))
        {
            listIe.ForEach(m => m.isStartUp = false);
            dicIe.Remove(ty);
        }
    }