ORBITVU VIEWER API

Infinity360 ORBITV VIEWERのフリーバージョンでは、JavaScriptを使用してORBITV VIEWERをプログラムで制御することができます。

ORBITVU VIEWER APIオブジェクトにアクセスするには、以下を実行する必要があります。

  • グローバルコールバック関数 (JavaScript)を定義
  • viewer_api_init パラメータにこの関数の名前を設定

サンプルコード:

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8" />

        <script type="text/javascript">
            // Global variable to store VIEWER API object reference
            var viewer_api_obj = null;

            // Callback called while VIEWER is loading
            window['my_loading_callback'] = function(progress){
                console.log('progress: ' + progress);
            }

            // Callback called when viewer is initialized (all required frames are loaded)
            // From this point it is possible to manipulate it, eg. rotate/zoom
            window['my_viewer_initialized_callback'] = function(){
                // as soon as viewer is initialized rotate to 10-th frame
                viewer_api_obj.setScene({hangle: 10});
            }

            // callback called on API initialization used to set another callbacks and store API object reference
            window['my_api_callback_name'] = function(api_obj) {
                viewer_api_obj = api_obj;
                api_obj.addCallback('my_viewer_initialized_callback', 'viewer_initialized');
                api_obj.addCallback('my_loading_callback', 'loading');
            };
        </script>
    </head>
    <body>
        // YOUR SITE CODE HERE
        <div class="orbitvu-viewer" style="background: url(//static.orbitvu.co/001/CmWVYLsjZz3nh3FvjzepBQ/300/350/img01.png) no-repeat center center #ffffff; width: 350px; height: 300px">
            <script type="text/javascript" src="//orbitvu.co/001/CmWVYLsjZz3nh3FvjzepBQ/ov3601/3/script?
                &width=350&content2=yes&height=300
                &viewer_api_init=my_api_callback_name"
            ></script>

        </div>
        // YOUR SITE CODE HERE
    </body>
</html>

external_access_init パラメータを使用することもできますが、VIEWER 2.3.33以降は viewer_api_init の方が推奨されています。 

external_access_initのサンプルコード:

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8" />

        <script src="http://code.jquery.com/jquery-1.10.1.min.js"></script>
        <script type="text/javascript">
            var viewer_api_obj = null;
            window['my_api_callback_name'] = function(local_viewer) {
                 /* STARTING from ORBITVU VIEWER 2.3.3 it is not required to use code below */
                 /* start: viewer <= 2.3.2*/
                     if (!local_viewer) {
                         // specify id of VIEWER Flash object
                         local_viewer = document.getElementById('ovContent-dSz54kMJ7rHKtC6E2YBHpf-obj');
                     }
                 /* end: viewer <= 2.3.2*/

                 viewer_api_obj = local_viewer;
                 local_viewer.setScene({hangle: 10});
            };
        </script>
    </head>
    <body>
        // YOUR SITE CODE HERE
        <div class="orbitvu-viewer" style="background: url(//static.orbitvu.co/001/CmWVYLsjZz3nh3FvjzepBQ/300/350/img01.png) no-repeat center center #ffffff; width: 350px; height: 300px">
            <script type="text/javascript" src="//orbitvu.co/001/CmWVYLsjZz3nh3FvjzepBQ/ov3601/3/script?
                &width=350&content2=yes&height=300
                &external_access_init=my_api_callback_name"
            ></script>

        </div>
        // YOUR SITE CODE HERE
    </body>
</html>

getScene

現在表示されているシーンに関する情報を返します。

viewer_api_obj.getScene();

次の情報を持つディクショナリーオブジェクトを返します:

  • scale - 現在のスケール
  • centerx - ビューポートセンターの現在のX座標 (ピクセル単位 - プレゼンテーションの最大解像度に対する)
  • centery - ビューポートセンターの現在のY座標 (ピクセル単位 - プレゼンテーションの最大解像度に対する)
  • centerX - centerx と同じ
  • centerY - centery と同じ
  • hangle - 現在表示されている水平フレームの数
  • vangle - 現在表示されている水直フレームの数

setScene

プレゼンテーションの操作に使用される主な機能:

viewer_api_obj.setScene({<param_name>: <param_value>});

パラメータ:

hangle

水平フレームに回転
: 0 - <フレーム数>
: viewer_api_obj.setScene({hangle: 10});

vangle

3D プレゼンテーションの垂直角度を設定

hangleInc

フレーム数(例:2, -2)で指定された水平角度を変更

vangleInc

ライン数(例:1, -1)で指定された水直角度を変更

panX

水平軸に沿って現在のビューを移動、例:100 (右に100px移動), -10% (現在のビューから左に 10%移動), -30px (左に 30px 移動)

panY

水直軸に沿って現在のビューを移動、例:100 (下に100px移動), -10% (現在のビューから上に 10%移動), -30px (上に 30px 移動)

mode

ORBITVU VIEWER が動作するモード
: rotate | drag | onerotation | onerotationslow
デフォルト: rotate

