触发器用于隐藏和显示表格。

我正在尝试在我的表local starTable = {}中触发隐藏和显示

local starTable = {} -- 设置星表

local function showStarTable()
-- 一些触发器显示星表
end
timer.performWithDelay(500, showStarTable, 1)

local function hideStarTable()
-- 一些触发器隐藏星表
end
timer.performWithDelay(1000, hideStarTable, 1)

这个可行吗?

点赞
用户1870706
用户1870706

你的代码将在 1/2 秒后执行 showStarTable() 函数一次。然后在另外的 1/2 秒内,它将执行 hideStarTable() 一次。

像 display.newImageRect() 这样的显示对象是表格,因此如果您需要引用这个表格,您可以通过更改对象的 .alpha 属性或它的可见性(.isVisible = true 或 .isVisible = false)来显示/隐藏它们。然而,表格本身只是信息的容器,一个通用的表格是不可显示的。它可能包含一个显示对象或多个。

如果表格具有显示内容,那么在您的 show/hide 函数中,显示/隐藏表格的内容将是您的责任。

2013-02-25 01:23:41
用户1879694
用户1879694

以下是中文翻译,且保留原来的 markdown 格式:

为回答第一个问题,这是一个示例:

local starTable = {}
local star1  = <显示对象>

starTable:insert(star1)

local function showStarTable()
    starTable.alpha = 1
end
timer.performWithDelay( 500, showStarTable, 1 )

local function hideStarTable()
    starTable.alpha = 0
end
timer.performWithDelay( 1000, hideStarTable, 1 )

如果您想使用实际的表格,且不知道实际插入到 starTable 的内容,可以尝试以下内容:

local starTable = {}

local star  = <显示对象>
starTable[1] = star

star  = <显示对象>
starTable[2] = star

star  = <显示对象>
starTable[3] = star

local function showStarTable()
    for i=1, #starTable do
        starTable[i].star.alpha = 1
    end
end
timer.performWithDelay( 500, showStarTable, 1 )

local function hideStarTable()
    for i=1, #starTable do
        starTable[i].star.alpha = 0
    end
end
timer.performWithDelay( 1000, hideStarTable, 1 )

然而,如果它适用于您的程序,第一个选项更好。

2013-02-26 14:23:16