电晕模拟器和newTextField

时间:2014-03-22 21:18:18

标签: windows sdk lua corona

我认为这是一个很大的限制,你不能在电晕模拟器中使用“newTextField”,我实际上需要构建应用程序并将其安装在我的设备上以查看它是否正常工作。

以下代码由于某种原因不适合我,我不知道如何调试它。 我只是想保存“玩家名字”

local function textListener( event )

    if ( event.phase == "began" ) then

        -- user begins editing text field
        print( event.text )
        myGameSettings.playerName = event.text
        saveSettings()

    elseif ( event.phase == "ended" ) then

        -- text field loses focus
        myGameSettings.playerName = event.text
        saveSettings()

    elseif ( event.phase == "ended" or event.phase == "submitted" ) then

        myGameSettings.playerName = event.text
        saveSettings()
        -- do something with defaultField's text

    elseif ( event.phase == "editing" ) then

        print( event.newCharacters )
        print( event.oldText )
        print( event.startPosition )
        print( event.text )

    end
end

        local playerName = native.newTextField( centerX, display.contentCenterY-100, display.contentWidth, 50 )
        display.newText("Choose a name", 20, playerName.y-70, native.systemFont)

        playerName:addEventListener( "userInput", textListener )

3 个答案:

答案 0 :(得分:0)

它似乎仅在企业版中受支持。

答案 1 :(得分:0)

你的问题是它在模拟器中不起作用吗?因为他们不在Windows PC模拟器上工作,但他们在Mac模拟器中工作。我在Mac和PC上开发,可以在Mac上完美使用,但不能在PC上使用。我在企业版上也没有,但我在免费版上。

当我在PC上工作时,我的调试方法是将设备连接到计算机并打印出调试日志,因为它会打印任何错误(我显然只能使用连接到我PC的Android设备)。

答案 2 :(得分:0)

首先,native.newTextField不会显示在窗口机器模拟器上。你需要在设备上构建它以进行测试。但你可以在模拟器上调试它。 使用下面的代码在模拟器上进行调试。

注意:textField区域不可见但是当您单击它时(假设文本字段位置),将显示带有蓝色矩形边框的文本字段。

-- Hide the status bar
display.setStatusBar( display.HiddenStatusBar )

-- Set the background to white
display.setDefault( "background", 255, 255, 255 )

-- Require the widget & storyboard libraries
local widget = require( "widget" )

local function textListener( event )

    if ( event.phase == "began" ) then
        print( event.text )

    elseif ( event.phase == "ended" or event.phase == "submitted" ) then

        -- do something with defaultField's text
    elseif ( event.phase == "editing" ) then
         print("in move")
        print( event.newCharacters )
        print( event.oldText )
        print( event.startPosition )
        print( event.text )

    end
end

        local playerName = native.newTextField( 300, 300, 400, 50 )
        local a = display.newText("Choose a name", 20, playerName.y-70, native.systemFont)
        a.x=100
        a.y = playerName.y-70
        a:setTextColor(0,0,0)

        playerName:addEventListener( "userInput", textListener )