关于位状态区域
- Last UpdatedSep 24, 2024
- 1 minute read
使用位状态表,可以为动画配置位状态条件。每个位状态条件都有 3 个通用列:
-
操作员
-
位掩码
-
位匹配
操作员
每个位状态的“运算符”下拉列表中都包含以下选项:

|
选项 |
效果 |
|
全部 |
状态中的所有位都必须与位匹配值一致,才能触发动画。 |
|
任意 |
状态中的任意位与位匹配值一致时,将触发动画。 |
位掩码和位匹配
位状态动画编辑器中的位掩码和位匹配值由“位模式选择器”对话框中的位选择确定。对于每个位选择,位掩码和位匹配中的位按如下方式进行计算:
|
位选择 |
位掩码位 |
位匹配位 |
|
0 |
1 |
0 |
|
1 |
1 |
1 |
|
X |
0 |
0 |
例如,如果 B31=B30=B29=B28 = 1 且 B27=B26=B25=B24 = 0,并且其它所有 32 位都未设置为缺省值“X”,则
位状态 = 11110000XXXXXXXXXXXXXXXXXXXXXXXX
位掩码 = 11111111000000000000000000000000 = 0XFF000000
位匹配 = 11110000000000000000000000000000 = 0XF0000000

忽略的位
状态比较时会忽略位模式中设置为“X”的位。比较时仅会使用位掩码中位值为 1 的位。

对于忽略的位,其位掩码和位匹配值均为“0”。忽略的位在状态比较中会被跳过,不会触发动画。
例如,如下所示的位模式配置。这意味着,输入值中的所有位都是“0”,这会触发位状态。
位掩码 = 0xFFFFFFFD = 11111111111111111111111111111101
位匹配 = 0x00000000 = 00000000000000000000000000000000
位运算符 = 任意
下面的输入值不会触发位状态:
输入值 = 0xFFFFFFFD = 11111111111111111111111111111101
在本示例中,输入值中除了第 2 位之外的所有位都是“1”,并且与位匹配不一致。但是,位掩码中的第 2 位是“0”,这意味着此位会被忽略。在此情况下,不会触发此位状态。
位模式选择器对话框中使用的快捷键
“位模式选择器”对话框包含以下快捷键:
|
控件 |
快捷键 |
功能 |
|
按钮“0” |
0 |
所有位都设置为“0”。 |
|
按钮“1” |
1 |
所有位都设置为“1” |
|
按钮“X(忽略)” |
X |
所有位都设置为“X”(忽略)。 |
|
按钮“确定” |
O |
接受位模式选择器配置 |
|
按钮“取消” |
C |
取消位模式选择器配置 |