【问题标题】:Can't add image to screen group within a local function [LUA, CORONA SDK STORYBOARD]无法在本地函数中将图像添加到屏幕组 [LUA, CORONA SDK STORYBOARD]
【发布时间】:2014-02-20 00:07:22
【问题描述】:

当我使用 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",  "fade", 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

【问题讨论】:

    标签: lua coronasdk corona-storyboard


    【解决方案1】:

    您在 createScene 中将 sceneGroup 声明为本地,因此它不存在于该函数之外。将声明移至文件顶部:

    local screenGroup
    

    然后在 createScene 中做

    screenGroup = self.view
    

    您可以指定将图像作为第一个参数放入 newImage 的组,尽管您插入它的方式也很好。

    【讨论】:

    • 很高兴听到,当你有时间时别忘了接受它。欢迎来到 SO!
    猜你喜欢
    • 1970-01-01
    • 2015-01-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多