Corona SDK newSwitch - switch.isOn 与实际状态相反
Corona SDK newSwitch - switch.isOn is opposite to the actual state
我在页面添加了一个开关:
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
为什么是相反的?
经过一番阅读后我发现这是因为 onPress
变量。 onPress
在开关改变之前触发。
通过使用onRelease
,事件发生在开关变化后,会报告你想要的状态。
这是设计使然。您可能想知道按钮在切换前的状态,或者您可能想知道按钮切换后的状态。参见:
http://docs.coronalabs.com/api/library/widget/newSwitch.html
罗伯
我在页面添加了一个开关:
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
为什么是相反的?
经过一番阅读后我发现这是因为 onPress
变量。 onPress
在开关改变之前触发。
通过使用onRelease
,事件发生在开关变化后,会报告你想要的状态。
这是设计使然。您可能想知道按钮在切换前的状态,或者您可能想知道按钮切换后的状态。参见:
http://docs.coronalabs.com/api/library/widget/newSwitch.html
罗伯