无法在本地函数内将图像添加到屏幕组[LUA、CORONA SDK STORYBOARD]。

当我使用screenGroup:insert(img)时,我会得到“尝试对全局'screenGroup'(值为nil)进行索引”的错误。

如何将在onTouch函数中创建的img对象添加到screenGroup中,以确保当我更改场景时它们被删除?

local storyboard = require(“storyboard”)
local scene = storyboard.newScene()

local function goToTitle(event)
    if event.phase ==“began” then
        storyboard.gotoScene(“titleScreen”,“淡入”,400)
    end
    return true
end

local onTouch = function(event)
    if event.phase ==“began” then
        local img = display.newImage(“shut_up_black.jpg”)
        img:addEventListener(“touch”,goToTitle)
        img.width = 100
        img.height = 100
        img.x = event.x
        img.y = event.y
        screenGroup:insert(img)
        return true
    end
end

function scene:createScene(event)
    local screenGroup = self.view
    local bg = display.newImage(“bg1.jpg”)
    screenGroup:insert(bg)
    Runtime:addEventListener(“touch”,onTouch)
end

function scene:enterScene(event)
end

function scene:exitScene(event)
end

function scene:destroyScene(event)
end

scene:addEventListener(“createScene”,scene)
scene:addEventListener(“enterScene”,scene)
scene:addEventListener(“exitScene”,scene)
scene:addEventListener(“destroyScene”,scene)

return scene
点赞
用户869951
用户869951

你在createScene中将sceneGroup声明为局部变量,因此它在该函数之外不存在。将声明移到文件顶部:

local screenGroup

然后在createScene中只需执行

screenGroup = self.view

您可以将要放置图像的组指定为newImage的第一个参数,虽然您插入它的方式也可以接受。

2014-02-20 01:20:33