2016-04-01 2 views
2

Unsere App portrait unterstützen zu beheben und wir werden einige Objekte manuell zu drehen, aber wir sind Lager mit diesem native.newTextFieldWie nur native.newTextField Orientierung auf Rotation

-- setupTextField 
function setupTextField() 

    local txNameBG = display.newImageRect("images/login/login-input-bg.png", 225, 30) 
    txNameBG.x = _gameCenter.x 
    txNameBG.y = _gameCenter.y 
    sceneGroup:insert(txNameBG) 
    _events.fixRotate(txNameBG) 

    if (txName == nil) then 
     txName = native.newTextField(_gameCenter.x, _gameCenter.y, 225, 30) 
     txName.hasBackground = false 
     txName.inputType = "default" 
     txName.placeholder = "INSERT NAME" 
     txName.align = "center" 
     txName.font = native.newFont(native.systemFont, 15) 
     txName:setTextColor(163, 25, 12) 
     txName:addEventListener("userInput", _events.textListener) 
     sceneGroup:insert(txName) 
     -- _events.fixRotate(txName) 

    end 

end 

ist die Funktion die wir verwenden, für rotierende Objekte (nur die nativen. *) reagieren nicht.

eventClass.fixRotate = function (obj) 

    obj:rotate(90) 
    obj.isFixedRotation = true 
    -- obj.angularVelocity = 0 

end 

Dies ist das richtige Layout, aber der Text innerhalb der native.newTextField wurde geschnitten,

enter image description here

Das, was nach dem Drehen (landscapeRight)

geschehen ist

enter image description here

Wie kann ich das beheben?

+0

Kann man Breite und Höhe auch bei Rotation tauschen? – Amir

+0

Nein, ich glaube nicht, dass ich die Breite mit der Höhe tauschen muss. Ich habe gerade das Objekt gedreht. Die anderen Objekte haben perfekt reagiert, und durch das Warum unterstütze ich nur "Portrait" Orientierung – 0yeoj

+0

Kann ich Sie bitten, Datei ein Fehlerbericht darüber? Bitte erstellen Sie eine kleine App, die das Problem demonstriert. Die App muss eine Datei main.lua, config.lua und build.settings sowie alle Assets enthalten, die zum Erstellen und Ausführen der App erforderlich sind. Setzen Sie das in eine .zip-Datei und besuchen Sie: https://developer.coronalabs.com/content/bug-submission –

Antwort

1

Okay. Ich fand eine Lösung:

settings = 
{ 
    ... 

    orientation = 
    { 
     // I changed 
     // supported = { "portrait" }, to 
     // 
     supported = { "portrait", "landscapeRight", "landscapeLeft", "portraitUpsideDown"} 
    } 
    ... 
} 

Auch ich fand heraus, dass der Text, der nur in Corona Simulator auftritt geschnitten wurde, aber in der realen Gerät (iP6plus in meinem Fall), es ist ziemlich gut sucht. Überprüfen Sie Ihre App immer auf einem echten Gerät.

0

Fügen Sie diese in Ihrem build.setting

settings = { 
    orientation = 
    { 
     default = "landscapeRight", 
     content = "landscapeRight", 
     supported = { "landscapeRight", "portrait" }, 
    }, 
} 
+0

Okay, ich werde das morgen versuchen, aber eine Sache, unsere App unterstützt nur 'Portrait' Orientierung macht es ' landscapeRight 'wird es standardmäßig landschaftlich gestalten. – 0yeoj

+0

Sollte für das Porträt alles am Anfang richtig sein? – Amir

0

Ich weiß nicht, wie gehärtet die native.newTextField() manuell gedreht wird. Ich habe in den obigen Kommentaren gebeten, einen Fehlerbericht zu diesem Thema zu erhalten. Ich bin mir sicher, dass textFields korrekt rotiert, wenn Sie gesagt haben, dass Sie sowohl die Hochformat- als auch die Querformatausrichtung in Ihrer build.settings-Datei unterstützen wollen.

Ich bin nicht sicher, warum Sie dies manuell durchführen möchten, anstatt ein onOrientation-Ereignis zu verwenden, um die Seite neu zu strukturieren, anstatt alle Objekte manuell zu drehen.

Rob

+0

Danke. Eigentlich habe ich 'Runtime: addEventListener (" resize ", onResize)' und relayout/skalieren die Objekte. Leider kann ich gerade jetzt nicht berichten; wir sind irgendwie zu spät im Zeitplan ... Aber ich werde sicher bald einreichen ... – 0yeoj

Verwandte Themen