예제 #1
0
        ///// <summary>
        ///// 计算速度 //TODO 没用的东西
        ///// </summary>
        ///// <returns></returns>
        //private float CalSpeed()
        //{
        //    if (mUseSpeed && mSpeed > 0)
        //    {
        //        return mSpeed;
        //    }
        //    else
        //    {
        //        if (!mIsSpeedInit)
        //        {
        //            mSpeed = mDuration == 0 ? 9999999.0f : (1.0f / mDuration);
        //            mIsSpeedInit = true;
        //        }
        //        return mSpeed;
        //    }
        //}

        /// <summary>
        /// 解析动画类型,分析动画按照何种方式运行,返回False,动画执行完毕,True则需要继续处理动画类型解析
        /// </summary>
        /// <param name="actionType"></param>
        /// <param name="actionState"></param>
        /// <returns></returns>
        private bool ParseActionType(ActionEnum.ActionType actionType, ActionEnum.ActionState actionState)
        {
            switch (actionType)
            {
            case ActionEnum.ActionType.Loop:
                mHasUpdateTime = 0;
                ++mTempLoopTime;
                bool isLoopFinish = mLoopTime == -1 ? true : mTempLoopTime < mLoopTime;
                if (isLoopFinish)
                {
                    if (mOnLoopComplete != null)
                    {
                        OnTweenCallback(mOnLoopComplete);
                    }
                }
                return(isLoopFinish);

            case ActionEnum.ActionType.Pingpang:
                if (actionState == ActionEnum.ActionState.Action)
                {
                    ChangedActionState(ActionEnum.ActionState.Revert);
                    return(true);
                }
                else if (actionState == ActionEnum.ActionState.Revert)
                {
                    mHasUpdateTime = 0;
                    ++mTempLoopTime;
                    bool isPingpangLoopFinish = mLoopTime == -1 ? true : mTempLoopTime < mLoopTime;
                    if (isPingpangLoopFinish)
                    {
                        ChangedActionState(ActionEnum.ActionState.Action);
                        if (mOnLoopComplete != null)
                        {
                            OnTweenCallback(mOnLoopComplete);
                        }
                    }
                    return(isPingpangLoopFinish);
                }
                break;

            case ActionEnum.ActionType.None:
            default:
                return(false);
            }
            return(false);
        }
예제 #2
0
 /// <summary>
 /// 设置动画类型
 /// </summary>
 /// <param name="tween"></param>
 /// <param name="actionType"></param>
 /// <returns></returns>
 public static ActionTween SetActionType(this ActionTween tween, ActionEnum.ActionType actionType)
 {
     tween.mActionType = actionType;
     return(tween);
 }