【问题标题】:Corona simulator and newTextFieldCorona 模拟器和 newTextField
【发布时间】:2023-03-28 04:57:01
【问题描述】:

我认为你不能在电晕模拟器中使用“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 )

【问题讨论】:

  • 请具体描述它是如何不工作的(错误信息其他观察)。
  • 什么都没有发生,看起来“userInput”并没有触发函数

标签: windows sdk lua coronasdk


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      【解决方案3】:

      首先 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 )
      

      【讨论】:

      • 你错过了function textListener (event)...,正如我所写:“userInput”不会触发该功能。
      • 函数 textListener(event) 已经存在。请在上面的行中检查它。它不属于代码。所以我道歉
      • 必须测试 win_fix 库?这是参考:code.coronalabs.com/code/…
      猜你喜欢
      • 2013-05-14
      • 2014-06-15
      • 1970-01-01
      • 2014-10-15
      • 2013-11-21
      • 1970-01-01
      • 2011-10-09
      • 2011-12-24
      • 2011-11-13
      相关资源
      最近更新 更多