public override void execute()
    {
        GameLayout layout = mLayoutManager.getGameLayout(mLayoutID);

        if (layout == null)
        {
            return;
        }
        // 自动计算渲染顺序的布局在显示时,需要重新计算当前渲染顺序
        LAYOUT_ORDER orderType = layout.getRenderOrderType();

        if (mVisibility && (orderType == LAYOUT_ORDER.ALWAYS_TOP_AUTO || orderType == LAYOUT_ORDER.AUTO))
        {
            int renderOrder = mLayoutManager.generateRenderOrder(layout, layout.getRenderOrder(), orderType);
            if (renderOrder != layout.getRenderOrder())
            {
                layout.setRenderOrder(renderOrder);
            }
        }
        if (!mForce)
        {
            layout.setVisible(mVisibility, mImmediately, mParam);
        }
        else
        {
            layout.setVisibleForce(mVisibility);
        }
    }
예제 #2
0
 //--------------------------------------------------------------------------------------------------------------------------------------------
 // 布局
 #region 布局
 public static void LOAD_LAYOUT(int id, int renderOrder, LAYOUT_ORDER orderType, bool visible, bool immediately, string param, bool isScene, bool isAsync, LayoutAsyncDone callback)
 {
     CMD(out CommandLayoutManagerLoad cmd, true, false);
     cmd.mLayoutID        = id;
     cmd.mVisible         = visible;
     cmd.mRenderOrder     = renderOrder;
     cmd.mOrderType       = orderType;
     cmd.mAsync           = isAsync;
     cmd.mImmediatelyShow = immediately;
     cmd.mParam           = param;
     cmd.mIsScene         = isScene;
     cmd.mCallback        = callback;
     pushCommand(cmd, mLayoutManager);
 }
 public override void resetProperty()
 {
     base.resetProperty();
     mCallback        = null;
     mResultLayout    = null;
     mLayoutID        = LAYOUT.NONE;
     mOrderType       = LAYOUT_ORDER.ALWAYS_TOP;
     mParam           = null;
     mVisible         = true;
     mAsync           = false;
     mImmediatelyShow = false;
     mIsScene         = false;
     mAlwaysTop       = false;
     mRenderOrder     = 0;
 }
예제 #4
0
 // 根据顺序类型,计算实际的渲染顺序
 public int generateRenderOrder(GameLayout exceptLayout, int renderOrder, LAYOUT_ORDER orderType)
 {
     if (orderType == LAYOUT_ORDER.ALWAYS_TOP)
     {
         if (renderOrder < FrameDefine.ALWAYS_TOP_ORDER)
         {
             renderOrder += FrameDefine.ALWAYS_TOP_ORDER;
         }
     }
     else if (orderType == LAYOUT_ORDER.ALWAYS_TOP_AUTO)
     {
         renderOrder = getTopLayoutOrder(exceptLayout, true) + 1;
     }
     else if (orderType == LAYOUT_ORDER.AUTO)
     {
         renderOrder = getTopLayoutOrder(exceptLayout, false) + 1;
     }
     return(renderOrder);
 }
예제 #5
0
 public static void LOAD_UGUI_SHOW(int id, int renderOrder, LAYOUT_ORDER orderType, bool immediately)
 {
     LOAD_UGUI(id, renderOrder, orderType, true, immediately, null);
 }
예제 #6
0
 public static void LOAD_UGUI_SHOW(int id, int renderOrder, LAYOUT_ORDER orderType)
 {
     LOAD_UGUI(id, renderOrder, orderType, true, false, null);
 }
예제 #7
0
 public static void LOAD_UGUI_ASYNC(int id, int renderOrder, LAYOUT_ORDER orderType, LayoutAsyncDone callback)
 {
     LOAD_LAYOUT(id, renderOrder, orderType, true, false, null, false, true, callback);
 }
예제 #8
0
 public static void LOAD_UGUI(int id, int renderOrder, LAYOUT_ORDER orderType, bool visible, bool immediately, string param)
 {
     LOAD_LAYOUT(id, renderOrder, orderType, visible, immediately, param, false, false, null);
 }
예제 #9
0
 public static void LOAD_UGUI(int id, int renderOrder, LAYOUT_ORDER orderType, bool visible)
 {
     LOAD_LAYOUT(id, renderOrder, orderType, visible, false, null, false, false, null);
 }
예제 #10
0
 public void setOrderType(LAYOUT_ORDER orderType)
 {
     mRenderOrderType = orderType;
 }