1# 轴事件 2<!--Kit: ArkUI--> 3<!--Subsystem: ArkUI--> 4<!--Owner: @jiangtao92--> 5<!--Designer: @piggyguy--> 6<!--Tester: @songyanhong--> 7<!--Adviser: @HelloCrease--> 8 9轴事件指组件被鼠标滚轮滚动或触控板双指沿特定方向(轴)滑动时触发的事件。“轴”指二维坐标系中的方向,分为水平(X轴)和垂直(Y轴)。 10 11> **说明:** 12> 13> 从API Version 17开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。 14 15## onAxisEvent 16 17onAxisEvent(event: Callback\<AxisEvent>): T 18 19鼠标滚轮滚动或触控板双指滑动时触发该回调。 20 21**原子化服务API:** 从API version 17开始,该接口支持在原子化服务中使用。 22 23**系统能力:** SystemCapability.ArkUI.ArkUI.Full 24 25**参数:** 26 27| 参数名 | 类型 | 必填 | 说明 | 28| ------ | --------------------------------- | ---- | -------------------- | 29| event | Callback\<[AxisEvent](#axisevent)> | 是 | 获得[AxisEvent](#axisevent)对象。 | 30 31**返回值:** 32 33| 类型 | 说明 | 34| -------- | -------- | 35| T | 返回当前组件。 | 36 37## AxisEvent 38 39轴事件的对象说明,继承于[BaseEvent](ts-gesture-customize-judge.md#baseevent8)。 40 41**原子化服务API:** 从API version 17开始,该接口支持在原子化服务中使用。 42 43**系统能力:** SystemCapability.ArkUI.ArkUI.Full 44 45### 属性 46 47**系统能力:** SystemCapability.ArkUI.ArkUI.Full 48 49| 名称 | 类型 | 只读|可选 | 说明 | 50| ------------------- | -----------------------|------|----- | -------------------------------------------------------- | 51| action | [AxisAction](ts-appendix-enums.md#axisaction17) | 是 | 否 | 轴事件的动作类型。<br/>**原子化服务API:** 从API version 17开始,该接口支持在原子化服务中使用。 | 52| x | number | 是 | 否 | 鼠标光标相对于被点击元素左边缘的X坐标。<br/>单位:vp<br/>**原子化服务API:** 从API version 17开始,该接口支持在原子化服务中使用。 | 53| y | number | 是 | 否 | 鼠标光标相对于被点击元素上边缘的Y坐标。<br/>单位:vp<br/>**原子化服务API:** 从API version 17开始,该接口支持在原子化服务中使用。 | 54| windowX | number | 是 | 否 | 鼠标光标相对于当前窗口左上角的X坐标。<br/>单位:vp<br/>**原子化服务API:** 从API version 17开始,该接口支持在原子化服务中使用。 | 55| windowY | number | 是 | 否 | 鼠标光标相对于当前窗口左上角的Y坐标。<br/>单位:vp<br/>**原子化服务API:** 从API version 17开始,该接口支持在原子化服务中使用。 | 56| displayX | number | 是 | 否 | 鼠标光标相对于当前屏幕左上角的X坐标。<br/>单位:vp<br/>**原子化服务API:** 从API version 17开始,该接口支持在原子化服务中使用。 | 57| displayY | number | 是 | 否 | 鼠标光标相对于当前屏幕左上角的Y坐标。<br/>单位:vp<br/>**原子化服务API:** 从API version 17开始,该接口支持在原子化服务中使用。 | 58| scrollStep | number | 是 | 否 | 鼠标轴滚动步长配置。<br/> **说明:** 仅支持鼠标滚轮,取值范围:[0~65535]<br/>**原子化服务API:** 从API version 17开始,该接口支持在原子化服务中使用。| 59| propagation | Callback\<void> | 是 | 否 | 激活[事件冒泡](../../../ui/arkts-interaction-basic-principles.md#事件冒泡)。<br/>**原子化服务API:** 从API version 17开始,该接口支持在原子化服务中使用。 | 60| globalDisplayX<sup>20+</sup> | number | 否 | 是 | 鼠标光标相对于全局屏幕的左上角的X坐标。<br/>单位:vp<br/>取值范围:[0, +∞)<br/>**原子化服务API:** 从API version 20开始,该接口支持在原子化服务中使用。 | 61| globalDisplayY<sup>20+</sup> | number | 否 | 是 | 鼠标光标相对于全局屏幕的左上角的Y坐标。<br/>单位:vp<br/>取值范围:[0, +∞)<br/>**原子化服务API:** 从API version 20开始,该接口支持在原子化服务中使用。 | 62 63### getHorizontalAxisValue 64 65getHorizontalAxisValue(): number 66 67获取此次轴事件的水平轴值。 68 69**原子化服务API:** 从API version 17开始,该接口支持在原子化服务中使用。 70 71**系统能力:** SystemCapability.ArkUI.ArkUI.Full 72 73**返回值:** 74 75| 类型 |说明 | 76| ------- | --------------------------------- | 77| number | 水平轴值。<br>单位:vp | 78 79### getVerticalAxisValue 80 81getVerticalAxisValue(): number 82 83获取此次轴事件的垂直轴值。 84 85**原子化服务API:** 从API version 17开始,该接口支持在原子化服务中使用。 86 87**系统能力:** SystemCapability.ArkUI.ArkUI.Full 88 89**返回值:** 90 91| 类型 |说明 | 92| ------- | --------------------------------- | 93| number | 垂直轴值。<br>单位:vp | 94 95## 示例 96 97该示例中,对按钮设置轴事件,通过滚动鼠标滚轮可获取轴事件的相关参数。 98 99```ts 100// xxx.ets 101@Entry 102@Component 103struct AxisEventExample { 104 @State text: string = '' 105 106 build() { 107 Column() { 108 Row({ space: 20 }) { 109 Button('AxisEvent').width(100).height(40) 110 .onAxisEvent((event?: AxisEvent) => { 111 if (event) { 112 this.text = 113 'AxisEvent:' + '\n action:' + event.action + '\n displayX:' + event.displayX + '\n displayY:' + 114 event.displayY + '\n windowX:' + event.windowX + '\n windowY:' + event.windowY + '\n x:' + event.x + 115 '\n y:' + event.y + '\n VerticalAxisValue:' + event.getVerticalAxisValue() + 116 '\n HorizontalAxisValue:' + event.getHorizontalAxisValue() 117 } 118 }) 119 }.margin(20) 120 121 Text(this.text).margin(15) 122 }.width('100%') 123 } 124} 125``` 126 127鼠标滚轮滚动时: 128 129 130