创建 Corona 滑动条后添加监听器属性。

我正在尝试创建一个滑块组件后添加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

然而…它不起作用。这是不可能的还是我使用了不正确的语法?

提前感谢。

点赞
用户869951
用户869951

不确定属性是否必须在创建时存在。尝试使用以下代码:

slider = widget.newSlider
{
    top = 30,
    ...
    value = 10,  -- 从 10% 开始的滑块(可选)
    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 设置为具有 __call 的表(通过 setmetatable(s, {__call = Set.call}))。

2014-03-19 15:02:47
用户2409015
用户2409015

你可以用两种方法来分配滑块监听器。

slider = widget.newSlider
{
top = 30,
left = 10,
orientation = "vertical",
height = 200,
value = 10, -- 开始滑块的百分比为10%(可选项)
slider.listener = sliderListener
}

或者

slider = widget.newSlider
{
top = 30,
left = 10,
orientation = "vertical",
height = 200,
value = 10, -- 开始滑块的百分比为10%(可选项)
}
slider.addEventListener("touch", sliderListener)
2014-03-20 04:52:00