return curSlicePriority_;
}
- // 当从一个Slice进入另一个Slice时调用
+ /* -------------------------------------------------------------------------- */
+
+ /// @brief 当从一个切片(Slice)进入另一个切片时被调用。
+ /// @param sliceId sliceId
+ /// @param transitionId 切换的动画类型
+ /// @param priority 切换优先级
void EnterSlice(uint16_t sliceId,const TransitionType transitionId = TransitionType::TRANSITION_INVALID,
const uint16_t priority = gSliceDefaultPriority) {
// 获取当前SliceID
}
// 处理后退操作
- bool Back(const TransitionType transitionId = TransitionType::TRANSITION_INVALID,
+
+ /// @brief 处理后退操作。
+ /// @param transitionId 切换的动画类型
+ /// @param priority 切换优先级
+ bool Back(const TransitionType transitionId = TransitionType::TRANSITION_INVALID,
const uint16_t priority = gSliceDefaultPriority) {
/*
if (backStack_.empty()) {
}
}
+ /// @brief 处理后退多级切片的操作。
+ /// @param transitionId 切换的动画类型
+ /// @param priority 切换优先级
+ /// @param count 指定的后退级数
+ bool BackCountSlice(const TransitionType transitionId = TransitionType::TRANSITION_INVALID,
+ const uint16_t priority = gSliceDefaultPriority,int count) {
+ //如果指定的后退级数 count 为 0 ,直接返回 false 。
+ if(count == 0) {
+ return false;
+ }
+ while(!backStack_.empty() && count != 0) //当 count 不为 0 且 backStack_ 栈不为空时,弹出栈顶元素 count 次。
+ {
+ backStack_.pop();
+ count--;
+ }
+ if(!backStack_.empty())
+ {
+ // 如果此时 backStack_ 栈不为空,取出栈顶的切片 ID ,并调用 ChangeSlice 切换到该切片,返回 true 。
+ uint16_t preSlice = backStack_.top();
+ ChangeSlice(preSlice,transitionId,priority);
+ return true;
+ }
+ else
+ {
+ //如果 backStack_ 栈为空,切换到默认切片,返回 false 。
+ ChangeSlice(defaultSliceId_, transitionId, priority);
+ return false; // 返回false表示无前一个slice,退回到默认slice
+ }
+ }
+
+ /*清空后退栈*/
void ClearSliceIdStack(void)
{
while(!backStack_.empty())
}
}
+ /*打印栈中元素*/
+ void showsStackSliceId()
+ {
+ printf("\n%d\n",backStack_.size());
+ std::stack<uint16_t> tempStack = backStack_;
+ printf("\n[");
+ while(!tempStack.empty())
+ {
+ printf("%d,",tempStack.top());
+ tempStack.pop();
+ }
+ printf("]\n");
+ printf("\n%d\n",backStack_.size());
+ }
+ /* -------------------------------------------------------------------------- */
+
protected:
Ability() = default;
virtual ~Ability() = default;