有没有办法使用JavaScript识别笔压力?最好不要使用Flash,尽可能使用纯JS实现。
编辑:我意识到对于Wacom平板电脑来说是有可能的,因为它们配备了可以与其JavaScript API一起使用的软件(demos)。但对于使用Trust平板或其他品牌的人来说就不太好了...所以这并不好。
如果不能用JS,有人知道如何在C#中实现吗?
有没有办法使用JavaScript识别笔压力?最好不要使用Flash,尽可能使用纯JS实现。
编辑:我意识到对于Wacom平板电脑来说是有可能的,因为它们配备了可以与其JavaScript API一起使用的软件(demos)。但对于使用Trust平板或其他品牌的人来说就不太好了...所以这并不好。
如果不能用JS,有人知道如何在C#中实现吗?
如果用户安装了Wacom平板电脑,那么他们的浏览器将会有一个插件可以访问。 http://www.wacomeng.com/web/index.html
作者编辑:我写这篇文章时已经很久了,请参见下面的评论。
微软在IE11中实现了称为Pointer Events的东西。它允许您访问压力属性以及笔倾斜和接触几何尺寸等内容。
到目前为止,它只在IE11上运行(以及带有供应商前缀的IE10),但有一个W3C 候选推荐,因此也许将来会成为标准。
JavaScript作为一种编程语言本身并没有比其他语言更具有读取这种数据的能力或缺乏能力。
语言并不重要,重要的是语言内部可用的API。
JavaScript可以在许多不同的环境中运行,其中一些可能可以访问此类硬件的API。然而,大多数JavaScript在Web浏览器环境中运行,这显然是您的意思。
Web浏览器环境提供了许多API。最明显的是DOM,它使您能够操作页面等。浏览器中还有其他可用的API。例如,地理位置API。
所有这些都是由W3C定义的标准API(或在某些情况下正在被W3C定义),这意味着支持它们的所有浏览器应该以相同的方式使它们工作。
不幸的是,对于您来说,没有用于处理压力垫的标准API,因此直接回答您的问题是否定的。
未来是否会有这样的API仍有待观察,但我对此表示怀疑。
不过,有一种方法可以做到:ActiveX。
ActiveX是由Microsoft在早期版本的IE中提供的API。它基本上提供了一种从浏览器内部访问几乎任何Windows DLL代码的方式。
由于Windows的压感笔设备驱动程序将作为DLL提供,这意味着理论上您应该能够通过ActiveX控件在浏览器中访问它。因此,是的,您可以使用Javascript编程。
不过,坏消息是,这不是我推荐的东西。作为基于浏览器的技术,ActiveX早已被放弃,因为它造成了巨大的安全漏洞。我认为最新版本的IE甚至不支持它(无论如何,我希望不支持),这意味着您将被迫使用旧版本的IE(而且只有IE - 没有其他浏览器支持它)来运行您的代码。不理想。
不,这是不可能的。甚至使用Flash也不行。
你只能在本地应用程序中实现这一点。Javascript无法访问笔压信息。
var canvas = document.getElementsById("my-canvas");
canvas.addEventListener('pointermove', pointerMoveEvent);
function pointerMoveEvent(event) {
console.log(event.pointerType)
if(event.pointerType === "pen") {
if (event.pressure !== undefined) {
const pressure = event.pressure;
console.log(`Pressure: ${pressure}`);
}
}
}