# 添加轴输入（Axis）

> IOToolkit中，轴输入(**Axis**)将一个或多个轴键进行分组，每次逻辑帧更新(Update)都会响应轴输入(**Axis**)事件

```markup
<IORoot>
  <Device Name="Standard" Type="Standard"></Device>
  
  <Device Name="Joystick" Type="Joystick" Index="0">
    
    <!-- 
      注册轴事件MoveSpeed，MoveSpeed值为非0轴键值的平均值
     -->
    <Axis Name="MoveSpeed">
      <Key Name="JS_X"/>
      <Key Name="Up" Scale="2"/>
      <Key Name="Down" Scale="-2" />
    </Axis>
    <!-- End -->
    
  </Device>
  
  </Device>
</IORoot>
```

### Axis结点属性

| 属性   | 含义    | 示例值       |
| ---- | ----- | --------- |
| Name | 输入轴标识 | MoveSpeed |

### Axis结点下 Key结点属性

|       | 含义     | 示例值 |
| ----- | ------ | --- |
| Name  | 键标识    | Up  |
| Scale | 轴值缩放参数 | 100 |

{% hint style="info" %}
对于**External**设备, **IOUI协议**限制其值范围在\[-1000,1000]，在IOToolkit中，会将其值除以1000，以便于将其值限制在\[-1,1]。
{% endhint %}
