Notes

LINEで送る

INDEX

詳細

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 1.0 Webplugin uses type=”application/x-wacom-tablet”
Version 2.0 Webplugin uses type=”application/x-wacomtabletplugin”

IEブラウザはActiveX APIを使用して、CLASSID (GUID)によってWebpluginを識別します。新旧Webplugin GUIDは、以下のとおりです。

Version 1.0 Webplugin uses classid=”449E4080-7C69-4767-A1AE-6AAE25B0B906″
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アプリケーションでシステムマウスイベントのペンデータを読み取るという方法です(以下の例を参照してください)。

図1 – Webplugin Pen APIアーキテクチャーの概要

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アプリケーションは、タッチデータを描画するための「走り書き」アプリケーションを実装して、システムカーソルを移動するためにデータをシステムに渡すことができます。

図2 – Webplugin Touch APIアーキテクチャーの概要

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 パラメータ:
deviceID Int

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	// 指の接触領域の論理的な高さ
[1] FB::VariantMapおよびFB::VariantListはjavascriptによって認識されるデータ構造体です。これらの構造体は、このプラグインの作成元のFirebreathフレームワーク(http://www.firebreath.org)によって定義されています。
			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
		...
返されるFB::VariantMapのサイズは、最新のタッチデータパケット内の指の数に依存します。動的FB::VariantMapがサポートされていない場合、プラグインは10本指用のマップを事前割り振りし、最新のタッチAPIデータパケットの指の数のデータに入力します。
NumFingers
最新のデータパケット内で検出された指の数。WebPluginは、各指のタッチデータを入力します。
DeviceID – タッチデータの発生元のタブレットの固有ID。
Status
返されたFB::Variantに有効なデータが含まれているかどうかを示します。データが有効な場合、Statusはゼロになります。データが無効な場合、Statusは-1の値になります。
PosXおよびPosY
液晶のないペンタブレットの場合、0から1.0の範囲の論理単位です。
液晶ペンタブレットの場合、仮想デスクトップ範囲内のピクセル画面座標です。
WidthおよびHeight – 指による接触の論理的な幅と高さを表します。 *
Sensitivity
接触の強さ。これは圧力ではありません。これは接触点の強さをデバイス/ユーザごとに個別に表わしたものです。同じフレーム/ジェスチャー内の他の指との関係でのみ有効です。 *
Orientation – 指による接触の垂直からの楕円角度。*
FingerState = 0(不明)、1(ダウン)、2(ホールド)、3(アップ)
移動状態がないことに注意してください。ホールド状態は、指の位置が変わる場合に移動と解釈できます。
* このプロパティは、すべてのfeel™マルチタッチデバイスでサポートされているとは限らず、将来の使用のために予約されています。
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 パラメータ:
deviceID Int

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 プラグインイベント名
“onTouchDataEvent”
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 プラグインイベント名
“onTouchDeviceAttachEvent”
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 プラグインイベント名
“onTouchDeviceDetachEvent”
3.6.3.2 サンプルJavascriptの使用

イベントの登録:

if (window.addEventListener) 
{
    obj.addEventListener("TouchDeviceDetachEvent",touchDeviceDetachHandler,false); 
} 
else 
{
    obj.attachEvent("onTouchDeviceDetachEvent", touchDeviceDetachHandler);
}

イベントの関数ハンドラ:

function touchDeviceDetachHandler ()
{
// 現在のタッチデバイスへの接続を閉じます
    plugin().touchAPI.Close(_touchDeviceID);
}
Top