Пример #1
0
 /// <summary>
 /// 取消注册事件监听.
 /// </summary>
 /// <param name="index"></param>
 /// <param name="varFun"></param>
 public void UnRegisterEventReceiver(int index, EventFun varFun)
 {
     if (events.ContainsKey(index))
     {
         events[index].Remove(varFun);
     }
 }
Пример #2
0
 // -- event loop; --------------------------------------
 void loopEvent()
 {
     while (mevents.Count > 0)
     {
         EventFun ef = mevents.Dequeue();
         ef();
     }
 }
Пример #3
0
    //移除事件;varType:事件ID,varFun:等待被通知的方法;
    public void ReMoveEvent(int varType, EventFun <T> varFun)
    {
        List <EventFun <T> > funList;

        //如果有这个Key的键值对;
        if (mAllEvents.TryGetValue(varType, out funList))
        {
            funList.Remove(varFun);
        }
    }
Пример #4
0
    //添加事件;varType:事件ID,varFun:等待被通知的方法;
    public void AddEvent(int varType, EventFun <T> varFun)
    {
        List <EventFun <T> > funList;

        //如果没有这个Key的键值对;
        if (!mAllEvents.TryGetValue(varType, out funList))
        {
            //创建一个新的方法集合;
            funList = new List <EventFun <T> >();
            //将新的方法集合添加到字典(新的键值对);
            mAllEvents.Add(varType, funList);
        }
        //将等待被通知的方法加入到这件事情对应的集合;
        funList.Add(varFun);
    }
Пример #5
0
    /// <summary>
    /// 注册事件.
    /// </summary>
    /// <param name="index"></param>
    /// <param name="varFun"></param>
    public void RegisterEventReceiver(int index, EventFun varFun)
    {
        List <EventFun> eventFun = null;

        if (events.TryGetValue(index, out eventFun))
        {
            eventFun.Add(varFun);
        }
        else
        {
            eventFun = new List <EventFun>();

            eventFun.Add(varFun);

            events.Add(index, eventFun);
        }
    }
Пример #6
0
 /// <summary>
 /// 解注册事件
 /// </summary>
 /// <param name="type">事件类型</param>
 /// <param name="fun">需解的事件</param>
 public static void UnRegister(GameEventType type, EventFun <object> fun)
 {
     eventMan.UnRegisterEvent((int)type, fun);
 }
Пример #7
0
 /// <summary>
 /// 解注册
 /// </summary>
 /// <param name="state">事件ID</param>
 /// <param name="fun">需解注册的事件</param>
 public void UnRegisterEvent(PlayerCtrlState state, EventFun <object> fun)
 {
     eventMan.UnRegisterEvent((int)state, fun);
 }