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() を 1 回実行します。

display.newImageRect() のような表示オブジェクトはテーブルであるため、それが参照しているテーブルである場合は、オブジェクトの .alpha プロパティまたはその可視性 (.isVisible = true または .isVisible = false) を変更することで、それらを表示/非表示にすることができます。 )。ただし、テーブル自体は単なる情報のコンテナーであり、一般的なテーブルは表示できません。1 つまたは複数の表示オブジェクトを含めることができます。

テーブルに表示可能なコンテンツがある場合、表示/非表示関数でテーブルの内容を表示/非表示にするのはあなたの責任です。

于 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 に答える