Notes
INDEX
- 1 概要
- 1.1 Webpluginバージョンの履歴
- 1.2 サポートされるブラウザ
- 1.2.1 サポートされるブラウザおよびオペレーティングシステム
- 1.3 プラグインファイル
- 1.3.1 Windowsプラグインファイル
- 1.3.2 スタンドアロンWebpluginインストーラ
- 1.4 Mac OSXプラグインファイル
- 1.4.1 WacomNetscape.plugin (Firefox用) WacomSafari.plugin (Safari用)
- 2 Web plugin Pen API
- 2.1 サポートされるタブレットおよびWebpluginのバージョン
- 2.2 開発リソース
- 2.3 プログラミングモデル
- 2.4 Webplugin Pen API(WebPAPI)プロパティ
- 2.5 サンプルJavascriptの使用
- 2.6 WebアプリケーションのWebplugin1.0から2.0.x.xへの更新
- 3 Webplugin feel™ Multi-Touc API
- 3.1 サポートされるタブレット
- 3.2 開発リソース
- 3.3 プログラミングモデル
- 3.4 サンプルJavascriptの使用
- 3.5 Webplugin feel™ Multi-Touch APIプロパティ
- 3.5.1 TouchRawFingerData
- 3.5.2 TouchDeviceCapabilities
- 3.5.3 TouchDeviceAttached
- 3.5.4 TouchDeviceIDList
- 3.5.5 Open
- 3.5.6 Close
- 3.6 Webplugin feel™ Multi-Touch APIイベント
- 3.6.1 TouchDataEvent
- 3.6.2 TouchDeviceAttachEvent
- 3.6.3 TouchDeviceDetachEvent
詳細
1 概要
この資料では、更新された新しいバージョンのWacom Webpluginの使用法とAPIについて説明します。Webpluginは、ブラウザプラグイン(アドオン)コンポーネントです。これにより、javascript Webアプリケーションは、Wacomタブレットペンデータおよびタッチデータを(サポートされるWacomタッチ対応タブレットで)受信できるようになります。
新しいWebplubin(旧1.0 Webpluginの代わりに使用できる)には、旧Webpluginでサポートされていたのと同じペンプロパティが含まれています。今のところ、アプリケーションで旧Webpluginを使用することはできますが、この資料で説明されている新しい2.0 Webpluginにアプリケーションを更新することを強くお勧めします。詳しくは、セクション2.6を参照してください。将来のある時点で、旧Webpluginのサポートは終了します。
Wacomタブレットプラグイン(Webplugin)は、特定のタブレットプロパティを取得するためのサポートを提供するブラウザ拡張機能であり、Webアプリケーションで使用することができます。このプラグインは、インストール済みのWacomタブレットドライバサービスと連携して、筆圧とペンの位置などのペンデータ(セクション2を参照)と、タブレットにタッチしている指の数などのタッチデータおよびフィンガーデータ(セクション3を参照)を提供します。
例えば、タブレットペンの筆圧プロパティと位置プロパティを使用して、ユーザがWebページ上に自由に描画できるWeb描画アプリケーション(「走り書き」の例に出てくるアプリケーションなど)を作成できます。
この資料では、プラグインAPIの要約を示し、WindowsまたはMac OSXシステムにプラグインをインストールして使用する方法について説明します。
WebpluginペンおよびタッチAPIの使用方法を示す例については、Wacom Developer Network(http://wdnet.jp/library/web/)を参照してください。
プラグインコンポーネントは、Wacomタブレットドライバソフトウェアのインストール時にユーザシステムに自動的にインストールされます。
1.1 Webpluginバージョンの履歴
Windowsのバージョン | Macのバージョン | 変更内容 | 日付 | 作成者 |
1.0.0.1 | 1.0.0.1 | 最初のプラグインリリース – WindowsおよびMac OSのサポート | 2008/12/11 | B. Straub |
1.0.0.3 | 1.0.0.1 | バージョンプロパティ、Opera、Chrome、Safariの各ブラウザのサポート、バグ修正の追加 | 2009/09/01 | R. Cohn |
1.1.0.4 | 1.0.0.1 | Windowsプラグインに関する情報、URLロケーション、問題の追加 | 2009/09/29 | R. Cohn |
1.1.0.4 | 1.0.0.1 | インストーラURLの修正 | 2009/12/02 | R. Cohn |
1.1.0.5 | 1.0.0.1 | サブピクセル解像度およびタブレット位置のWindowsサポートの追加 | 2010/06/17 | R. Cohn |
1.1.0.8 (IE) 1.1.0.6 (NP) |
1.0.0.1 | TabletModelプロパティの追加 | 2010/11/29 | R. Cohn |
1.1.0.9 (IE) 1.1.0.7 (NP) |
1.0.0.1 | SetFocusの追加(Windowsのみ) | 2010/01/10 | R. Cohn |
1.1.0.10 (IE) 1.1.0.8 (NP) |
1.0.0.1 | ストリング処理の修正(Windowsのみ) | 2010/01/26 | R. Cohn |
2.0 | 2.0 | Firebreathプラットフォームへの更新、 PenAPIとTouchAPIの情報の結合 |
2010/05/23 | R. Cohn D. Ralley |
1.2 サポートされるブラウザ
1.2.1 サポートされるブラウザおよびオペレーティングシステム
Firefox、Safari、Chrome、およびOperaは、「Netscape」ブラウザとして知られているブラウザです。これらのブラウザにWebpluginを使用するには、Internet Explorer(「ActiveX」APIを使用)とは異なるAPIが必要です。この資料で説明するWebpluginは、同一のプラグインコンポーネント内で両方のAPIタイプをサポートします。
各ブラウザおよびオペレーティングシステムでのWebpluginのサポートの有無は、以下のとおりです。
Windows 7、Vista、XP | Mac OSX 10.6、10.7、10.8 | |
Firefox | 有 | 有 |
Safari | 有 | 有 |
Chrome | 有 | 有 |
Internet Explorer | 有 | 無 |
1.3 プラグインファイル
1.3.1 Windowsプラグインファイル
Internet Explorer (IE)とNetscape-plugin(NP)の両方のブラウザのプラグイン操作をサポートする1つのプラグインモジュールがあります。
ユーザがWacomタブレットドライバソフトウェアをインストールすると、すべての必要なWebpluginコンポーネントがシステムにインストールされます。したがって、ユーザは、Webpluginプロパティを使用してペンデータおよびタッチデータを(サポートされるタブレット上で)取得できるjavascriptアプリケーションをすぐに作成できます。プログラミング例については、http://wdnet.jp/library/web/を参照してください。
Webpluginは、HTML Webアプリケーションでmime-typeによって識別できます。新旧Webpluginのmime-typeは、以下のとおりです。
Version 2.0 Webplugin uses type=”application/x-wacomtabletplugin”
IEブラウザはActiveX APIを使用して、CLASSID (GUID)によってWebpluginを識別します。新旧Webplugin GUIDは、以下のとおりです。
Version 2.0 Webplugin uses classid=”092dfa86-5807-5a94-bf3b-5a53ba9e5308″
2 Webplugin Pen API
Wacom Webplugin Pen API (WebPAPI)は、すべてのWacomコンシューマタブレットおよびプロフェッショナルタブレットからペンデータにアクセスするためのブラウザプラグインインターフェースです。WebPAPIは、Wacom Webplugin Feel™ Multi-Touch API(WebTAPI)も含まれているWebpluginコンポーネントに含まれています。
WebPAPIは、ペンデータを使用するアプリケーションを開発するためにWacomタブレットのペンデータへのアクセスを必要とするWeb開発者が使用できます。WebPAPIの重要な機能には、以下に関するデータレポートがあります。
- ペンの位置
- ペンの筆圧データ
- ペンの回転データ
- ペンの傾きデータ
- ペンの消しゴムまたはヒント表示
2.1 サポートされているタブレットとWebPluginバージョン
- WebPAPIプロパティは、バージョン1.0から2.0のWebpluginでサポートされています。
- WebPAPIは、現在すべてのWacomプロフェッショナルタブレットおよびコンシューマタブレットでサポートされています。
2.2 開発リソース
WebPAPIを使用するために必要な開発コンポーネントは、タブレットドライバと一緒にインストールされます。Webアプリケーションのプログラミングをすぐに開始するためにWebPAPIに追加する必要がある追加の「SDK」またはモジュールはありません。
WebTAPIの例は、http://wdnet.jp/library/web/にあります。
2.3 プログラミングモデル
図1のダイアグラムは、システムアーキテクチャーにおけるWebPAPIの位置関係の概要を示しています。分かりやすくするために、プラグインがブラウザのプロセススペース内にあるものとして示されています。実際には、ほとんどのブラウザが「アウトプロセス」モデルになっています。このモデルでは、プラグインインスタンスは独自のプロセスで起動されます。
WebPAPIに対するアクセスは、タブレットドライバのインストール時にユーザのシステムにインストールされるWebpluginコンポーネントから行われます。Webpluginは、ユーザがタブレット上にペンで描画することによって生成されるペンデータをキャッシュに入れます。javascriptアプリケーションが最新のペンデータを読み取る必要がある場合は、いずれかのWebPAPIプロパティ呼び出しを行います(以下のプロパティリストを参照してください)。ユーザのペンの動作とペンデータとを同期する標準的な方法は、javascriptアプリケーションでシステムマウスイベントのペンデータを読み取るという方法です(以下の例を参照してください)。

2.4 Webplugin Pen API(WebPAPI)プロパティ
プラグインのプロパティは、すべてのバージョンで同じです。ただし、すべてのプロパティをサポートしているのは、Wacomプロフェッショナルタブレット(Intuos、Cintiq)だけです。サポートされていないプロパティは、ゼロの値を返します。以下の表で、サポートされるプロパティについて説明します。
プロパティ | 型 | デフォルト値 | 説明 | サポートされるタブレット | 読み取り/書き込み |
isEraser | BYTE | 0 (false) | TRUE:最後に確認されたパケットが消しゴムから発生した場合。 FALSE:それ以外の場合。 |
コンシューマ、プロフェッショナル | 読み取り専用 |
isWacom | BYTE | 1(true:接続) 0(false:未接続) |
TRUE:オブジェクトがWacom Wintabに接続されている場合。 FALSE:それ以外の場合。 |
コンシューマ、プロフェッショナル | 読み取り専用 |
pointerType | LONG | 0 | 0 = 入力デバイスなし 1 = ペン 2 = マウス 3 = 消しゴム |
コンシューマ、プロフェッショナル | 読み取り専用 |
posX | LONG | 0 | 最後に確認されたパケットのピクセル座標におけるXの位置。 | コンシューマ、プロフェッショナル | 読み取り専用 |
posY | LONG | 0 | 最後に確認されたパケットのピクセル座標におけるYの位置。 | コンシューマ、プロフェッショナル | 読み取り専用 |
pressure | FLOAT | 0 | 最後に確認されたパケットの[0.0,1.0]の範囲内の筆圧。 | コンシューマ、プロフェッショナル | 読み取り専用 |
rotationDeg | FLOAT | 0.0 | 最後に確認されたパケットの回転値(度)。 | プロフェッショナル | 読み取り専用 |
rotationRad | FLOAT | 0.0 | 最後に確認されたパケットの回転値(ラジアン)。 | プロフェッショナル | 読み取り専用 |
sysX | FLOAT | 0.0 | 最後に確認されたパケットのピクセル座標におけるXの位置(サブピクセル解像度まで)。 | コンシューマ、プロフェッショナル | 読み取り専用 |
sysY | FLOAT | 0.0 | 最後に確認されたパケットのYの位置(ピクセル)(サブピクセル解像度まで)。 | コンシューマ、プロフェッショナル | 読み取り専用 |
tabX | LONG | 0 | 最後に確認されたパケットのタブレット座標におけるXの位置。 | コンシューマ、プロフェッショナル | 読み取り専用 |
tabY | LONG | 0 | 最後に確認されたパケットのタブレット座標におけるYの位置。 | コンシューマ、プロフェッショナル | 読み取り専用 |
SetFocus | BOOL | 該当なし | True:プラグインを含むブラウザページが、タブレットデータイベントのフォーカスを取得するように強制する。 False:別のページが、タブレットデータイベントのフォーカスを取得できるようにする。 |
コンシューマ、プロフェッショナル | 書き込み専用 |
TabletModel | STRING | “”(空ストリング) | 最後にタッチされたタブレットのモデル名を返す。 (例:”Intuos4 Medium”) |
コンシューマ、プロフェッショナル | 読み取り専用 |
TabletModelID | STRING | “”(空ストリング) | 最後にタッチされたタブレットのタブレットIDを返す。 (例:”PTK-640″) |
コンシューマ、プロフェッショナル | 読み取り専用 |
tangentialPressure | FLOAT | 0.0 | 最後に確認されたパケットの[0.0,1.0]の範囲内の接線方向圧力値。 | プロフェッショナル | 読み取り専用 |
tiltX | FLOAT | 0.0 | 最後に確認されたパケットの[-1.0, 1.0]の範囲内のXチルト値。 | プロフェッショナル | 読み取り専用 |
tiltY | FLOAT | 0.0 | 最後に確認されたパケットの[-1.0, 1.0]の範囲内のYチルト値。 | プロフェッショナル | 読み取り専用 |
version | LONG | <プラグインバージョン> | 10進形式のプラグインのバージョン(例:1.1.0.1は、1101と報告される)。 | コンシューマ、プロフェッショナル | 読み取り専用 |
2.5 サンプルJavascriptの使用
WebPAPIを使用するjavascriptアプリケーションは、マウスイベントドリブンモデルを採用する必要があります。このモデルでは、アプリケーションは、マウスダウン、マウスドラッグ、およびマウスアップの各イベント発生時にペンプロパティを照会します。例えば、筆圧とペンのXおよびYの位置を取得するには、以下のjavascriptを使用できます。
function mousedown(evt) { var canvas = document.getElementById('canvas'); canvas.onmousemove=mousedrag; … } function mousedrag(evt) { var plugin = document.getElementById('wtPlugin'); var pressure = plugin.penAPI.pressure; var posX = plugin.penAPI.posX; var posY = plugin.penAPI.posY; … } <body … > <canvas id="canvas" onmousedown="mousedown(event);" …> </canvas> </body>
完全な例は、http://wdnet.jp/library/web/にあります。
2.6 WebアプリケーションのWebplugin1.0から2.0.x.xへの更新
WebアプリケーションをWebplugin 1.0から2.0に更新する際に、以下を行う必要があります。
- プラグインmime-typeをtype=”application/x-wacom-tablet“から
type=”application/x-wacomtabletplugin”に変更する - プロパティへのアクセスをplugin.<property>からplugin.penAPI.<property>に変更する
- 例えば、Webplugin 2.0を使用する場合は、以下のようにする
<html> <head> <script type="text/javascript"> function getPressure() { var plugin = document.getElementById('wtPlugin'); return plugin.penAPI.pressure; } … </script> </head> <body> <object id="wtPlugin" type="application/x-wacomtabletplugin" …> … </object> </body> … </html>
完全な例は、http://wdnet.jp/library/にあります。
3 web plugin feel™ multi-touch API
Wacom Webplugin feel™ Multi-Touch API(WebTAPI)は、特定のWacomタブレットからタッチデータにアクセスするためのブラウザプラグインインターフェースです。WebTAPIは、Wacom Webplugin Pen API(WebPAPI)も含まれているWebpluginコンポーネントに含まれています。
WebTAPIは、タッチアプリケーションを開発するためにWacomタッチタブレットの未処理データへのアクセスを必要とするWeb開発者が使用できます。WebTAPIによって、開発者は、自由にフィンガーデータを使用してWebアプリケーションを制御したり、アプリケーション用のカスタムジェスチャーを定義したりすることができます。WebTAPIの重要な機能には、以下に関するレポートがあります。
- システムに接続されているサポートされるタッチタブレットの数とタイプ
- 接続されているサポートされるタッチタブレットの機能
- タブレットをタッチしている指の数
- タッチしている各指の指ローデータ
- タッチタブレットの未処理フィンガーデータの到着
- タッチタブレットのアタッチイベント
- タッチタブレットのデタッチイベント
3.1 サポートされているタブレット
- WebTAPIは、2.0より前のバージョンのWebpluginではサポートされていない
- WebTAPIは、5.2.5より前のWacomタブレットドライバではサポートされてない(Bambooタブレットドライバ)
- WebTAPIは、現在BambooタブレットCTT-470、CTH-470、CTH-670でサポートされている。
3.2 開発リソース
WebTAPIを使用するために必要な開発コンポーネントは、タブレットドライバと一緒にインストールされています。Webアプリケーションのプログラミングをすぐに開始するためにWebTAPIに追加する必要がある追加の「SDK」またはモジュールはありません。
WebTAPIの例は、http://wdnet.jp/library/web/にあります。
3.3 プログラミングモデル
図2のダイアグラムは、システムアーキテクチャーにおけるWebTAPIの位置関係の概要を示しています。分かりやすくするために、プラグインがブラウザのプロセススペース内にあるものとして示されています。実際には、ほとんどのブラウザが「アウトプロセス」モデルになっています。このモデルでは、プラグインインスタンスは独自のプロセスで起動されます。
WebTAPIに対するアクセスは、タブレットドライバのインストール時にユーザのシステムにインストールされるWebpluginコンポーネントから行われます。Webpluginアプリケーションは、タッチデバイスがシステムに接続されたり、システムから切り離されたりするときや、データが使用可能になるとき(ユーザがタブレットをタッチするとき)に通知を受信します。アプリケーションがアタッチイベントとデタッチイベントを受信すると、デバイスの現在のリストを照会し、いずれかのデバイスを選択し、そのデバイスのタッチデバイス機能(例えば、サポートされる指の数、タブレットの寸法など)を照会できます。タッチデータ通知を受信すると、アプリケーションはWebTAPIでタッチデータを照会できます。
Webアプリケーションは、Open.PassThru引数(セクション3.5.5を参照してください)を使用することにより、データを取り込むのか、単にデータを監視してシステムの他のプロセスに渡せるようにするのかを決定できます。例えば、Webアプリケーションは、タッチデータを描画するための「走り書き」アプリケーションを実装して、システムカーソルを移動するためにデータをシステムに渡すことができます。

3.4 サンプルJavascriptの使用
WebTAPIを使用するjavascriptアプリケーションは、イベントドリブンモデルを採用して、タッチデバイスのアタッチイベント、デタッチイベント、およびデータイベント発生時のWebpluginからの通知を待機する必要があります。疑似コードでは、このようなアプリケーションの構造は、以下のようになります。
- アタッチイベントの登録
- デタッチイベントの登録
- アタッチイベントで:
- 切り離されたタッチデバイスの現在のリストを読み取る
タッチデータの受信元デバイスを開く
そのデバイスからタッチデータを受信するように登録する
- 未処理フィンガーデータイベントで:
- タッチデータを読み取る
アプリケーションでデータを使用する
- デタッチイベントで:
- 接続されたタッチデバイスの現在のリストを読み取る
使用中のデバイスが存在しなくなった場合は、そのデバイスを閉じます
実際のjavascriptの例については、以下のプロパティの例を参照してください。完全な例は、http://wdnet.jp/library/web/にあります。
3.5 Webplugin feel™ Multi-Touch APIプロパティ
WebTAPIプロパティの概要を以下に示します。プロパティの詳細については、後続の各セクションで説明します。
プロパティまたはイベント名 | パラメータ | 戻り型 | 説明 | 読み取り/書き込み |
TouchRawFingerData | deviceID | FB::VariantMap | 指定したタッチデバイスから、最新の未処理フィンガータッチデータをユーザに返します。 | 読み取り専用 |
TouchDeviceCapabilities | deviceID | FB::VariantMap | 指定したタッチデバイスの機能を返します。 | 読み取り専用 |
TouchDeviceIDList | なし | FB::VariantList | 接続されているタッチデバイスIDのリストを返します。 | 読み取り専用 |
Open | deviceID passThru |
0(成功の場合)、 非0(それ以外の場合) |
指定したデバイスに接続します。 | 書き込み専用 |
Close | deviceID | 0(成功の場合)、 非0(それ以外の場合) |
指定したタッチデイバスから切り離します。 | 書き込み専用 |
TouchDataEvent | 該当なし | 該当なし | タッチデータが受信されると発生します。 | |
TouchDeviceAttachEvent | 該当なし | 該当なし | サポートされるタッチデバイスがシステムに接続されると発生します。 | |
TouchDeviceDetachEvent | 該当なし | 該当なし | サポートされるタッチデバイスがシステムから切り離されると発生します。 |
3.5.1 TouchRawFingerData
指定したタッチデバイスから、最新の未処理フィンガータッチデータをユーザに返します。
3.5.1.1 パラメータ:
TouchDeviceCapabilitiesもしくは、TouchDeviceIDListから取得したdeviceIDを指定します。
有効なID以外のdeviceIDを指定すると、FB::VariantMapのStatusフラグはエラーを示します。
3.5.1.2 戻り値:
以下のメンバーで構成されるFB::VariantMap [1]:
NumFingers Int // このデータパケット内の指の数 DeviceID Int // データの送信元デバイス Status Int // データが有効かどうかを示します(下記を参照) FingerList FB::VariantList // フィンガーデータのリスト FingerList[0] FB::VariantMap // Finger1のデータ FingerID Int // データパケットで指定 PosX float // APIから渡されたX座標(下記を参照) PosY float // APIから渡されたY座標(下記を参照) Width float // 指の接触領域の論理的な幅 Height float // 指の接触領域の論理的な高さ
Orientation float // 指による接触の垂直からの楕円角度 Confidence Int // ドライバが有効なタッチと判断する場合はtrue Sensitivity Short // 接触の強さ FingerState Int // この指の最新の動作(下記を参照) FingerList[1] FB::VariantMap // Finger2のデータ FingerID Int PosX float PosY float Width float Height float Orientation float Confidence Int Sensitivity Short FingerState Int ...
- NumFingers –
- 最新のデータパケット内で検出された指の数。WebPluginは、各指のタッチデータを入力します。
- DeviceID – タッチデータの発生元のタブレットの固有ID。
- Status –
- 返されたFB::Variantに有効なデータが含まれているかどうかを示します。データが有効な場合、Statusはゼロになります。データが無効な場合、Statusは-1の値になります。
- PosXおよびPosY –
- 液晶のないペンタブレットの場合、0から1.0の範囲の論理単位です。
液晶ペンタブレットの場合、仮想デスクトップ範囲内のピクセル画面座標です。 - WidthおよびHeight – 指による接触の論理的な幅と高さを表します。 *
- Sensitivity –
- 接触の強さ。これは圧力ではありません。これは接触点の強さをデバイス/ユーザごとに個別に表わしたものです。同じフレーム/ジェスチャー内の他の指との関係でのみ有効です。 *
- Orientation – 指による接触の垂直からの楕円角度。*
- FingerState = 0(不明)、1(ダウン)、2(ホールド)、3(アップ)
3.5.1.3 サンプルJavascriptの使用:
var deviceID = plugin.touchAPI.TouchDeviceIDList[0]; var fingerdata = plugin.touchAPI.TouchRawFingerData(deviceID); var numFingers = fingerdata.NumFingers; var status = fingerdata.Status; if ( status == 0 ) { var finger1= FingerData.FingerList[0]; var finger1ID = finger1.FingerID; if (finger1.Confidence == 1 && finger1.FingerState != 0) { var finger1PosX = finger1.PosX; var finger1PosY = finger1.PosY; ... } var finger2 = FingerData.FingerList[1]; etc... }
3.5.2 TouchDeviceCapabilities
指定したタッチデバイスの機能を返します。
3.5.2.1 パラメータ:
TouchDeviceIDListから取得したdeviceIDを指定してください。
3.5.2.2 戻り値:
FB::VariantMapは下記のメンバーで構成されています。
Version Int // データ構造のバージョン DeviceID Int // このデバイスのID DeviceType Int // この値は現在、常にゼロに設定されます MaxFingers Int // デバイスでサポートされる指の最大数 ReportedSizeX Int // タッチポイントのX方向の範囲 ReportedSizeY Int // タッチポイントのY方向の範囲 PhysicalSizeX float // デバイスのアクティブタッチ面の幅(mm) PhysicalSizeY float // デバイスのアクティブタッチ面の高さ(mm) LogicalOriginX float // デバイスのMinX。現在のディスプレイの0,0点に対して相対的 LogicalOriginY float // デバイスのMinY。現在のディスプレイの0,0点に対して相対的 LogicalWidth float // デバイスの論理的な幅。MaxX = LogicalOriginX+LogicalWidth LogicalHeight float // デバイスの論理的な高さ。 MaxY = LogicalOriginY+LogicalHeight
呼び出しが失敗した場合、返されるFB::VariantMapはVersion == -1になります。
3.5.2.3 サンプルJavascriptの使用法:
var deviceID = plugin.touchAPI.TouchDeviceIDList[0]; var touchDeviceCaps = plugin.touchAPI.TouchDeviceCapabilities(deviceID); var maxNumFingers = touchDeviceCaps. MaxFingers; var sizeX = touchDeviceCaps.ReportedSizeX; var sizeY = touchDeviceCaps.ReportedSizeY; etc...
3.5.4 TouchDeviceIDList
接続されているタッチデバイスIDのリストを返します。
3.5.4.1 パラメータ:
なし
3.5.4.2 戻り値:
接続されているタッチデバイスIDのFB::VariantList。接続されているタッチデバイスIDがない場合、配列のサイズはゼロです。
3.5.4.3 サンプルJavascriptの使用:
_touchDeviceIDList = plugin.touchAPI.TouchDeviceIDList;
3.5.5 Open
このメソッドは、指定したデバイスに接続し、そのデバイスのデータがクライアントに送信されるようにクライアントのタッチAPIを初期化します。クライアントは、タッチデータがシステムに渡されないようにするために接続することができます。または、クライアントは、タッチデータがクライアントに渡されると同時にシステムにも送信されるようにするために接続することもできます。
3.5.5.1 パラメータ:
deviceID Int // 指定したdeviceIDのタッチデバイスを開きます deviceIDはTouchDeviceIDListもしくは、TouchDeviceCapabilitiesからすることができます。 passThru Int // 1: データがシステムに渡されます。0:データはシステムに渡されません
3.5.5.2 戻り値:
成功の場合は0、エラーの場合はゼロ以外。
3.5.5.3 サンプルJavascriptの使用:
var caps = plugin.touchAPI.TouchDeviceCapabilities(-1);// 最初のタッチデバイスのケイパビリティーを取得します
次のいずれかが機能します。
var status = plugin.touchAPI.Open(-1, 0); // 最初のデバイスを開きます。データをシステムに渡しません var status = plugin.touchAPI.Open(caps.DeviceID, 0); // 指定したデバイスを開きます
3.5.6 Close
このメソッドは、指定したデバイスからクライアントを切り離して、そのデバイスまたはすべてのタッチデバイスのデータがこれ以上クライアントに送信されないようにします。
3.5.6.1 パラメータ:
deviceID Int // -1 -> すべてのタッチデバイスを閉じます。またはTouchDeviceCapabilities から渡されるdeviceIDで指定したタッチデバイスを閉じます
3.5.6.2 戻り値:
成功の場合は0、エラーの場合は非ゼロ。
3.5.6.3 サンプルJavascriptの使用:
以下のいずれも機能します。
var status = plugin.touchAPI.Close (-1); // すべてのデイバスを閉じます var status = plugin.touchAPI.Close (caps.DeviceID); // 指定したデバイスを閉じます
3.6 Webplugin feel™ Multi-Touch APIイベント
3.6.1 TouchDataEvent
タッチデータがサポートされるタッチデバイスから受信されると発生します。クライアントのハンドラは、このイベントの受信時にデータを照会できます(以下を参照してください)。
3.6.1.1 プラグインイベント名
3.6.1.2 サンプルJavascriptの使用法:
イベントの登録:
if (window.addEventListener) { obj.addEventListener("TouchDataEvent", touchDataHandler, false); } else { obj.attachEvent("onTouchDataEvent", touchDataHandler); }
イベントの関数ハンドラ:
function touchDataHandler() { // TouchRawFingerDataを使用して、キャッシュデータを照会し // クライアント表示領域でフィンガーデータを処理/描画します }
3.6.2 TouchDeviceAttachEvent
サポートされるタッチデバイスがシステムに接続されると発生します。
3.6.2.1 プラグインイベント名
3.6.2.2 サンプルJavascriptの使用法:
イベントの登録:
if (window.addEventListener) { obj.addEventListener("TouchDeviceAttachEvent", touchDeviceAttachHandler, false); } else { obj.attachEvent("onTouchDeviceAttachEvent ", touchDeviceAttachHandler); }
イベントの関数ハンドラ:
function touchDeviceAttachHandler () { // タッチデバイスの現在のリストを取得し、最初のデバイスを開きます。 _touchDeviceIDList = plugin.touchAPI.TouchDeviceIDList; _touchDeviceID = _touchDeviceIDList[0]; plugin().touchAPI.Open(_touchDeviceID, 0); }
3.6.3 TouchDeviceDetachEvent
サポートされるタッチデバイスがシステムから切り離されると発生します。
3.6.3.1 プラグインイベント名
3.6.3.2 サンプルJavascriptの使用
イベントの登録:
if (window.addEventListener) { obj.addEventListener("TouchDeviceDetachEvent",touchDeviceDetachHandler,false); } else { obj.attachEvent("onTouchDeviceDetachEvent", touchDeviceDetachHandler); }
イベントの関数ハンドラ:
function touchDeviceDetachHandler () { // 現在のタッチデバイスへの接続を閉じます plugin().touchAPI.Close(_touchDeviceID); }