HarmonyOS SourceTool.xxx值为undefined

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

HarmonyOS
2天前
浏览
收藏 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")
}
分享
微博
QQ
微信
回复
2天前
相关问题
如何获取单例undefined
503浏览 • 1回复 待解决
sim.getOpNameSync获取到的
228浏览 • 0回复 待解决
鸿蒙 | Jar包中解析xml文件
7476浏览 • 1回复 待解决