2014-03-13 59 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