找回密码
 点击注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 4458|回复: 2

【审核】Update with Bangs 命令刷新

[复制链接]

签到天数: 189 天

[LV.7]常住居民III

发表于 2014-3-13 22:43:38 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?点击注册

x
通常,Rainmeter皮肤是由写在皮肤的[Rainmeter]部分的刷新值来控制的。
在每次刷新时,所有measure和节点都被刷新——首先获得measure里的刷新值,然后用这些新的值重绘所有节点。
UpdateDivider这个值用来控制measure和节点的局部刷新率,如果有些地方想要比总刷新率慢一些,请使用它。
然而,有时候你会想要皮肤的一部分或者整个皮肤都按照你的需要刷新,而不是等待固定频率的“总刷新”。这种情况通常发生在有鼠标操作,或者你要立即打开收起、悬停显示节点内容的时候。



举个例子:
现在有一个Quote插件用来随机显示某个文件夹里的图片,你现在设定Quote的measure的局部刷新率为UpdateDivider=30,结合总刷新率Update=1000,那么随机更换图片的周期就是30s
但是,你想要鼠标左击图片时立刻切换成另一张图片,而不是呆呆的等着30s之后系统自动切换。

这儿提供了一些命令(bang)能帮助你实现梦想:
  • 你可以使用!Update+鼠标命令来控制整个皮肤的瞬时刷新。
  1. LeftMouseUpAction=!Update
复制代码
这属于“肌肉男”方法,如果你想更新一些皮肤,这是最简单有效的。
你需要记住的是!Update命令能够无视[Rainmeter]中的Update值,但是它不能抵御measure或节点中UpdateDivider的控制。
在设计皮肤的时候你应当斟酌以上方法是否是最合适的,如果需要更合适的请看下面的命令。

  • 你可以用!UpdateMeasure 来控制一个简单的measure立即刷新。它不仅能强势碾压Update和UpdateDivider的所有设定,并且能够立即更新一个measure的值。在我们这个和Quote插件有关的例子中,这是一个非常好的解决方式。
  1. LeftMouseUpAction=!UpdateMeasure MeasureRandomImage
复制代码
到目前为止一切顺利,但是如果图像节点的显示是通过measure的下一次刷新结果来确定的呢?我们利用一个新的命令可以达到目的——!UpdateMeter:
  1. LeftMouseUpAction=[!UpdateMeasure MeasureRandomImage][!UpdateMeter MeterImage]
复制代码
现在measure和节点的值都被刷新了。
不过,图片节点在下一次刷新之前还没有用新的值进行绘制。我们需要多加一步:!Redraw:
  1. LeftMouseUpAction=[!UpdateMeasure MeasureRandomImage][!UpdateMeter MeterImage][!Redraw]
复制代码
以上代码将同时刷新measure和节点,然后重新绘制整个皮肤。效果就是你点击这个节点,马上就会出现一张新的图片。
这个方法的好处是你可以用最小的代价完成你要的所有功能,并且不会打扰到拥有正常作息时间的其他皮肤。

备注:为什么我们不在捣鼓!UpdateMeter的时候自动“重绘”呢?
这是因为整个皮肤总是受到Rainmeter显示节点的方式的重绘(此处有问题:这句话什么意思?) This is because the entire skin must ALWAYS be redrawn due to how Rainmeter displays meters.
因为保持它们的独立性有助于你同时刷新几个节点,然后一次性重绘整个皮肤(此处有问题:整句话都没理解是什么意思怎么破。。。)Keeping them separate allows you to update several meters in one "action", then at the end redraw the entire skin just one time.
  1. LeftMouseUpAction=[!SetOption MeterOne FontSize 12][!SetOption MeterTwo FontSize 11][!UpdateMeter MeterOne][!UpdateMeter MeterTwo][!Redraw]
复制代码

下面是这些命令在手册中的参考条目:

整个皮肤:
  1. !Update
复制代码
在[Rainmeter]节点下掌控整个更新的设置,能够立即刷新整个皮肤、measure和节点,这个命令在measure和节点中的优先级低于UpdateDivider
  1. !Redraw
复制代码
在[Rainmeter]节点下掌控整个更新的设置,能够立即重新绘制整个皮肤中的可视元素。节点将使用measure最后更新的值或者变量来显示。
皮肤中的measure和节点:
  1. !UpdateMeasure
复制代码
在[Rianmeter]中控制整个刷新的设置,或者控制Measure中的Updatedivider,并立即刷新整个measure:
  1. !UpdateMeter
复制代码
在[Rainmeter]中控制整个刷新的设置,或者控制meter中的UpdateDivider,并立即刷新整个meter,在measure里得到最新的值或者变量。要注意这并不能用最新的值重绘整个meter。整个meter必须等到!Redraw命令使用之后才会更新。


下面还有一些拥有群体控制技能的命令:

整个皮肤:
  1. !UpdateGroup
复制代码
在[Rainmeter]中控制整个刷新的设置,然后立即更新特定小组中的皮肤、measure和节点。这个命令在节点和measure中的优先级要低于UpdateDivider:
  1. !RedrawGroup
复制代码
在[Rainmeter]中控制整个刷新的设置,然后立即重绘特定小组中的节点里的所有可见元素。节点将使用最后更新的值或者变量来进行绘制。
皮肤中的measure和节点:
  1. !UpdateMeasureGroup
复制代码
在[Rainmeter]中控制整个刷新的设置或者控制所有特定小组中measure的UpdateDivider,然后立即刷新measure:
  1. !UpdateMeterGroup
复制代码
在[Rainmeter]中控制整个刷新的设置或者控制所有特定小苏中meter的UpdateDivider,然后使用measure中最新的值或者变量立即刷新meter。注意meter将在!RedrawGroup命令执行之后才会重新进行绘制。

回复

使用道具 举报

签到天数: 234 天

[LV.7]常住居民III

发表于 2014-3-26 10:10:01 | 显示全部楼层
好东西...........
回复

使用道具 举报

签到天数: 59 天

[LV.5]常住居民I

发表于 2014-5-2 12:08:20 | 显示全部楼层
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 点击注册

本版积分规则

快速回复 返回顶部 返回列表