邝斯0FV rookiesniper
关注数: 0 粉丝数: 35 发帖数: 410 关注贴吧数: 8
【问题求助】写伸缩式菜单栏时出现问题了,求大神搭救 我正在写一个比较长的皮肤代码,中间遇到了一个问题。我根据本来意图写了个80多行的精简版,代码在下面贴出来。 我本来的意图是实现以下效果: 1.起初有两个按钮,称作Meter1和Meter2 2.点击Meter1能弹出一个按钮Dock1,再点击Meter1能收回Dock1。对于Meter2和Dock2同理。 3.当Dock1处于弹出状态时,点击Meter2能收回Dock1并弹出Dock2。当Dock2处于弹出状态时,点击Meter1能收回Dock2并弹出Dock1。 基本功能类似于大多数软件的菜单栏。 我的思路如下: 1.用一个变量Opened表示当前状态,什么也没打开时是0,弹出Dock1是1,弹出Dock2是2。 2.当单击Meter1时先隐藏Dock1和Dock2,然后调用一个Measure,名称为[Click1],类型为Calc。若#Opened#=1,则收回Dock1,并将Opened改为0。若#Opened#<>1,则弹出Dock1,并将Opened改为1。对于[Click2]同理。 3.为了方便调试,加了一个String类型的Meter,名称为[Debug],查看Opened的值。代码如下: ;~Start~------------------------------------ [Rainmeter] Update=30 [Variables] BarColor=255,255,255,200 DockColor=0,0,0,200 Opened=0 ;------------------------------------------- [Click1] Measure=Calc Formula=( #Opened# = 1 ) ? 1 : 0 IfEqualValue=0 IfEqualAction=!Execute [!ShowMeter Dock1][!SetVariable Opened 1][!DisableMeasure Click1] IfAboveValue=0 IfAboveAction=!Execute [!SetVariable Opened 0][!DisableMeasure Click1] DynamicVariables=1 Disabled=1 [Click2] Measure=Calc Formula=( #Opened# = 2 ) ? 1 : 0 IfEqualValue=0 IfEqualAction=!Execute [!ShowMeter Dock2][!SetVariable Opened 2][!DisableMeasure Click2] IfAboveValue=0 IfAboveAction=!Execute [!SetVariable Opened 0][!DisableMeasure Click2] DynamicVariables=1 Disabled=1 ;------------------------------------------- [Debug] Meter=String Text=Opened:#Opened# X=10 Y=85 DynamicVariables=1 ;------------------------------------------- [Meter1] Meter=Image SolidColor=#BarColor# X=10 Y=10 W=50 H=30 LeftMouseUpAction=!Execute [!HideMeterGroup Docks][!EnableMeasure Click1] [Meter2] Meter=Image SolidColor=#BarColor# X=10 Y=50 W=50 H=30 LeftMouseUpAction=!Execute [!HideMeterGroup Docks][!EnableMeasure Click2] [Dock1] Meter=Image SolidColor=#DockColor# X=70 Y=10 W=30 H=30 Hidden=1 Group=Docks [Dock2] Meter=Image SolidColor=#DockColor# X=70 Y=50 W=30 H=30 Hidden=1 Group=Docks ;~End~-------------------------------------- 可是运行时出了问题: 当我只点击Meter1时效果很好。但点击Meter1,不收回Dock1,直接点Meter2,能看见Dock1消失,Dock2弹出。但这只是表面现象,实际上此时Meter1已经失灵,无论怎么操作,点Meter1就是不弹出Dock1。我查看了变量Opened,此时点击Meter1时Opened完全不变化,而点Meter2时Opened反应正常。是不是卡住了? 可怜我写了1000多行代码,眼看即将收工,就卡在这儿了。。。 求大神解救。代码也不长,路过的吧友不妨复制下来自己试运行看看。或者告诉我哪个皮肤有相同功能,可以供我借鉴。 PS:本人刚刚开始自己写皮肤,看过雨滴的中文手册,也研究过一些其他人写的皮肤,因此大致了解一些知识,应该不会出现交流困难的情形。
1 下一页