【问题标题】:How can I control screen alignment in Corona when screen orientation changes?当屏幕方向改变时,如何在 Corona 中控制屏幕对齐?
【发布时间】:2015-01-25 05:09:18
【问题描述】:

我已经设置了我的 config.lua,使我的内容区域位于屏幕顶部,并设置了内容区域的尺寸,使其刚好填满 iPhone4 屏幕,但在底部留下一个空隙iPhone5的屏幕。

application = 
{
    content = 
    {
        width = 640,
        height = 960,
        scale = "letterbox",
        xAlign = "center",
        yAlign = "top",     
    }
}

这在纵向模式下很好,但是当手机旋转到横向时,内容现在显示为左对齐,而不是居中对齐 - 好像 Corona 并没有改变它对“xAlign”和“yAlign”含义的想法当屏幕旋转时。

有什么方法可以在屏幕旋转时以编程方式更改 xAlign 和 yAlign 值?或者更好的是,有没有一种配置可以让 Corona 更合理地处理屏幕旋转和对齐?

我知道我可以通过将我正在绘制的组向右移动一点来获得我想要的相同效果,但我想找到一个不是黑客的答案。

请看下面我正在谈论的图片:

这是 main.lua:

local myGroup

local function drawScreen()
    myGroup = display.newGroup( )

    local top = 0
    local left = 0
    local bottom = display.contentHeight
    local right = display.contentWidth

    local r2 = display.newRect( left, top, right, bottom )
    r2:setFillColor(0.4, 0.4, 0.4)
    r2.anchorX = 0
    r2.anchorY = 0
    myGroup:insert(r2)
end

local function clearScreen()
    if (myGroup ~= null) then
        myGroup:removeSelf()
    end
    myGroup = nil
end

local function onOrientationChange( event )
    clearScreen()
    drawScreen()
end

-- and we're running

Runtime:addEventListener( "orientation", onOrientationChange ) 

-- hide status bar
display.setStatusBar( display.HiddenStatusBar )

drawScreen()

【问题讨论】:

  • 你能发布创建那个灰色框的代码吗?我很好奇这是否与 xAlign 或框锚点有关。
  • 当然——这很基本。见上文。

标签: lua coronasdk


【解决方案1】:

好的,我找到了解决方案。有时使用 Corona 和信箱缩放真的很有趣。

build.settings 中,我确保将这个设置为方向:

orientation = {
    default = "portrait",
    supported = { "portrait", "landscapeLeft", "landscapeRight"}
},  

在主文件中我改为:r2.anchorX = 0.5 并切换到local left = display.actualContentWidth/2

这似乎成功了。我永远无法让xAlignyAlign 做任何事情。我切换了它们,但从未看到结果。

所以我会玩弄我发布的内容。信箱会变得很奇怪。我不知道为什么在风景中那个盒子一直向左推。两边应该有相等的黑条。但由于某种原因没有。让我知道这是否能让你走上正确的道路。

【讨论】:

  • 感谢您的光顾。我发现只要手机处于其中一种横向模式时,只需将我正在绘制的组向右移动即可获得最佳的整体结果 - 很容易。但我真的宁愿它只是表现自己。
  • 很好玩一下 actualContentHeight 和 actualContentWidth ,因为它们为您提供了实际的完整设备宽度。如果没有实际值,它们只会返回信箱区域的宽度(没有侧边栏)。祝你好运!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-01-03
  • 2012-12-30
  • 1970-01-01
  • 2012-09-24
  • 2012-06-25
  • 2023-03-04
  • 1970-01-01
相关资源
最近更新 更多