Corona SDK newSwitch - switch.isOn противоположно фактическому состоянию - PullRequest
0 голосов
/ 07 декабря 2018

Я добавил переключатель на страницу:

local function highlightSwitchPress( event )
    local switch = event.target
    print( "Switch with ID '"..switch.id.."' is on: "..tostring(switch.isOn) ) end

local highlightSwitch = widget.newSwitch(
    {
        x = ccx*1.75,
        y = ch*0.4,
        style = "onOff",
        id = "highlightSwitch",
        onPress = highlightSwitchPress,
        initialSwitchState = true
    }
)
highlightSwitch.xScale, highlightSwitch.yScale = 0.8, 0.8
highlightSwitch:setState( { isOn=true, isAnimated=true, onComplete=changeComplete } )
sceneGroup:insert(highlightSwitch)

Однако я заметил, что при нажатии на переключатель (зеленый фон) выводится строка:

Switch with ID 'highlightSwitch' is on: false

и когда я нажимаю кнопку выключения (серый фон), выводится строка:

Switch with ID 'highlightSwitch' is on: true

Почему это наоборот?

Ответы [ 2 ]

0 голосов
/ 08 декабря 2018

Это по замыслу.Возможно, вы захотите узнать состояние кнопки до ее переключения или вы можете узнать состояние после ее переключения.См .:

http://docs.coronalabs.com/api/library/widget/newSwitch.html

Роб

0 голосов
/ 08 декабря 2018

После некоторого чтения я обнаружил, что это потому, что переменная onPress.onPress срабатывает до переключения переключателя.

При использовании onRelease событие происходит после изменения переключателя и сообщает о желаемом состоянии.

Есть ли глюк с widget.newSwitch?

...