2014-03-13 62 views
0

我已经设置了我的config.lua,以便我的内容区域位于屏幕的顶部,并设置了内容区域的大小,以便它填满iPhone4屏幕,但在底部留下空隙一个iPhone5屏幕。当屏幕方向改变时,如何控制电晕中的屏幕对齐?

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

这是在纵向模式很好,但是当手机旋转为横向,现在显示的内容左对齐,而不是居中对齐 - 仿佛电晕不改变的是什么“xAlign”理念, “yAlign”是指屏幕旋转时的意思。

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

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

请参阅以下就是我在谈论的一个画面:

enter image description here

这里的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() 
+0

你可以发布创建灰色框的代码吗?我很好奇,如果这与xAlign或框定位点有关。 – Fernker

+0

当然 - 这很基本。往上看。 – teapot7

回答

0

行,所以我找到了解决办法。有时Corona和信箱缩放非常有趣。

build.settings我确信有此套为导向:

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

在主文件我改变了这个:r2.anchorX = 0.5,并切换到local left = display.actualContentWidth/2

这似乎已经完成了帽子戏法。我永远无法让xAlignyAlign做任何事情。我改变了他们,但从未见过结果。

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

+0

感谢您的帮助。我发现,只要手机处于其中一种风景模式,只需将我正在绘制的组移动到右侧,就可以获得最佳的整体效果 - 非常简单。但我真的宁愿它只是表现自己。 – teapot7

+0

那么玩弄actualContentHeight和actualContentWidth,因为他们给你的实际完整的设备宽度。没有实际的情况下,他们只会返回信箱区域的宽度(没有侧边栏)。祝你好运! – Fernker