/// <summary> /// 停止播放动画 /// </summary> public void StopDisplay() { if (isPlaying) { isPlaying = false; TimerUtils.Stop(this.GetHashCode().ToString()); } }
/// <summary> /// 播放动画 /// </summary> /// <param name="loop">是否循环播放</param> /// <returns></returns> public bool StartDisplay(bool loop) { isLoop = loop; isFinished = false; isPlaying = true; TimerUtils.Start(currentFrame.NextFrameInterval, 111, this.GetHashCode().ToString(), DisplayCallBack); return(true); }
private void DisplayCallBack(int n) { LinkedListNode <AnimationFrame> node = allAniFrames.Find(currentFrame).Next; if (node != null) { currentFrame = node.Value; } else if (isLoop) { currentFrame = allAniFrames.First.Value; } else { isFinished = true; TimerUtils.Stop(this.GetHashCode().ToString()); } }
/// <summary> /// 启动计时器 /// </summary> /// <param name="interval">计时器间隔</param> /// <param name="count">计时次数</param> /// <param name="func">回调函数</param> /// <returns>是否启动成功</returns> public bool Start(float interval, int count, TimerUtils.TimerCallBackHandle func) { if (count <= 0 || interval < 0 || func == null) return false; if (isRunning || isPaused) { return false; } else { isPaused = false; isExpired = false; isRunning = true; this.interval = interval; this.remain = this.interval; this.limitCount = count; this.currentCount = 0; this.callback = func; } return true; }