Lua 创建后添加侦听器属性

Lua 创建后添加侦听器属性,lua,slider,components,coronasdk,Lua,Slider,Components,Coronasdk,我正在尝试在创建后将listener属性添加到滑块组件: local function sliderListener( _event ) print(_event.value) end slider = widget.newSlider { top = 30, left = 10, orientation = "vertical", height = 200, value = 10, -- Start slider at 10% (option

我正在尝试在创建后将listener属性添加到滑块组件:

local function sliderListener( _event )
    print(_event.value)
end

slider = widget.newSlider
{
    top = 30,
    left = 10,
    orientation = "vertical",
    height = 200,
    value = 10,  -- Start slider at 10% (optional)
}

slider.listener = sliderListener
然而。。。它不起作用。这是不可能的还是我使用了错误的语法


提前感谢。

不确定该属性在创建时是否必须存在。尝试:

slider = widget.newSlider
{
    top = 30,
    ...
    value = 10,  -- Start slider at 10% (optional)
    listener = sliderListener,
}
如果确实需要在创建后设置处理程序,请改为使用上面的命令,并设置要由
sliderListener
使用的委托函数。例如:

local actualListener

function actualListener1(event)
    ...
end

function actualListener2(event)
    ...
end

function sliderListener(event)
    actualListener(event)
end

... create SliderWidget with listener = sliderListener...

actualListener = actualListener2

您还可以使
sliderListener
成为一个具有
\uu调用的表(通过
setmetatable(s,{{\uu call=Set.call})
您可以通过两种方式分配滑块侦听器。 slider=widget.newSlider { top=30, 左=10, 方向=“垂直”, 高度=200, 值=10,--在10%时启动滑块(可选) slider.listener=sliderListener }

或 slider=widget.newSlider { top=30, 左=10, 方向=“垂直”, 高度=200, 值=10,--在10%时启动滑块(可选) }
slider.addEventListener(“touch”,sliderListener)

确实有效-关键是我想在创建后删除/添加。老实说,我认为这是不可能的。感谢您的关注。@Oli不可能以这种方式更改它,但我已经更新了一个可能的解决方案。非常感谢-这真的很有帮助。