2012-05-08 21 views
7

¿Hay alguna manera de reconocer la presión del lápiz mediante javascript. Preferiblemente no quiero hacer ningún uso de Flash e intentar hacer esto como JS puro.¿Puedo reconocer (tableta gráfica) Pen Pressure en Javascript?

EDIT: bueno, me di cuenta de que es posible que las tabletas de Wacom tengan un software que pueda funcionar con su API de JavaScript para hacerlo posible (demos). Pero no es bueno para personas con tabletas Trust o cualquier otra marca ... Así que no es bueno realmente.

Cualquier cuerpo sabe cómo hacerlo en C# si no es JS?

Respuesta

15

Sí, si el usuario tiene una tableta Wacom instalada, entonces su navegador tendrá un complemento para que pueda acceder.http://www.wacomeng.com/web/index.html

+1

Esta es la mejor respuesta. Lamentablemente, no existe una solución perfecta, ya que las tecnologías de tableta están lejos de ser estandarizadas. Solo tenga en cuenta que actualmente hay un pequeño error al usarlo con la tableta Wacom Bamboo (CTL-460) en Chrome para Mac (también podría estar en Windows, pero no probado personalmente) que hace que la variable isEraser se muestre como verdadera sin importar qué fin está realmente en uso. [Esta oración vincula al Informe de error de Chromium] (http://code.google.com/p/chromium/issues/detail?id=160423) – Adrian

+1

Lamentablemente, desde que Jaunary 2014 Chrome comenzó a eliminar el soporte de NPAPI (http: // www.chromium.org/developers/npapi-deprecation), por lo que incluso si tiene el complemento, Chrome no lo cargará :((lo intenté en MacOSX Yosemite, funciona en Safari pero no en Chrome) – Diego

1

No, eso no es posible. Probablemente ni siquiera con Flash.

0

Solo puede hacerlo en una aplicación nativa. Javascript no tiene acceso a la información de presión del lápiz

0

Javascript como lenguaje de programación en sí mismo no tiene más capacidad o falta de capacidad para leer este tipo de datos que cualquier otro idioma.

El idioma no es importante. Lo que es importante son las API disponibles para ti desde dentro del lenguaje.

Javascript se puede ejecutar en una serie de entornos diferentes, algunos de los cuales posiblemente tengan acceso a API para este tipo de hardware. Sin embargo, la mayoría de Javascript se ejecuta en un entorno de navegador web, y esto es claramente lo que quieres decir.

El entorno del navegador web proporciona una serie de API. El más obvio es el DOM, que te da la capacidad de manipular la página, etc. Sin embargo, hay otras API disponibles en el navegador. Por ejemplo, la API de geolocalización.

Todas estas son API estándar que han sido definidas por el W3C (o en algunos casos están en proceso de ser definidas por el W3C), lo que significa que todos los navegadores compatibles deben hacer que funcionen de la misma manera.

Lamentablemente para usted no hay una API estándar para trabajar con almohadillas de presión, por lo que la respuesta directa a su pregunta es no, no se puede hacer.

Aún queda por ver si habrá uno disponible en el futuro, pero tengo mis dudas.

Sin embargo, hay una manera de hacerlo: ActiveX.

ActiveX es una API proporcionada por Microsoft en versiones anteriores de IE. Básicamente proporciona una forma de acceder a prácticamente cualquier código DLL de Windows desde el navegador.

Dado que el controlador del dispositivo de lápiz de presión para Windows se proporcionará como una DLL, esto significa que en teoría debería poder acceder a él en el navegador a través de un control ActiveX. Entonces, por lo tanto, sí, podría programarlo usando Javascript.

La mala noticia, sin embargo, es que esto no es algo que recomendaría. ActiveX como una tecnología basada en navegador ha sido abandonada hace tiempo, debido a los enormes agujeros de seguridad que causó. No creo que las últimas versiones de IE incluso lo admitan (espero que no, de todos modos), lo que significa que se vería obligado a usar versiones anteriores de IE (y solo IE - ningún otro navegador alguna vez lo soportó) para ejecutar tu codigo. No es ideal.

10

Microsoft implementó algo llamado Pointer Events en IE 11. Le permite acceder a propiedades de presión junto con cosas como la inclinación de la pluma y el tamaño de la geometría de contacto.

Hasta ahora solo funciona en IE11 (e IE10 con prefijos de proveedor) pero hay un W3C candidate recommendation, por lo que quizás sea estándar en el futuro.

+0

Podría use [pressurejs] (https://pressurejs.com/) para usarlo. También parece ser compatible con varias otras API (iOS y lápiz de Apple) – Wouter

+0

Esto ahora también es compatible con Chrome y Opera, y también es experimental en Firefox. – Andreas