Corona Slider在创建后添加侦听器属性

时间:2014-03-19 14:20:28

标签: lua slider components 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

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

提前致谢。

2 个答案:

答案 0 :(得分:1)

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

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表格设为__call(通过setmetatable(s, {__call = Set.call})

答案 1 :(得分:0)

您可以以两种方式分配滑块侦听器。      slider = widget.newSlider      {        顶部= 30,        左= 10,        orientation =" vertical",        身高= 200,        value = 10, - 以10%开始滑块(可选)        slider.listener = sliderListener      }

或      slider = widget.newSlider      {         顶部= 30,         左= 10,         orientation =" vertical",         身高= 200,         value = 10, - 以10%开始滑块(可选)      }    slider.addEventListener(" touch",sliderListener)