WebPlugin リリースノート

LINEで送る

更新情報

Windowsバージョン Macバージョン 変更 日付 作成
2.0.0.1 2.0.0.3 Firebreathプラットフォームに更新。PenAPIとTouchAPIの情報を結合 2010年5月23日 R. Cohn
D. Ralley
2.0.0.3 2.0.0.3 TouchAPIの修正。更新バージョン 2010年10月27日 R. Cohn
2.1.0.1 2.1.0.1 Firebreath 1.6に更新 2012年5月9日 R. Cohn
2.1.0.2 2.1.0.2 バグ修正 各種 R. Cohn
D. Ralley
2.1.0.3 n/c バグ修正 2013年1月2日 R. Cohn

INDEX

詳細

1 概要

このドキュメントでは、新しいWebPluginの変更点について説明します。更新されたWebPluginには、旧1.0.x.xバージョンのWebPluginでサポートされているペンプロパティと同じプロパティが含まれています。アプリケーションはそれらのプラグインを現在も引き続き使用できますが、このドキュメントに記載のWebPluginに更新することを推奨します。詳細については、セクション2.6を参照してください。一部、旧1.0.x.xプラグインのサポートが終了する場合もあります。
Wacomタブレットプラグイン(WebPlugin)は、Webアプリケーションで使用可能な一部のタブレットプロパティの取得のサポートを提供するブラウザ拡張です。このプラグインは、インストールされたWacomタブレットドライバサービスと一緒に動作し、筆圧や位置などのペンデータ(セクション2を参照)、およびタブレットに触れる指の本数や指のデータなどのタッチデータ(セクション3を参照)を提供します。
たとえば、タブレットの筆圧や位置プロパティを使用するWeb描画アプリケーション(「走り書き」サンプルで提供されているものなど)を作成すると、Webページにフリーフォームで描画できるようになります。
このドキュメントでは、プラグインAPIの概要に加え、WindowsまたはMac OSXシステムにプラグインをインストールして使用する方法について説明します。
WebPluginペンおよびタッチAPIの使用例は、Wacomソフトウェア開発サポート(http://www.wacomeng.com/web/index.html)で参照できます。
Wacomタブレットドライバソフトウェアのインストール時に、プラグインコンポーネントもユーザーのシステムに自動的にインストールされますが、スタンドアロンプラグインインストーラもhttp://www.wacom.com/productsupport/plugin.phpから入手できます。これは、タブレットドライバソフトウェアを更新していないシステム向けに用意されたものです。

1.1 サポートされているブラウザ

1.1.1 サポートされているブラウザとオペレーティングシステム

Firefox、Safari、Chrome、およびOperaは「Netscape」ブラウザとして知られています。これらのブラウザでWebPluginを使用するには、「ActiveX」APIを使用しているInternet Explorerとは別のAPIが必要です。このドキュメントで説明するWebPluginは、同じプラグインコンポーネントで両方のAPIタイプをサポートします。
WebPluginは、次のブラウザとオペレーティングシステムでサポートされています。

Windows 7、Vista、XP Mac OSX 10.6、10.7、10.8
Firefox はい はい
Safari はい はい
Chrome はい はい
Internet Explorer はい n/a

通常、具体的に記載されている場合を除き、WebPluginは各ブラウザの最新バージョンおよび旧バージョンをサポートします。

1.2 プラグインファイル

1.2.1 Windowsプラグインファイル

Internet Explorer(IE)とNetscape-plugin(NP)ブラウザのプラグイン操作をサポートするプラグインモジュールが1つあります。
Wacomタブレットドライバソフトウェアをインストールすると、必要なWebPluginコンポーネントがすべてシステムにインストールされ、WebPluginプロパティを使用できるjavascriptアプリケーションをすぐに作成し、(サポートされているタブレットで)ペンおよびタッチデータを取得できます。プログラムの例については、http://www.wacomeng.com/web/index.htmlを参照してください。
Wacomタブレットドライバのインストールでインストールされたプラグインコンポーネントに加え、スタンドアロンWebPluginインストーラがあります(Windowsのみ)。通常、WebPluginコンポーネントはWacomタブレットドライバソフトウェアと一緒に自動的にインストールされるので、スタンドアロンWebPluginインストーラは不要です。ただし、(誤ってアンインストールした、または旧バージョンのタブレットドライバソフトウェアがインストールされているなどの理由で)WebPluginがインストールされていない場合、WebPluginを取得する別のオプションがあります。詳細については、セクション1.2.2を参照してください。
WebPluginは、MIMEタイプによってHTML Webアプリケーションで識別できます。新旧のWebPlugin用のMIMEタイプがあります。
バージョン1.0.x.xのWebPluginはtype=”application/x-wacom-tablet”を使用します
バージョン2.0.0.xのWebPluginはtype=”application/x-wacomtabletplugin”を使用します

IEブラウザは、ActiveX APIを使用し、CLASSID(GUID)でWebPluginを識別します。新旧のWebPlugin GUIDがあります。
バージョン1.0.x.xのWebPluginはclassid=”449E4080-7C69-4767-A1AE-6AAE25B0B906″を使用します
バージョン2.0.0.xのWebPluginはclassid=”092dfa86-5807-5a94-bf3b-5a53ba9e5308″を使用します

1.3 Mac OSXプラグインファイル

1.3.1 WacomTabletPlugin.plugin (Firefox用)

サポートされているすべてのNetscape互換ブラウザ用のOS Xプラグインです。次のコマンドでインストールできます。

cp -r WacomTabletPlugin.plugin “/Library/Internet Plug-Ins”

2 WebPluginペンAPI

Wacom WebPluginペンAPI(WebPAPI)は、すべてのWacomコンシューマおよびプロフェッショナルタブレットからペンデータにアクセスするためのブラウザプラグインインタフェースです。WebPAPIは、WebPluginコンポーネントに含まれています。このコンポーネントには、Wacom WebPluginタッチAPI(WebTAPI)も含まれています。
ペンデータを使用するアプリケーションの開発用に、Wacomタブレットペンデータにアクセスする必要があるWeb開発者は、WebPAPIを使用できます。WebPAPIの中心には、以下のデータレポートがあります。

  • ペンの位置
  • ペンの筆圧データ
  • ペンの回転データ
  • ペンの傾きデータ
  • ペンの消しゴムまたはヒント表示

2.1 サポートされているタブレットとWebPluginバージョン

  • WebPAPIプロパティは、2.0.0.1より前のWebPluginの全バージョンでサポートされています。
  • WebPAPIは現在、すべてのWacomプロフェッショナルおよびコンシューマタブレットでサポートされています。

2.2 開発リソース

WebPAPIを使用するために必要な開発者コンポーネントはタブレットドライバとともにインストールされます。Webアプリケーションのプログラミングをすぐに開始するためにWebPAPIに追加しなければならない「SDK」やモジュールはありません。
WebTAPIの例は、http://www.wacomeng.com/web/index.htmlにあります。

2.3 プログラミングモデル

WebPAPIがシステムアーキテクチャに合致する場所について、図1に概要を示します。単純化するために、ブラウザのプロセス領域内にプラグインが表示されます。実際には、大半のブラウザは「プロセス外」モデルです。このモデルでは、プラグインインスタンスが独自のプロセスで起動します。
WebPAPIは、WebPluginコンポーネントからアクセスされます。このコンポーネントは、タブレットドライバのインストール時にユーザーのシステムにインストールされます。WebPluginは、タブレット上にペンを走らせるときに生成されるペンデータをキャッシュします。javascriptアプリケーションは、最新のペンデータを読み取る際に、いずれかのWebPAPIプロパティ呼び出しを行うだけです(下記のプロパティリストを参照)。ペンの動きとペンデータを同期させる標準的な方法は、javascriptアプリケーションがシステムマウスイベントでペンデータを読み取るというものです(下記の例を参照)。

図1 – WebPluginペンAPIアーキテクチャの概要

2.4 WebPluginペンAPI(WebPAPI)のプロパティ

プラグインはどのバージョンでも同じプロパティをエクスポーズします。ただし、すべてのプロパティをサポートしているのはプロフェッショナルWacomタブレット(Intuos、Cintiq )だけです。サポートされていないプロパティはゼロ値を返します。次の表に、サポートされているプロパティを示します。

プロパティ 種類 デフォルト値 説明 サポートされているタブレット 読み取り/書き込み
isEraser BYTE 0 最後に確認されたパケット名が消しゴムから来た場合はTRUE、それ以外の場合はFALSE。 Consumer、Professional 読み取り専用
isWacom BYTE 1(接続)
0(未接続)
オブジェクトがWacom Wintabにアタッチされている場合はTRUE、それ以外の場合はFALSE。 Consumer、Professional 読み取り専用
pointerType LONG 0 0 = 入力デバイスなし
1 = ペン
2 = マウスまたはカーソル
3 = 消しゴム
Consumer、Professional 読み取り専用
posX LONG 0 最後に確認されたパケットのX位置(ピクセル座標)。 Consumer、Professional 読み取り専用
posY LONG 0 最後に確認されたパケットのY位置(ピクセル座標)。 Consumer、Professional 読み取り専用
pressure FLOAT 0.0 最後に確認されたパケットの筆圧(範囲は[0.0,1.0])。 Consumer、Professional 読み取り専用
rotationDeg FLOAT 0.0 最後に確認されたパケットの回転値(角度)。 Professional 読み取り専用
rotationRad FLOAT 0.0 最後に確認されたパケットの回転値(ラジアン)。 Professional 読み取り専用
sysX FLOAT 0.0 最後に確認されたパケットのX位置(サブピクセル解像度までのピクセル座標)。 Consumer、Professional 読み取り専用
sysY FLOAT 0.0 最後に確認されたパケットのY位置(サブピクセル解像度までのピクセル座標)。 Consumer、Professional 読み取り専用
tabX LONG 0 最後に確認されたパケットのX位置(タブレット座標)。 Consumer、Professional 読み取り専用
tabY LONG 0 最後に確認されたパケットのY位置(タブレット座標)。 Consumer、Professional 読み取り専用
SetFocus BOOL n/a True:プラグインを含むブラウザページにタブレットデータイベントに対するフォーカスを取得させます。
False:タブレットデータイベントに対するフォーカスを別のページが取得できるようにします。
Consumer、Professional 読み取り専用
TabletModel STRING “”(空の文字列) 最後にタッチしたタブレットのモデル名を返します。
(例:”Intuos4 Medium”)
Consumer、Professional 読み取り専用
TabletModelID STRING “”(空の文字列) 最後にタッチしたタブレットのタブレットIDを返します。
(例:”PTK-640″)
Consumer、Professional 読み取り専用
tangentialPressure FLOAT 0.0 最後に確認されたパケットの接線の筆圧値(範囲は[0.0,1.0])。 Professional 読み取り専用
tiltX FLOAT 0.0 最後に確認されたパケットのX傾斜値(範囲は[-1.0, 1.0])。 Professional 読み取り専用
tiltY FLOAT 0.0 最後に確認されたパケットのY傾斜値(範囲は[-1.0, 1.0])。 Professional 読み取り専用
version LONG <プラグインバージョン> 10進数値によるプラグインのバージョン(例:1.1.0.1を1101としてレポート)。 Consumer、Professional 読み取り専用

2.5 サンプルJavascriptの使用

WebPAPIを使用するjavascriptアプリケーションは、マウスイベント駆動型を採用する必要があります。その場合、javascriptアプリケーションはマウスダウンイベント、マウスドラッグイベント、およびマウスアップイベントの際にペンプロパティを問い合わせます。たとえば、筆圧、ペンのX位置とY位置を取得する場合、次のjavascriptを使用できます。

function mousedrag(evt)
{
	var plugin = document.getElementById('wtPlugin');
	var pressure = plugin.penAPI.pressure;
	var plugin.penAPI.posX;
	var plugin.penAPI.posY;
	…
}

完全な例は、http://www.wacomeng.com/web/index.htmlにあります。

2.6 Webアプリケーションを1.0.x.xから2.0.x.x WebPluginに更新する場合

WebアプリケーションをWebPlugin 1.0.x.xから2.0.0.xにアップグレードする際に、次の操作を実行する必要があります。

  • プラグインMIMEタイプをtype=”application/x-wacom-tablet“からtype=”application/x-wacomtabletplugin“に変更します
  • プロパティへのアクセスをplugin.<property>からplugin.penAPI.<property>に変更します

3 WebPluginタッチAPI

Wacom WebPluginタッチAPI(WebPAPI)は、一部のWacomタブレットからタッチデータにアクセスするためのブラウザプラグインインタフェースです。WebTAPIは、WebPluginコンポーネントに含まれています。このコンポーネントには、Wacom WebPluginペンAPI(WebPAPI)も含まれています。
タッチアプリケーションの開発用に、Wacom未処理タッチタブレットデータにアクセスする必要があるWeb開発者は、WebTAPIを使用できます。WebTAPIにより、開発者は自由にフィンガーデータを使用し、Webアプリケーションを制御したり、アプリケーション独自のジェスチャーを定義したりできるようになります。WebTAPIの中心には、以下のレポートがあります。

  • システムにアタッチされ、サポートされているタッチタブレットの数と種類
  • アタッチされ、サポートされているタッチタブレットの機能
  • タブレットに触れる指の数
  • 触れる指ごとの未処理フィンガーデータ
  • タッチタブレットの未処理フィンガーデータの到着
  • タッチタブレットのアタッチイベント
  • タッチタブレットのデタッチイベント

3.1 サポートされているタブレット

  • WebTAPIは、2.0.0.1より前のバージョンのWebPluginではサポートされていません。
  • WebTAPIは、5.2.5より前のWacomタブレットドライバ(Bambooタブレットドライバ)ではサポートされていません。
  • WebTAPIは現在、以下のBambooタブレットでサポートされています。CTT-470、CTH-470、CTH-670。

3.2 開発リソース

WebTAPIを使用するために必要な開発者コンポーネントはタブレットドライバとともにインストールされます。Webアプリケーションのプログラミングをすぐに開始するためにWebTAPIに追加しなければならない「SDK」やモジュールはありません。
WebTAPIの例は、http://www.wacomeng.com/web/index.htmlにあります。

3.3 プログラミングモデル

WebTAPIがシステムアーキテクチャに合致する場所について、図2に概要を示します。単純化するために、ブラウザのプロセス領域内にプラグインが表示されます。実際には、大半のブラウザは「プロセス外」モデルです。このモデルでは、プラグインインスタンスが独自のプロセスで起動します。
WebTAPIは、WebPluginコンポーネントからアクセスされます。このコンポーネントは、タブレットドライバのインストール時にユーザーのシステムにインストールされます。WebPluginアプリケーションは、タッチデバイスがアタッチおよびデタッチされたとき、ならびにデータが使用可能になったとき(タブレットに触れたとき)に通知を受信するように登録します。 アプリケーションは、アタッチイベントやデタッチイベントを受信すると、デバイスの現在のリストをクエリし、1つ選択して、そのデバイスのタッチデバイス機能(たとえば、サポートしている指の数、タブレットの寸法など)をクエリできます。 タッチデータ通知を受信すると、アプリケーションはWebTAPIでタッチデータをクエリできます。
WebアプリケーションはOpen.PassThru引数を使用して(セクション3.5.5を参照)データを使用するか、ただ観察するかを決定し、システムの他のプロセスにそのデータを渡すことができます。 たとえば、Webアプリケーションは、「スクリブル」アプリケーションを実装してタッチデータを描画し、システムカーソルを動かすためにシステムにデータを渡すことができます。

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

3.4 サンプルJavascriptの使用

WebTAPIを使用するjavascriptアプリケーションは、イベント駆動型を採用する必要があります。その場合、javascriptアプリケーションはタッチデバイスのアタッチイベント、デタッチイベント、およびデータイベントでWebPluginからの通知を待機します。擬似コードでは、このアプリケーションは次のように構築されます。

アタッチイベントの登録
デタッチイベントの登録
アタッチイベント:
アタッチされたタッチデバイスの現在のリストを読み取る。
タッチデータの受信元デバイスを開く。
そのデバイスからタッチデータを受信するように登録する。
未処理フィンガーデータイベント:
タッチデータを読み取る。
アプリケーションでデータを使用する。
デタッチイベント:
アタッチされたタッチデバイスの現在のリストを取得する。
使用中のデバイスが存在しなくなった場合は、そのデバイスを閉じます。

実際のjavascriptの例については、下記のプロパティの例を参照してください。完全な例は、http://www.wacomeng.com/web/index.htmlにあります。

3.5 WebPluginタッチAPI(WebTAPI)のプロパティ

次に、WebTAPIプロパティの概要を示します。詳細については、以降のセクションで説明します。

プロパティまたはイベント名 パラメータ 戻りデータ型 説明 読み取り/書き込み
TouchRawFingerData deviceID FB::VariantMap 最初に見つかったタッチデバイスからユーザーに最新の未処理フィンガータッチデータを返します。 読み取り専用
TouchDeviceCapabilities deviceID FB::VariantMap 指定したタッチデバイスの機能を返します。 読み取り専用
TouchDeviceIDList なし FB::VariantList アタッチされたタッチデバイスIDのリストを返します。 読み取り専用
Open deviceID
passThru
成功の場合は0、それ以外は0以外 指定したデバイスにアタッチします。 書き込み専用
Close deviceID 成功の場合は0、それ以外は0以外 指定したデバイスからデタッチします。 書き込み専用
TouchDataEvent n/a n/a タッチデータを受信したときに生成されます。
TouchDeviceAttachEvent n/a n/a サポートされているタッチデバイスがシステムにアタッチされたときに生成されます。
TouchDeviceDetachEvent n/a n/a サポートされているタッチデバイスがシステムからデタッチされたときに生成されます。

3.5.1 TouchRawFingerData

最初に見つかったタッチデバイスからユーザーに最新の未処理フィンガータッチデータを返します。

3.5.1.1 パラメータ:
deviceID Int

TouchDeviceCapabilitiesもしくは、TouchDeviceIDListから取得したdeviceIDを指定します。
有効なID以外のdeviceIDを指定すると、FB::VariantMapのStatusフラグはエラーを示します。

3.5.1.2 戻り値:

FB::VariantMapは下記のメンバーで構成されています。

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	// ドライバが有効なタッチと判断した場合は1
			Sensitivity	Short	// 予約用(Ironwoodでは使用されません)
			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
		...
Firebreathでサポートされた場合は、返されたFB::VariantMapのサイズは、最後のタッチデータパケットの指の数によって決まります。動的なFB::VariantMapがサポートされていない場合、プラグインは10本の指用にマップを事前に割り当て、最新のタッチAPIデータパケットからデータの指の数を指定します。
Statusは、返されたFB::Variantに有効なデータが含まれているかどうかを示します。データが有効な場合、Statusはゼロになります。データが無効な場合、Statusは-1になります。
PosXPosYは、不透明タブレットに対する0~1.0の論理単位です。
PosXPosYは、統合タブレットに対する仮想デスクトップ範囲のピクセル画面座標です。
FingerStateは、

0(FingerStateNone): 指の状態が不明です
1(FingerStateDown): 指がタブレットに触れています
2(FingerStateHold): 指がタブレット上に残っています(Downの後)
3(FingerStateUp): 指がタブレットを離れました(Holdの後)

Move(移動)状態はないので注意してください。Hold状態は、指の位置が変わると移動として解釈されることがあります。
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 戻り値:
Version		Int	// データ構造バージョン(Ironwoodリリースの場合は1)
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 maxXTouchPoints = touchDeviceCaps.ReportedSizeX;
var maxYTouchPoints = 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のタッチデバイスを開きます。
//deviceIDはTouchDeviceIDListもしくは、TouchDeviceCapabilitiesから取得することができます。
deviceID	Int	
// 1: データがシステムに渡されます。0:データはシステムに渡されません。
passThru	Int
3.5.5.2 戻り値:

成功の場合は0、エラーの場合は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 パラメータ:
// -1 -> すべてのタッチデバイスを閉じます。または、deviceIDで指定したタッチデバイスを閉じます 
// TouchDeviceCapabilitiesから渡されます
deviceID	Int
3.5.6.2 戻り値:

成功の場合は0、エラーの場合は0以外

3.5.6.3 サンプルJavascriptの使用:

次のいずれかが機能します。

var status = plugin.touchAPI.Close (-1);		// すべてのデバイスを閉じます
var status = plugin.touchAPI.Close (caps.DeviceID);	// 指定したデバイスを閉じます

3.5.7 Modes

このメソッドでは、さまざまな条件に対してプラグインを設定できます。現時点でサポートされている条件は次のとおりです。

  1. CHILD_BIT:プラグインをブラウザの子プロセスまたはブラウザのメインスレッドで実行するようにAPIに指示します。この設定を使用すると、子プロセスでプラグインを開始するか、メインスレッドでプラグインを開始するブラウザでプラグインが実行されるようAPIに設定を指示できます。現在、ほとんどのブラウザ(Internet Explorer、Firefox、Chromeなど)は、別のプロセスでプラグインを開始します。これにより、失敗したプラグインでブラウザ全体がクラッシュすることを防ぐことができます。プラグインAPIは、デフォルトでは子プロセスで実行されることを想定していますが、その動作をオフにし、WebPluginをメインスレッドで実行するように切り替えることができます。
  2. OBSERVER_BIT:タッチコンシューマまたはタッチオブザーバとして実行されるようにプラグインを設定します。この設定を使用すると、オブザーバモードまたはコンシューマモードで実行されるようにプラグインを設定できます。オブザーバモードで、プラグインはタッチデータを処理し、タッチデータをシステムに渡します。渡されたタッチデータは、別のアプリケーションやシステムでジェスチャーやカーソル移動を実行するために使用できます。コンシューマモードでは、プラグインはタッチデータを処理しますが、システムにはデータを渡しません。
3.5.7.1 パラメータ:
mode	Int	// 条件のビット単位のOR:
		// CHILD_BIT:	0x00000001 -> プラグインが子ブラウザプロセスにあることを前提としています
		// OBSERVER_BIT:0x00000010 -> プラグインはデータをシステムに渡します(オブザーバ)
		// デフォルトでは、プラグインはコンシューマとして子ブラウザプロセスで実行されます。
3.5.7.2 戻り値:

成功の場合は0、エラーの場合は0以外

3.5.7.3 サンプルJavascriptの使用:
// プラグインがブラウザのメインスレッドで実行され、コンシューマになるようにAPIに指示します
var status = plugin.touchAPI.Modes (0);
// プラグインが子プロセスで実行され、コンシューマになるようにAPIに指示します
var status = plugin.touchAPI.Modes (1);
// プラグインが子プロセスで実行され、オブザーバになるようにAPIに指示します
var status = plugin.touchAPI.Modes (3);

3.6 WebPluginタッチ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