HtmlDrawableクラス
HtmlDrawableは拡張オブジェクトをHTMLコンテンツで表す場合に使用できます。
HtmlDrawableは以下のどちらかによって作成できます。
- HTMLコンテンツを含む文字列
- 使用するHTMLコンテンツを指すURI
htmlプロパティとuriプロパティを両方ともnullまたはundefinedに設定した場合、そのHtmlDrawableはカメラビューにレンダリングされません。
インスタンス生成時にパラメーターを渡して、HtmlDrawableのプロパティをカスタマイズできます。
//create a new html drawable and pass some setup parameters to it var htmlDrawable = new AR.HtmlDrawable({html:"<div>My div</div>"}, 1, { offsetX : 1, onClick : function() { htmlDrawable.html += "<div>Another div</div>"; }, horizontalAnchor : AR.CONST.HORIZONTAL_ANCHOR.LEFT, opacity : 0.9 }); // precedence example: // htmlDrawable will use the html representation htmlDrawable = new AR.HtmlDrawable({ html:"<div>My div</div>", uri:"http://mydomain.com/my.html" }, 1); // now, uri will take precedence: htmlDrawable.uri = "http://mydomain.com/myNew.html";
コンストラクター
HtmlDrawable
-
content
-
width
-
options
パラメーター:
-
content
ObjectHtmlDrawableのコンテンツを表すJSONオブジェクト。このオブジェクトには、HTML文字列を含む文字列型のhtmlプロパティ(上の例を参照)、または何らかのHTMLコンテンツを指す文字列型のuriプロパティを含める必要があります。両方のプロパティを指定した場合は、htmlプロパティの方がuriプロパティよりも優先されます。ただし、htmlプロパティとuriプロパティの少なくとも一方を指定する必要があります。
-
width
NumberHtmlDrawableの幅(SDU単位)。正の数値にする必要があります。HtmlDrawableを画面にレンダリングするときの幅を制御します。HtmlDrawableの高さは、Drawableのアスペクト比を維持して自動的に調整されます。
-
options
Object オプション追加のオブジェクトプロパティをカスタマイズするためのパラメーター。
設定可能なプロパティは以下のとおりです。-
enabled
(デフォルト値:true
) Boolean オプション -
mirrored
(デフォルト値:true
) Boolean オプション -
onClick
Function オプション -
onDragBegan
Function オプション -
onDragChanged
Function オプション -
onDragEnded
Function オプション -
onPanBegan
Function オプション -
onPanChanged
Function オプション -
onPanEnded
Function オプション -
onRotationBegan
Function オプション -
onRotationChanged
Function オプション -
onRotationEnded
Function オプション -
onScaleBegan
Function オプション -
onScaleChanged
Function オプション -
onScaleEnded
Function オプション -
rotate.x
(デフォルト値:0
) Number オプション -
rotate.y
(デフォルト値:0
) Number オプション -
rotate.z
(デフォルト値:0
) Number オプション -
rotate.global.x
(デフォルト値:0
) Number オプション -
rotate.global.y
(デフォルト値:0
) Number オプション -
rotate.global.z
(デフォルト値:0
) Number オプション -
translate.x
(デフォルト値:0
) Number オプション -
translate.y
(デフォルト値:0
) Number オプション -
translate.z
(デフォルト値:0
) Number オプション -
translate.global.x
(デフォルト値:0
) Number オプション -
translate.global.y
(デフォルト値:0
) Number オプション -
translate.global.z
(デフォルト値:0
) Number オプション -
scale.x
(デフォルト値:1
) Number オプション -
scale.y
(デフォルト値:1
) Number オプション -
scale.z
(デフォルト値:1
) Number オプション -
horizontalAnchor
(デフォルト値:AR.CONST.HORIZONTAL_ANCHOR.CENTER
) Object オプション -
verticalAnchor
(デフォルト値:AR.CONST.VERTICAL_ANCHOR.MIDDLE
) Object オプション -
zOrder
(デフォルト値:0
) Number オプション -
opacity
(デフォルト値:1
) Number オプション -
onLoaded
Function オプション -
onError
Function オプション -
viewportWidth
(defaults to256
) Number オプション -
viewportHeight
(defaults to256
) Number オプション -
backgroundColor
String オプション -
clickThroughEnabled
(defaults tofalse
) Boolean オプション -
allowDocumentLocationChanges
(defaults tofalse
) Boolean オプション -
onDocumentLocationChanged
Function オプション
-
項目索引
プロパティ
- allowDocumentLocationChanges
- backgroundColor
- clickThroughEnabled
- destroyed
- enabled
- horizontalAnchor
- html
- mirrored
- offsetX 非推奨
- offsetY 非推奨
- opacity
- rotate
- rotate.global.x
- rotate.global.y
- rotate.global.z
- rotate.heading 非推奨
- rotate.roll 非推奨
- rotate.tilt 非推奨
- rotate.x
- rotate.y
- rotate.z
- rotatesToCamera
- rotation 非推奨
- scale 非推奨
- scale.x
- scale.y
- scale.z
- translate
- translate.global.x
- translate.global.y
- translate.global.z
- translate.x
- translate.y
- translate.z
- uri
- verticalAnchor
- viewportHeight
- viewportWidth
- width
- zOrder
メソッド
destroy
()
オブジェクトを破棄します。
evalJavaScript
-
js
渡されたJavaScript文字列をこのHtmlDrawableのコンテキストで評価します。
パラメーター:
-
js
String評価するJavaScript。スクリプトにエラーがある場合、実行に失敗します。
getBoundingRectangle
()
BoundingRectangle
このDrawable2DのBoundingRectangleを返します。エラーの場合はnullが返されます。
戻り値:
Drawable2DのBoundingRectangle。
プロパティ
allowDocumentLocationChanges
Boolean
このプロパティは、HtmlDrawable内のHTMLコンテンツでdocument.locationプロパティの変更を許可するかどうかを制御します。
たとえば、HtmlDrawableにhttp://www.wikitude.comへのリンクが含まれていて、clickThroughEnabledプロパティがtrueに設定されている場合、ユーザーがリンクをクリックするとonDocumentLocationChangedトリガーが発生します。その後、allowDocumentLocationChangesの設定に応じて以下のように動作します。
allowDocumentLocationChangesがtrueに設定されている場合、HtmlDrawable内のHTMLコンテンツがhttp://www.wikitude.comのコンテンツに変更されます。
allowDocumentLocationChangesがfalseに設定されている場合、HtmlDrawable内のHTMLコンテンツは変更されません。
デフォルト値: false
backgroundColor
String
HTMLボディの背景が透明に設定されている場合の、HtmlDrawableの背景色。16進数のRGB値またはRGBA値を渡すことができます(RGBAカラーの詳細については、ここを参照)。RGBを使用する場合、アルファ値は完全な不透明に設定されます。
このプロパティは、HtmlDrawable内のHTMLコンテンツとして設定されたURIが白のブラウザ背景を前提としているにもかかわらず、そのHTMLコンテンツ自体の背景が透明に設定されている場合に役立ちます。backgroundColorプロパティを透明でない値に設定すると、透明なWebページの背景が色付きになります。
注: HtmlDrawable自体の背景は変わりません。このプロパティはHtmlDrawableが描画される背景を設定するだけです。HtmlDrawable内のHTMLコンテンツのボディが透明でない背景に設定されている場合、backgroundColorプロパティを変更しても効果はありません。
デフォルト値: #00000000(透明)
clickThroughEnabled
Boolean
このプロパティは、HtmlDrawableのクリックがHtmlDrawable内のHTMLコンテンツにも転送されるかどうかを制御します。ユーザーがHtmlDrawableをクリックすると、DrawableのonClick(arObject)トリガーが発生します。clickThroughEnabledがtrueに設定されている場合、そのクリックはHTMLコンテンツ内でも実行され、クリックにヒットしたHTML要素のonclick関数が呼び出されます。
デフォルト値: false
enabled
Boolean
Drawableを有効または無効にするフラグ。無効なDrawableはカメラビューに表示されず、トリガーも発生しません。有効な場合は状況に応じてレンダリングされ、トリガーが発生します。
デフォルト値: true
horizontalAnchor
Number
Drawable2Dによって表されるGeoObjectのスクリーン位置に、Drawable2Dのどのピクセル(水平ピクセル列内)が配置されるか、水平方向のアンカーを設定します。
有効な値はAR.CONST.HORIZONTAL_ANCHORで定義されています。たとえば、ImageDrawableの水平アンカーとしてLEFTを設定した場合は、拡張オブジェクトの左端がアンカーポイントとして設定されます。
デフォルトの水平アンカーポイントは、Drawable2Dによって表される拡張オブジェクトの種類によって異なります。
html
String
Drawableを表現するために使用されるプレーンなHTML文字列。<body>タグが指定されていない場合は、デフォルト設定(透明の背景、マージンなし)で自動的に追加されます。
mirrored
Boolean
このDrawableのミラーリングを有効または無効にするフラグ。フロントカメラを使用したとき、ミラーリングしたDrawableはy軸を中心に180°回転します。
デフォルト値: 一般的なDrawableの場合はtrue、ラベルとHTMLDrawableの場合はfalse
opacity
Number
Drawable2Dによって表される拡張オブジェクトの透明度を定義する0.0~1.0の範囲内の値。値に0を設定すると拡張オブジェクトは完全に透明になり、値に1を設定すると完全に不透明で表示されます。
デフォルト値: 1
rotate
Object
Drawableの中央を中心とする回転を定義します。 このプロパティを使用すると、最高のパフォーマンスを出すために、Wikitude SDKのネイティブサイドへの1回の呼び出しで、x、y、zコンポーネントを同時に設定できます。 Objectは、x、y、z、またはそのサブセットを含むことができます。
rotate.global.x
Number
x軸を中心としたDrawableの回転(度単位)を定義します。 値には360の剰余が適用されます。 つまり、361°を設定した場合と1°を設定した場合は同じ結果になります。 すべてのグローバル変換は、ローカル変換後に適用されます。
x軸を中心としたDrawableの回転(度単位)を定義します。値には360の剰余が適用されます。つまり、361°を設定した場合と1°を設定した場合は同じ結果になります。
デフォルト値: 0
rotate.global.y
Number
y軸を中心としたDrawableの回転(度単位)を定義します。 値には360の剰余が適用されます。 つまり、361°を設定した場合と1°を設定した場合は同じ結果になります。 すべてのグローバル変換は、ローカル変換後に適用されます。
y軸を中心としたDrawableの回転(度単位)を定義します。値には360の剰余が適用されます。つまり、361°を設定した場合と1°を設定した場合は同じ結果になります。
デフォルト値: 0
rotate.global.z
Number
z軸を中心としたDrawableの回転(度単位)を定義します。 値には360の剰余が適用されます。 つまり、361°を設定した場合と1°を設定した場合は同じ結果になります。 すべてのグローバル変換は、ローカル変換後に適用されます。
z軸を中心としたDrawableの回転(度単位)を定義します。値には360の剰余が適用されます。つまり、361°を設定した場合と1°を設定した場合は同じ結果になります。
デフォルト値: 0
rotate.x
Number
x軸を中心としたDrawableの回転(度単位)を定義します。 値には360の剰余が適用されます。 つまり、361°を設定した場合と1°を設定した場合は同じ結果になります。
デフォルト値: 0
rotate.y
Number
y軸を中心としたDrawableの回転(度単位)を定義します。 値には360の剰余が適用されます。 つまり、361°を設定した場合と1°を設定した場合は同じ結果になります。
デフォルト値: 0
rotate.z
Number
z軸を中心としたDrawableの回転(度単位)を定義します。 値には360の剰余が適用されます。 つまり、361°を設定した場合と1°を設定した場合は同じ結果になります。
デフォルト値: 0
rotatesToCamera
Boolean
drawableがカメラに向いているかどうかを定義します。これは、GeoObject にアタッチされたDrawablesに対してのみ可能です。
デフォルト値:一般的なdrawableの場合はtrue、モデルの場合はfalse。
rotation
Number
画面に対して垂直な線を回転軸としたDrawableの回転(度単位)を定義します。たとえば、正方形の画像に対してrotationを45.0に設定すると、ひし形になります。正の値を設定すると時計回りに回転し、負の値を設定すると反時計回りに回転します。たとえば、正方形を回転したときなど、rotationはDrawableのBoundingRectangleに影響を与える場合があります。
rotationは、設定されたroll、tilt、headingによる回転に加えて適用されます。rotationは、Drawable2Dによって表される拡張オブジェクトの中心を原点とした画面上の回転を指定します。
デフォルト値: 0
translate
Object
Drawableの平行移動を定義します。このプロパティを使用すると、最高のパフォーマンスを出すために、Wikitude SDKのネイティブサイドへの1回の呼び出しで、x、y、zコンポーネントを同時に設定できます。 Objectは、x、y、z、またはそのサブセットを含むことができます。
translate.global.x
Number
Drawableの計算された位置への水平オフセット( SDU 単位)。 正の数xはDrawableを右に移動させ、負の数xは左に移動させます。 すべてのグローバル変換は、ローカル変換後に適用されます。
デフォルト値: 0
translate.global.y
Number
Drawableの計算された位置への垂直オフセット( SDU 単位)。 正の数yはDrawableを上に移動させ、負の数yは下に移動させます。 すべてのグローバル変換は、ローカル変換後に適用されます。
デフォルト値: 0
translate.global.z
Number
Drawableの計算された位置までの深さオフセット( SDU 単位)。 正の数zはDrawableをユーザーの方に移動させ、負の数zは奥に移動させます。 すべてのグローバル変換は、ローカル変換後に適用されます。
デフォルト値: 0
translate.x
Number
Drawableの計算された位置への水平オフセット( SDU 単位)。 正の数xはDrawableを右に移動させ、負の数xは左に移動させます。
デフォルト値: 0
translate.y
Number
Drawableの計算された位置への垂直オフセット( SDU 単位)。 正の数yはDrawableを上に移動させ、負の数yは下に移動させます。
デフォルト値: 0
translate.z
Number
Drawableの計算された位置までの深さオフセット( SDU 単位)。 正の数zはDrawableをユーザーの方に移動させ、負の数zは奥に移動させます。
デフォルト値: 0
verticalAnchor
Number
Drawable2Dによって表されるGeoObjectのスクリーン位置に、Drawable2Dのどのピクセル(垂直ピクセル列内)が配置されるか、垂直方向のアンカーを設定します。
有効な値はAR.CONST.VERTICAL_ANCHORで定義されています。たとえば、Imageの垂直アンカーとしてTOPを設定した場合は、拡張オブジェクトの上端がアンカーポイントとして設定されます。
デフォルトの垂直アンカーポイントは、Drawable2Dによって表される拡張オブジェクトの種類によって異なります。
viewportHeight
Number
HTMLコンテンツがレンダリングされるビューポートの幅(ピクセル単位)。ビューポートが大きいほど、HTMLDrawable内のHTMLコンテンツは小さくなります。デフォルト値は256に設定されます。ビューポートは正の整数にする必要があり、1024ピクセルを超えることはできません。
デフォルト値: 256
viewportWidth
Number
HTMLテクスチャがレンダリングされるビューポートの幅(ピクセル単位)。ビューポートが大きいほど、HTMLDrawable内の項目は小さくなります。デフォルト値は256に設定されます。ビューポートは正の整数にする必要があり、1024ピクセルを超えることはできません。
デフォルト値: 256
width
Number
HtmlDrawableの幅(SDU単位)。正の数値にする必要があります。HtmlDrawableを画面にレンダリングするときの幅を制御します。HtmlDrawableの高さは、Drawableのアスペクト比を維持して自動的に調整されます。
zOrder
Number
特定のGeoObjectに複数のDrawable2Dが割り当てられている場合、zOrderによってそれらのDrawableの描画順序が決まります。複数のDrawableが重なる場合は、zOrder値の高いDrawableの方が前面にレンダリングされます(たとえば、zOrder = 1のDrawableはzOrder = 0のDrawableより前面にレンダリングされます)。同じzOrderを持つDrawableが重なった場合の動作は不定であり、予期しない結果になる可能性があります。そのため、重なる可能性のあるDrawableにはzOrderを定義することを推奨します。
異なるGeoObjectに属するDrawableのレンダリング順序を指定するには、GeoObject.renderingOrderを参照してください。
整数にする必要があります。
デフォルト値: 0
イベント
onClick
Drawableをクリックすると、Drawable.onClickトリガーが実行されます。画面上のクリックは複数のDrawableにヒットする場合があるため、最前面のDrawableを先頭とする"クリックされたDrawableのキュー"が作成されます。トリガーの戻り値は、このDrawableのonClick()トリガーが実行された後にキューの次のDrawableのonClick()トリガーを実行するかどうかを決定します。キューの最後のDrawableがさらにonClick()トリガーの実行を要求した場合は、ARObject.onClick()トリガーが実行されます。さらにキューの実行が要求された場合は、context.onScreenClick()トリガーが実行されます。
このトリガーの戻り値により後続のクリックキューの処理を決定します。falseの場合、クリックキューの実行はこのDrawableで停止しません。したがって、次のDrawableのonClick()トリガーが実行されます。これは、戻り値が設定されていない場合、またはこのDrawableに対してonClickトリガーが定義されていない場合のデフォルト値です。trueの場合、キューの実行は現在のDrawableで停止し、後続のDrawableのonClick()トリガーは実行されません。
イベントペイロード:
-
arObject
ARObjectクリックされたDrawableにアタッチされているARObject。
このトリガーのデフォルト値はnullであり、トリガーが発生したときに何もアクションは実行されません。開発者はonClickトリガーにカスタム関数を指定することで、カスタム機能を追加できます。
onDocumentLocationChanged
このトリガーは、たとえばHtmlDrawable内のHTMLコンテンツにあるリンクがクリックされ、HtmlDrawableのdocument.locationが変更されたときに発生します。document.locationが変更されると、別のドキュメントがロードされます。このトリガーが発生するのは、HtmlDrawableでクリックスルーが許可されている場合のみです。詳細については、HtmlDrawable.clickThroughEnabledを参照してください。
このトリガーのデフォルト値はnullであり、トリガーが発生したときに何もアクションは実行されません。 開発者は、カスタム関数をonDocumentLocationChangedに割り当てることによって、カスタム機能を追加できます。
イベントペイロード:
-
uri
Stringdocument.locationプロパティの変更先のURI。
onDragBegan
ユーザーが1本の指でDrawableのドラッグを開始したときに実行されます。このコールバックは、イベント伝播の流れとしてonClickコールバックと同じように動作します。
イベントペイロード:
-
xNormalized
Number開始タッチ位置と更新タッチ位置[-1,1]との間のX軸上の距離。 ドラッグジェスチャへの変更が発生していない場合、onDragBeganは常に0です。
-
yNormalized
Number開始タッチ位置と更新タッチ位置[-1,1]との間のY軸上の距離。 ドラッグジェスチャへの変更が発生していない場合、onDragBeganは常に0です。
-
xIntersection
Numberワールド空間における、開始タッチレイとインスタントトラッキング平面の交点位置のX座標 [-無限, 無限]。InstantTrackableが使用できない場合は未定義
-
yIntersection
Numberワールド空間における、開始タッチレイとインスタントトラッキング平面の交点位置のY座標 [-無限, 無限]。InstantTrackableが使用できない場合は未定義
onDragChanged
ユーザーが1本の指でDrawableをドラッグすると実行されます。このコールバックは、イベント伝播の流れとしてonClickコールバックと同じように動作します。
イベントペイロード:
-
xNormalized
Number開始タッチ位置と更新タッチ位置[-1,1]との間のX軸上の距離。
-
yNormalized
Number開始タッチ位置と更新タッチ位置[-1,1]との間のY軸上の距離。
-
xIntersection
Numberワールド空間における、更新されたタッチレイとインスタントトラッキング平面の交点位置のX座標 [-無限, 無限]。InstantTrackableが使用できない場合は未定義
-
yIntersection
Numberワールド空間における、更新されたタッチレイとインスタントトラッキング平面の交点位置のY座標 [-無限, 無限]。InstantTrackableが使用できない場合は未定義
onDragEnded
ユーザーが1本の指でDrawableのドラッグを停止したときに実行されます。このコールバックは、イベント伝播の流れとしてonClickコールバックと同じように動作します。
イベントペイロード:
-
xNormalized
Number開始タッチ位置と更新タッチ位置[-1,1]との間のX軸上の距離。 onDragChangedで受信した最新の距離と常に同じ
-
yNormalized
Number開始タッチ位置と更新タッチ位置[-1,1]との間のY軸上の距離。 onDragChangedで受信した最新の距離と常に同じ
-
xIntersection
Numberワールド空間における、終了タッチレイとインスタントトラッキング平面の交点位置のX座標 [-無限, 無限]。InstantTrackableが使用できない場合は未定義
-
yIntersection
Numberワールド空間における、終了タッチレイとインスタントトラッキング平面の交点位置のY座標 [-無限, 無限]。InstantTrackableが使用できない場合は未定義
onError
このトリガーは、HtmlDrawableのコンテンツをロードできなかったときに発生します。考えられる原因には、ネットワーク接続の不良や無効なHTMLなどがあります。
このトリガーは、URIまたはHTMLの変更後にコンテンツを再ロードできなかったときにも発生します。
このトリガーのデフォルト値はnullであり、トリガーが発生したときに何もアクションは実行されません。開発者はonErrorトリガーにカスタム関数を指定することで、カスタム機能を追加できます。
onLoaded
このトリガーは、HtmlDrawableのコンテンツが正常にロードされたときに発生します。
このトリガーは、URIまたはHTMLの変更後にコンテンツを正常に再ロードできたときにも発生します。
htmlDrawable = new AR.HtmlDrawable({ uri:"http://mydomain.com/my.html" }, 1, { onLoaded : function(){ uri:"http://mydomain.com/my2.html" };}); //trigger will fire again
このトリガーのデフォルト値はnullであり、トリガーが発生したときに何もアクションは実行されません。開発者はonLoadedトリガーにカスタム関数を指定することで、カスタム機能を追加できます。
onPanBegan
ユーザーが2本の指でDrawableのドラッグを開始したときに実行されます。このコールバックは、イベント伝播の流れとしてonClickコールバックと同じように動作します。
イベントペイロード:
onPanChanged
ユーザーが2本の指でDrawableをドラッグすると実行されます。このコールバックは、イベント伝播の流れとしてonClickコールバックと同じように動作します。
onPanEnded
ユーザーが2本の指でDrawableのドラッグを停止したときに実行されます。このコールバックは、イベント伝播の流れとしてonClickコールバックと同じように動作します。
onRotationBegan
ユーザーが2本の指でDrawableの回転を開始したときに実行されます。このコールバックは、イベント伝播の流れとしてonClickコールバックと同じように動作します。
イベントペイロード:
-
angle
Number開始タッチ位置によって定義された線と更新されたタッチ位置[0,360]によって定義される線との間の角度でのCCW角度。回転ジェスチャの変更が発生していない場合、onRotationBeganでは常に0です。
onRotationChanged
ユーザーが2本の指でDrawableを回転したときに実行されます。このコールバックは、イベント伝播の流れとしてonClickコールバックと同じように動作します。
イベントペイロード:
-
angle
Number開始タッチ位置によって定義された線と更新されたタッチ位置[0,360]によって定義される線との間の角度でのCCW角度。
onRotationEnded
ユーザーが2本の指でDrawableの回転を停止したときに実行されます。このコールバックは、イベント伝播の流れとしてonClickコールバックと同じように動作します。
イベントペイロード:
-
angle
Number開始タッチ位置によって定義された線と更新されたタッチ位置[0,360]によって定義される線との間の角度でのCCW角度。onRotationChangedで受け取った最新の角度と常に同じ。
onScaleBegan
ユーザーが2本の指でDrawableの拡大縮小を開始するときに実行されます。このコールバックは、イベント伝播の流れとしてonClickコールバックと同じように動作します。
イベントペイロード:
-
scale
Number開始タッチと更新されたタッチ間の距離の比を定義した[0、inf]のスケール値。 スケールジェスチャへの変更が発生していない場合、onScaleBeganは常に1です。
onScaleChanged
ユーザーが2本の指でDrawableを拡大縮小するときに実行されます。このコールバックは、イベント伝播の流れとしてonClickコールバックと同じように動作します。
イベントペイロード:
-
scale
Number開始タッチと更新されたタッチ間の距離の比を定義した[0、inf]のスケール値。
onScaleEnded
ユーザーが2本の指でDrawableのスケーリングを停止したときに実行されます。このコールバックは、イベント伝播の流れとしてonClickコールバックと同じように動作します。
イベントペイロード:
-
scale
Number開始タッチと更新されたタッチ間の距離の比を定義した[0、inf]のスケール値。 onScaleChangedで受信した最新のスケールと常に同じ。