Corona SDK - 过滤器

Corona SDK - Filters

所以我想做的是对对象应用过滤器,然后在一段时间后将其删除,我所做的是:

local function _filter(n)
local function reset_filter(n)
 _zombieTable[n].fill.effect = ""
end
 _zombieTable[n].fill.effect = "filter.crystallize"
 transition.to( _zombieTable[n].fill.effect , {time = 200,numTiles = 100} )
 timer.performWithDelay( 300, reset_filter(n),1 )
end

问题是只有当我之后不删除它时才会应用它的过滤器,我不明白,因为我在 300 毫秒后删除了它,所以它应该应用然后消失。我也试过 "onComplete" 属性 的 transition.to 但它的作用是一样的。

这一行是问题所在:timer.performWithDelay( 300, reset_filter(n),1 )

reset_filter(n) 被立即调用,而不是在 300 延迟之后!

应该是:timer.performWithDelay(300, function() reset_filter(n) end, 1)