HarmonyOS SourceTool.xxx值为undefined

手指或者手写笔触摸屏幕时,TouchEvent对象中有一个属性是sourceTool,其类型是SourceTool 是一个枚举类。打印SourceTool.Finger、SourceTool.Pen打印结果是undefined。

HarmonyOS
2024-12-25 14:36:16
990浏览
收藏 0
回答 1
回答 1
按赞同
/
按时间
Heiang

参考示例如下:

let fingerType: SourceTool = event.sourceTool;
// 这里获取到的是枚举的“Value”,是number类型的值; 无法和SourceTool.Unknown做等号判断;
// 可以通过以下代码查询到SourceTool 所有的枚举的key/Value
const enumKeys = Object.keys(SourceTool).filter(key => isNaN(Number(key)));
const enumValues = enumKeys.map(key => SourceTool[key as keyof object]);
console.log('Keys: ', enumKeys);
console.log('Values: ', enumValues);

// Keys: Unknown,FINGER,PEN,MOUSE,TOUCHPAD,JOYSTICK Values: 0,1,2,7,9,10 此时使用value去判断,所以修改代码如下
if (fingerType === 1) {
  console.log("dianju_手指_down")
} else if (fingerType == 2) {
  console.log("dianju_手写笔_down")
} else if (fingerType == 0) {
  console.log("dianju_未知物_down")
} else if (fingerType == 7) {
  console.log("dianju_鼠标_down")
} else if (fingerType == 9) {
  console.log("dianju_触摸板_down")
} else if (fingerType == 10) {
  console.log("dianju_操纵手柄_down")
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
分享
微博
QQ
微信
回复
2024-12-25 16:35:50
相关问题
如何获取单例undefined
1371浏览 • 1回复 待解决
API15中InteractionHand枚举类型undefined
253浏览 • 0回复 待解决
sim.getOpNameSync获取到的
884浏览 • 0回复 待解决
HarmonyOS navPathStack.removeByName(xxx)
784浏览 • 1回复 待解决
鸿蒙 | Jar包中解析xml文件
8381浏览 • 1回复 待解决