Beispiel #1
0
        /// <summary>
        /// 帧更新
        /// </summary>
        public void Update()
        {
            while (m_ListenedEvent.IsEmpty() == false)
            {
                System.Object objInfo = null;
                if (m_ListenedEvent.Pop(ref objInfo) == false || objInfo == null)
                {
                    continue;
                }
                CEventInfo info = objInfo as CEventInfo;
                if (info == null)
                {
                    continue;
                }
                UInt32        uEventId = info.GetEventId();
                System.Object objParam = info.GetEventParam();

                m_EventInfoPool.GiveBackObject(info);

                CHandleInfo handleInfo = null;
                if (m_EventActionList.QuickFind(uEventId, ref handleInfo) == false || handleInfo == null)
                {
                    continue;
                }
                bool bTriggerRet = handleInfo.TriggerHandle(objParam);
                if (bTriggerRet == false)
                {
                    BTDebug.Warning(string.Format("Trigger Event:{0} With Param:{2} Failed", uEventId, objParam), "ACTION");
                }
            }
        }
Beispiel #2
0
        /// <summary>
        /// 为事件移除一个回调
        /// </summary>
        /// <param name="uEventId"></param>
        /// <param name="handle"></param>
        /// <returns></returns>
        public bool RemoveHandle(UInt32 uEventId, HandleObjectAction handle)
        {
            CHandleInfo handleInfo = null;

            if (m_EventActionList.QuickFind(uEventId, ref handleInfo) == false || handleInfo == null)
            {
                return(false);
            }
            if (handleInfo.RemoveHandle(handle) == false)
            {
                return(false);
            }
            return(true);
        }
Beispiel #3
0
        /// <summary>
        /// 注册事件回调信息
        /// </summary>
        /// <param name="uEventId"></param>
        /// <param name="tArgsType"></param>
        /// <returns></returns>
        public bool RegisterAction(UInt32 uEventId, Type tArgsType, string strName = "")
        {
            CHandleInfo handInfo = null;

            if (m_EventActionList.QuickFind(uEventId, ref handInfo) == true)
            {
                return(false);
            }
            handInfo = new CHandleInfo();
            handInfo.SetArgType(tArgsType);
            if (string.IsNullOrEmpty(strName) == true)
            {
                strName = "Event_" + uEventId.ToString();
            }
            handInfo.SetName(strName);
            if (m_EventActionList.Add(uEventId, handInfo) == false)
            {
                return(false);
            }
            return(true);
        }