0

我正在浏览以下教程 http://www.youtube.com/watch?v=Y5Oz72MO4JI

但由于某种原因,我收到了错误Attempt to index local 'button' (a nil value) ,我重新检查了代码中的所有内容,并且它看起来像视频中一样正确

完整的错误:

ui.lua:130 Attempt to index local 'button' (a nil value)
stack traceback:
[C]:?

ui.lua:130 in function 'newButton'

代码:

-----------------------------------------------------------------------------------------
--
-- main.lua
--
-----------------------------------------------------------------------------------------
local ui = require("ui")
local background = display.newImage("background.jpg")
local gear = display.newImage("gear.png")
local gear2 = display.newImage("gear.png")

gear.x = display.stageWidth / 2 + 26
gear.y = display.stageHeight / 2 - 50
gear2.x = display.stageWidth * .63
gear2.y = display.stageHeight * .60

local rotateAmount = 1

local function animate( event )
    gear.rotation = gear.rotation + rotateAmount
    gear2.rotation = gear2.rotation - rotateAmount
end

Runtime:addEventListener( "enterFrame", animate )

local buttonHandler = function( event )
    if event.phase == "release" then
        if event.id == "stop" then
            rotateAmount = 0
        elseif event.id == "+1" then
            rotateAmount = rotateAmount + 1
        elseif event.id == "-1" then
            rotateAmount = rotateAmount - 1
        elseif event.id == "reverse" then
            rotateAmount = rotateAmount * -1
        end
    end
end

local button1 = ui.newButton{
    default = "button.png",
    over = "buttonOver.png",
    onEvent = buttonHandler,
    text = "Stop",
    id = "stop",
    size = 12,
    emboss = true
}
4

1 回答 1

0

这是一个古老的图书馆。您应该使用新的 Corona 小部件。

local widget = require( "widget" )

local myButton = widget.newButton
{
   left = 10,
   top = 80,
   label = "Default",
   labelAlign = "center",
   font = "Arial",
   fontSize = 18,
   labelColor = { default = {0,0,0}, over = {255,255,255} },
   onEvent = onButtonEvent
}

更多信息: http: //www.coronalabs.com/blog/2013/02/26/new-widgets-part-2/

于 2013-06-19T20:19:37.537 回答