0

我试图在我的桌子上触发隐藏和表演local starTable = {}

local starTable = {} -- Set up star table


local function showStarTable()
-- some trigger to show the star table
end
timer.performWithDelay( 500, showStarTable, 1 )

local function hideStarTable()
-- some trigger to hide the star table
end
timer.performWithDelay( 1000, hideStarTable, 1 )    

是否有可能实现这一目标

4

2 回答 2

1

您的代码将在 1/2 秒后执行函数 showStarTable() 1 次。然后再过 1/2 秒,它会执行一次 hideStarTable()。

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

如果表格具有可显示的内容,您将负责在显示/隐藏功能中显示/隐藏表格的内容。

于 2013-02-25T01:23:41.883 回答
1

为了配合第一个答案,这里有一个例子:

local starTable = {}
local star1  = <display object>


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  = <display object>
starTable[1] = star

star  = <display object>
starTable[2] = star

star  = <display object>
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-26T14:23:16.480 回答