【问题标题】:Button working then failing按钮工作然后失败
【发布时间】:2015-08-14 18:18:30
【问题描述】:

我的问题非常令人困惑,我认为似乎没有一个简单的解决方案。当我进入我的“设置”场景时,有 2 个按钮“aboutButton”和“userSettingsButton”这些按钮通向名为“about”和“user”的场景。在这个场景中(查看关于按钮和用户设置),我可以单击任一按钮,它会响应我单击它的文本上的任何位置。在同一页面上,我有一个也可以使用的返回主页按钮。当我单击关于按钮时,一切正常,我“转到”该场景,然后可以在“关于”场景中使用我的“goBackButton”返回,并且按钮没有停止工作。当我“转到”我的“用户”场景时,一切似乎都可以正常工作并且(包括该场景上的“goBackButton”)但是在我返回“设置场景”之后,如果我尝试返回“关于应用程序”或“用户设置”我只能通过单击最顶部边缘(对于“关于应用程序”)和“用户设置”来激活该按钮,我只能通过单击最底部来激活它应用程序。

我知道这似乎是一个非常非常奇怪的问题,我在使用免费版 Corona SDK 的 Windows 机器上(如果该信息与它有关)但就像我说的通常所有按钮都可以正常工作我的程序中只有文本按钮,当我“转到”“用户设置”时使用“myData”(替换全局变量),所以如果有任何其他信息需要我提供,请告诉我有人帮我完成这个程序所有的代码都不会抛出任何错误。一切正常,直到我进入用户设置,然后其他的工作和其他人没有。

感谢您抽出宝贵时间阅读本文,感谢您提供有关如何解决此问题的任何帮助或建议。

我认为这可能与内存有关。我将 28 个用于显示的项目插入到我的场景组中,所以请告诉我这个假设是否正确。

这里是设置主页的代码:

local widget = require("widget")
local composer = require("composer")
local scene = composer.newScene()

function scene:create ()
    local g = self.view
end

function returnHomeButtonOptions()
    local options = 
    {
    effect = "slideDown",
    time = 500,
    }
    composer.gotoScene("MainContent.HomeScreen", options)
end

function aboutButtonOptions()
    local options = 
    {
    effect = "slideUp",
    time = 500,
    }
    composer.gotoScene("MainContent.Settings.about", options)
end

function userButtonOptions()
    local options =
    {
    effect = "slideRight",
    time = 500,
    }
    composer.gotoScene("MainContent.Settings.user", options)
end

local function returnHomeButtonHandler(event)
    local phase = event.phase
    if (phase == "ended") then
        returnHomeButtonOptions()
    end
end

local function aboutButtonHandler(event)
    local phase = event.phase
    if (phase == "ended") then
        aboutButtonOptions()
    end
end

local function userButtonHandler(event)
    local phase = event.phase
    if (phase == "ended") then
        userButtonOptions()
    end
end

local returnHomeButton = widget.newButton
{
    label = "Return Home",
    x = display.contentWidth * 0.8125,
    y = display.contentWidth * 1.5625,
    onEvent = returnHomeButtonHandler,
    fontSize = 16,
    labelColor = { default={ 1, 1, 1 } }
}

local aboutButton = widget.newButton
{
    label = "About The App",
    x = display.contentWidth * 0.5,
    y = 150,
    onEvent = aboutButtonHandler,
    fontSize = 30,
    labelColor = { default={ 1, 1, 1 } }
}

local userButton = widget.newButton
{
    label = "User Settings",
    x = display.contentWidth * 0.5,
    y = 300,
    onEvent = userButtonHandler,
    fontSize = 30,
    labelColor = { default={ 1, 1, 1 } }
}


local backBlock = display.newRect(0, 0, display.contentWidth * 2, display.contentHeight * 3)
local block2 = display.newRect(display.contentWidth * 0.25, 100, 100, 100)
local block3 = display.newRect(display.contentWidth * 0.75, 100, 100, 100)
local block4 = display.newRect(display.contentWidth * 0.5, 10, 100, 100)
local block5 = display.newRect(display.contentWidth * 0.25, 200, 100, 100)
local block6 = display.newRect(display.contentWidth * 0.75, 200, 100, 100)
local block7 = display.newRect(display.contentWidth * 0.5, 490, 100, 100)
local block8 = display.newRect(display.contentWidth * 0.25, 300, 100, 100)
local block9 = display.newRect(display.contentWidth * 0.75, 300, 100, 100)
local block10 = display.newRect(display.contentWidth * 0.25, 400, 100, 100)
local block11 = display.newRect(display.contentWidth * 0.75, 400, 100, 100)
block2:rotate(45)
block3:rotate(45)
block4:rotate(45)
block5:rotate(45)
block6:rotate(45)
block7:rotate(45)
block8:rotate(45)
block9:rotate(45)
block10:rotate(45)
block11:rotate(45)
block2.alpha = 0.2
block3.alpha = 0.2
block4.alpha = 0.2
block5.alpha = 0.2
block6.alpha = 0.2
block7.alpha = 0.2
block8.alpha = 0.2
block9.alpha = 0.2
block10.alpha = 0.2
block11.alpha = 0.2
backBlock.alpha = 0.1

