2017-12-04 12 views
0

fitToView()が完全に終了したことを知りたいと思います。
一部のプログラムプロシージャは、setTimeout()を使用せずにfitToView()を実行しても機能しません。 たとえば、次のコードは機能しません。fitToView()が完全に終了したことを知る方法

const dbid = [1141] 
this.viewer.select(dbid) 
this.viewer.fitToView(dbid, viewer.model) 
zoom() //This will not work 

//code from: 
function zoom(){ 
    var nav = viewer.navigation 
    var pos = nav.getPosition() 
    var target = nav.getTarget() 
    var viewdir = new THREE.Vector3() 
    viewdir.subVectors (pos, target).normalize() 
    // zooms out by 100 along the view direction 
    viewdir.multiplyScalar (1000) 
    pos.add(viewdir) 
    nav.setPosition(pos) 
} 

次のコードはうまくいきます。

this.viewer.fitToView(dbid, viewer.model) 
setTimeout(function(){ 
    zoom() //This will work fine 
}, 2000) 

しかし、私は可能な限りsetTimeoutを使用したくありません。
fitToView()が完全に終了したことを知る方法はありますか?あなたはビューア新しいイベントAutodesk.Viewing.CAMERA_TRANSITION_COMPLETEDのバージョン3.2.1を使用している場合は、次の遷移が完了している間に

+0

こんにちは、私たちのエンジニアは、fittoViewの終了時に開始されるイベントがあるかどうか確認しています。 –

答えて

1

、それが発射されます。

ゴーホーム遷移状態遷移 名前付きビューを復元移行 を見るに合わせる フォーカス/遷移 任意の他のカメラ遷移が

//イベント

viewer.addEventListener(Autodesk.Viewing.CAMERA_TRANSITION_COMPLETED, function(){ 
console.log('camera is no longer moving'); 

を}フック) ;

//トリガあなたはビューアーのバージョンについての詳細を見ることができるカメラを移動し、イベント

viewer.fitToView(); 

を発射するアクションがここに変わります。 https://developer.autodesk.com/en/docs/viewer/v2/overview/changelog/3.2.1/

+0

ありがとうございます! –

関連する問題