autorotate

自動回転の開始/停止
: yes | no
デフォルト: no

autorotate_dir

自動回転の方向
: left | right

zoomMul

指定されたファクターによってズーム

scaleUp

ズームイン

scaleDown

ズームアウト

1回のコールで異なるパラメータを組み合わせてはいけません。

addCallback

ORBITVU VIEWER イベントをハンドルするためのコールバックを追加:

viewer_api_obj.addCallback('<callback_function_name>', '<event_name>');

関数オブジェクト自体ではなく、グローバルにアクセス可能なコールバック関数の名前を渡す必要があります。

利用可能なイベント:

activity_start

3.3.0 以降から利用可
アクティビティが発生したときに呼び出されます。例: VIEWERがインタラクトされているときや、API呼び出しによって何らかのアクションが発生したとき

activity_end

3.3.0 以降から利用可
VIEWERでアクティビティが発生していないときに呼び出されます。 例:自動回転が停止させられたとき

autorotate_start

autorotate_stop

自動回転が停止させられたときに呼び出されます。例:プレゼンテーションがクリックされたとき

center_change

ビューセンターが変更されたとき呼び出されます。

fullscreen_off

fullscreen_on

interaction_start

2.3.27 以降から利用可
VIEWERに対する任意の操作で呼び出されます。例: マウスクリック、ボタンクリック、マウスホイールによるズームイン/ズームアウト

loading

2.3.33 以降から利用可 
ORBITVU VIEWERがフレームをロードしているときに呼び出されます。 コールバックには、すでに読み込まれたフレームの割合を表す数値が渡されます。
partial_loadyes に設定されている場合、以下のように定義された partial_loading イベントも確認してください。この場合、ロードイベントはロードされた最初の4つのフレームにのみ適用されます。

mode_changed

2.3.33 以降から利用可 
VIEWER モードが変更されたとき呼び出されます。例: from rotate to drag
: rotate | drag | onerotation | onerotationslow

partial_loading

3.0.26 以降から利用可
Called when VIEWERがバックグラウンドでフレームをローディングしているときに呼び出されます( partial_loadyes のとき )。コールバックには、すでに読み込まれたフレームの割合を表す数値が渡されます。

partially_initialized

partial_loadyes に設定され、最初の4フレームのセットがロードされたときに呼び出されます(VIEWERはユーザーによって操作可能)

rotate

回転中に呼び出されます。

set_scene

シーンの開始を設定しているときにトリガーが発生します。

set_scene_complete

シーンの完了を設定しているときにトリガーが発生します。

viewer_initialized

2.3.33 以降から利用可
必要なすべてのフレームがロードされたときに呼び出され、VIEWERを操作することができます。

zoom_in

zoom_out

calculate_position

2.3.15 以降利用可

プレゼンテーションのmax_width および max_height に相対的な x, 座標を現在のビューポート座標(スケール)に変換します。

たとえば、プレゼンテーションの max_width/max_height が 4422px x 3073pxで、サイズが368px x 400pxのビューポートに表示されている場合、x: 1000 y: 500 の座標は、現在のスケールと中心位置に応じてビューポートに対する座標に変換されます:

scale: 0.175, centerX: 2623, centerY: 1930

変換:

x: -99, y: -50

これは、プレゼンテーション上の特定の位置に何かを表示する場合に便利です。

使用例:

viewer.calculate_position({x: 1000, y: 500})

ここで、viewer viewer_api_init (または external_access_init) コールバックによって返されるオブジェクトです。

パラメータ:

  • coords
    x, y 値を持つディクショナリー, 例: {x: 1000, y: 500}

get_presentation_info

2.3.15 以降利用可

以下の情報を含むディクショナリーを返します:

  • width - 現在のビューポートの幅
  • height - 現在のビューポートの高さ
  • max_width - プレゼンテーションの最大幅
  • max_height - プレゼンテーションの最大高さ
  • hangles_no - 水平フレーム数
  • vangles_no - 水直フレーム数
  • min_scale - 最小ズームスケール値
  • max_scale - 最大ズームスケール値

handle_resize

ORBITV VIEWERに、コンテナのサイズが変更されたことを手動で通知します:

viewer_api_obj.handle_resize();

これはウィンドウのサイズ変更時に自動的に呼び出されますが、たとえば VIEWERのコンテナ要素のディメンションをインタラクティブに変更したいのであれば、ORBITVU VIEWERが正しく表示されるようにhandle_resizeを呼び出すことができます。

enable_mousewheel

マウスホイールによるズームを有効にします。 当メソッドは mousewheel パラメータを ‘yes’に切り替えます:

viewer_api_obj.enable_mousewheel();

disable_mousewheel

マウスホイールによるズームを無効にします。 当メソッドは mousewheel パラメータを ‘no’に切り替えます:

viewer_api_obj.disable_mousewheel()

set_forced_mode

2.3.33 以降利用可

ORBITVU VIEWERのモードをドラッグ(drag) か 回転(rotate)に切り替えます。

: drag | rotate