如何在composer中将覆盖层后面的Alpha值降低?

我目前正尝试通过减小覆盖层时减少其 alpha 值来淡化父屏幕,只有当覆盖层消失后才将 alpha 值恢复为 1。

我只能使用以下代码才能使它起作用:

  function loreButtonTap:tap(e)
    transition.to(sceneGroup,{
    alpha= .5,
    time= 400
    })
    composer.showOverlay("westerosLore", {
    effect ="fromTop",
    time = 800
    })

    loreTap = display.newRect(_W,_H,_W*2,_H*2);
    display.getCurrentStage():setFocus(loreTap)
    loreTap.alpha = 0;
    loreTap.isHitTestable = true;
    loreTap:addEventListener("tap", loreTap);
    function loreTap:tap(e)
        transition.to(sceneGroup,{
         alpha= 1,
         time= 400
        })
        composer.hideOverlay("slideUp",400);
        display.getCurrentStage():setFocus(nil)
    end

我正在从父窗口中完成所有这些操作。问题在于,如果玩家快速点击 loreButtonTap(快速发送短信),那么就会崩溃游戏,声称composer.hideOverlay("slideUp",400); 已成为 nil

我是否应该在覆盖层的 lua 文件中隐藏覆盖层?有没有更简单的方法来实现这一点?

点赞
用户2260388
用户2260388

最好的方法是在叠加场景中绘制一个黑色矩形并赋予它透明度。 这可以提供一个很好的褪色的父级场景的假象。

2014-06-01 08:52:02