function scene:show (event)

    local g = self.view
    local phase = event.phase

    if (phase == "will") then

        display.setStatusBar( display.DarkStatusBar )

        g:insert(backBlock)
        g:insert(block2)
        g:insert(block3)
        g:insert(block4)
        g:insert(block5)
        g:insert(block6)
        g:insert(block7)
        g:insert(block8)
        g:insert(block9)
        g:insert(block10)
        g:insert(block11)
        g:insert(returnHomeButton)
        g:insert(aboutButton)
        g:insert(userButton)

    end
end


scene:addEventListener("create", scene)
scene:addEventListener("show", scene)



return scene

这是用户的代码

local widget = require("widget")
local composer = require("composer")
local scene = composer.newScene()

function scene:create ()
    local g = self.view
end

function returnHomeButtonOptions()
    local options = 
    {
    effect = "slideDown",
    time = 500,
    }
    composer.gotoScene("MainContent.HomeScreen", options)
end

function aboutButtonOptions()
    local options = 
    {
    effect = "slideUp",
    time = 500,
    }
    composer.gotoScene("MainContent.Settings.about", options)
end

function userButtonOptions()
    local options =
    {
    effect = "slideRight",
    time = 500,
    }
    composer.gotoScene("MainContent.Settings.user", options)
end

local function returnHomeButtonHandler(event)
    local phase = event.phase
    if (phase == "ended") then
        returnHomeButtonOptions()
    end
end

local function aboutButtonHandler(event)
    local phase = event.phase
    if (phase == "ended") then
        aboutButtonOptions()
    end
end

local function userButtonHandler(event)
    local phase = event.phase
    if (phase == "ended") then
        userButtonOptions()
    end
end

local returnHomeButton = widget.newButton
{
    label = "Return Home",
    x = display.contentWidth * 0.8125,
    y = display.contentWidth * 1.5625,
    onEvent = returnHomeButtonHandler,
    fontSize = 16,
    labelColor = { default={ 1, 1, 1 } }
}

local aboutButton = widget.newButton
{
    label = "About The App",
    x = display.contentWidth * 0.5,
    y = 150,
    onEvent = aboutButtonHandler,
    fontSize = 30,
    labelColor = { default={ 1, 1, 1 } }
}

local userButton = widget.newButton
{
    label = "User Settings",
    x = display.contentWidth * 0.5,
    y = 300,
    onEvent = userButtonHandler,
    fontSize = 30,
    labelColor = { default={ 1, 1, 1 } }
}


local backBlock = display.newRect(0, 0, display.contentWidth * 2, display.contentHeight * 3)
local block2 = display.newRect(display.contentWidth * 0.25, 100, 100, 100)
local block3 = display.newRect(display.contentWidth * 0.75, 100, 100, 100)
local block4 = display.newRect(display.contentWidth * 0.5, 10, 100, 100)
local block5 = display.newRect(display.contentWidth * 0.25, 200, 100, 100)
local block6 = display.newRect(display.contentWidth * 0.75, 200, 100, 100)
local block7 = display.newRect(display.contentWidth * 0.5, 490, 100, 100)
local block8 = display.newRect(display.contentWidth * 0.25, 300, 100, 100)
local block9 = display.newRect(display.contentWidth * 0.75, 300, 100, 100)
local block10 = display.newRect(display.contentWidth * 0.25, 400, 100, 100)
local block11 = display.newRect(display.contentWidth * 0.75, 400, 100, 100)
block2:rotate(45)
block3:rotate(45)
block4:rotate(45)
block5:rotate(45)
block6:rotate(45)
block7:rotate(45)
block8:rotate(45)
block9:rotate(45)
block10:rotate(45)
block11:rotate(45)
block2.alpha = 0.2
block3.alpha = 0.2
block4.alpha = 0.2
block5.alpha = 0.2
block6.alpha = 0.2
block7.alpha = 0.2
block8.alpha = 0.2
block9.alpha = 0.2
block10.alpha = 0.2
block11.alpha = 0.2
backBlock.alpha = 0.1

function scene:show (event)

    local g = self.view
    local phase = event.phase

    if (phase == "will") then

        display.setStatusBar( display.DarkStatusBar )

        g:insert(backBlock)
        g:insert(block2)
        g:insert(block3)
        g:insert(block4)
        g:insert(block5)
        g:insert(block6)
        g:insert(block7)
        g:insert(block8)
        g:insert(block9)
        g:insert(block10)
        g:insert(block11)
        g:insert(returnHomeButton)
        g:insert(aboutButton)
        g:insert(userButton)

    end
end


scene:addEventListener("create", scene)
scene:addEventListener("show", scene)



return scene

在那里你可以看到我的 user.lua 和 settingsHome.lua 的代码

感谢您阅读本文并帮助我:)

【问题讨论】:

  • 如果我评论那个“用户”场景中按钮的处理程序,然后不理会按钮,同样的问题会发生,如果我注释掉那个场景中的按钮,然后不理会处理程序的问题与上面提到的按钮不会发生..
  • 您能否展示您的代码中出现问题的部分?也许那时我们可以帮助你。

标签: button lua coronasdk


【解决方案1】:

尝试return true处理按钮动作的函数。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-05-21
  • 1970-01-01
  • 1970-01-01
  • 2018-07-28
  • 2010-12-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多