widget.newStepper()

类型 函数
widget.*
返回值 StepperWidget
修订版 版本 2024.3703
关键字 小组件、步进器、增加、减少、控制
另请参见 StepperWidget

概述

创建 StepperWidget 对象。步进器包括一个减号按钮和一个加号按钮,可以点击或按住这两个按钮来减少/增加一个值,例如,游戏中音乐或声音音量设置。

陷阱

语法

widget.newStepper( options )

此函数接受一个参数,options,它是一个接受以下参数的表格

id (可选)

字符串. 分配给步进器的可选标识。默认值为 widget_stepper

x, y (可选)

数字. 小组件的 xy 中心点的坐标。如果定义了 lefttop,则 xy 参数将被这些值覆盖。

left, top (可选)

数字. 小组件将创建的位置的左上角。如果指定了这些值,则 xy 参数将被这些值覆盖。

width, height (可选)

数字. 图片表的 每个帧的宽度和高度。仅当为步进器使用自定义图片表时才设置这些值。如果使用默认主题,将自动设置这些值。

initialValue (可选)

数字. 步进器开始时的初始值。默认值为 0

minimumValue (可选)

数字. 步进器可以达到的最小值。默认值为 0

maximumValue (可选)

数字. 步进器可以达到的最大值。默认情况下没有限制。

timerIncrementSpeed (可选)

数字. 每执行一次步进器增量所用的初始速度,以毫秒为单位。默认值为 1000。通过 changeSpeedAtIncrement,可以控制发生速度变化的增量次数。

changeSpeedAtIncrement (可选)

数字. 速度变化的增量次数。默认值为 5。通过 timerIncrementSpeed,可以控制增量速度。

onPress (可选)

侦听器. 一个可选函数,在按下并按住步进器片段后立即调用。此回调函数返回以下 event.phase 事件:incrementdecrementminLimitmaxLimit

函数

object:getValue()

object:setValue()

属性

object.value

object.minimumValue

object.maximumValue

视觉自定义

可以使用来自 图像表 的 5 个框架以可视方式自定义步进器小组件。

sheet (必需)

ImageSheet 步进器的 图像表 对象。

defaultFrame (必需)

Number 当减号侧和加号侧都处于活动状态时使用的默认框架。

noMinusFrame (必需)

Number 当步进器达到最小值时使用的框架,指示对减号侧的点击没有明显结果。

noPlusFrame (必需)

Number 当步进器达到最大值时使用的框架,指示对加号侧的点击没有明显结果。

minusActiveFrame (必需)

Number 用于表示在减号侧发生点击/按住的框架。

plusActiveFrame (必需)

Number 用于表示在加号侧发生点击/按住的框架。

示例

默认
local widget = require( "widget" )

local currentNumber = 0

-- Handle stepper events
local function onStepperPress( event )

    if ( "increment" == event.phase ) then
        currentNumber = currentNumber + 1
    elseif ( "decrement" == event.phase ) then
        currentNumber = currentNumber - 1
    end
    print( currentNumber )
end
        
-- Create the widget
local newStepper = widget.newStepper(
    {
        left = 150,
        top = 200,
        minimumValue = 0,
        maximumValue = 50,
        onPress = onStepperPress
    }
)
图片表
local widget = require( "widget" )

local currentNumber = 0

-- Handle stepper events
local function onStepperPress( event )

    if ( "increment" == event.phase ) then
        currentNumber = currentNumber + 1
    elseif ( "decrement" == event.phase ) then
        currentNumber = currentNumber - 1
    end
    print( currentNumber )
end

-- Image sheet options and declaration
-- For testing, you may copy/save the image under "Visual Customization" above
local options = {
    width = 196,
    height = 100,
    numFrames = 5,
    sheetContentWidth = 980,
    sheetContentHeight = 100
}
local stepperSheet = graphics.newImageSheet( "widget-stepper.png", options )

-- Create the widget
local newStepper = widget.newStepper(
    {
        width = 196,
        height = 100,
        sheet = stepperSheet,
        defaultFrame = 1,
        noMinusFrame = 2,
        noPlusFrame = 3,
        minusActiveFrame = 4,
        plusActiveFrame = 5,
        onPress = onStepperPress
    }
)