示例#1
0
 public static void Trigger(string strTriggerName, AsyncTrigger.OnTrigger onTrigger, params object[] args)
 {
     if (!AsyncTrigger.mTriggers.ContainsKey(strTriggerName))
     {
         return;
     }
     AsyncTrigger.TriggerInfo triggerInfo = AsyncTrigger.mTriggers[strTriggerName];
     triggerInfo.iTriggerCount--;
     if (triggerInfo.iTriggerCount > 0)
     {
         return;
     }
     if (onTrigger != null)
     {
         try
         {
             onTrigger(args);
         }
         catch (Exception ex)
         {
             LogSystem.LogError(new object[]
             {
                 ex.ToString()
             });
         }
     }
     AsyncTrigger.mTriggers.Remove(strTriggerName);
 }
示例#2
0
 public static void CreateFrameTrigger(int frameDelay, AsyncTrigger.OnTrigger onTrigger, params object[] args)
 {
     AsyncTrigger.FrameTriggerInfo frameTriggerInfo = new AsyncTrigger.FrameTriggerInfo();
     frameTriggerInfo.iFrameDelay = ((frameDelay >= 1) ? frameDelay : 1);
     frameTriggerInfo.onTrigger   = onTrigger;
     frameTriggerInfo.args        = args;
     AsyncTrigger.mFrameTrigger.Add(frameTriggerInfo);
 }
示例#3
0
 public static bool CreateTimeTrigger(string strTriggerName, float fDelayTime, AsyncTrigger.OnTrigger onTrigger, params object[] args)
 {
     if (AsyncTrigger.mTriggers.ContainsKey(strTriggerName))
     {
         return(false);
     }
     AsyncTrigger.TriggerInfo triggerInfo = new AsyncTrigger.TriggerInfo();
     triggerInfo.strTriggerName = strTriggerName;
     triggerInfo.onTrigger      = onTrigger;
     triggerInfo.args           = args;
     AsyncTrigger.mTriggers.Add(strTriggerName, triggerInfo);
     TimerManager.AddTimer(strTriggerName, fDelayTime, new TimerManager.TimerManagerHandlerArgs(AsyncTrigger.OnTriggerTimer), new object[]
     {
         strTriggerName,
         onTrigger
     });
     return(true);
 }