簡體   English   中英

如何在Autodesk Forge中為onMouseOver事件編碼

[英]How to code for onMouseOver event in Autodesk Forge

我已經在Autodesk Forge中創建了一個簡單的擴展。 這個想法是,當我在3D對象上進行鼠標懸停事件時,它必須向我顯示懸停的對象/子對象的ID,我的擴展代碼就是這樣運行的。

 AutodeskNamespace("Autodesk.ADN.Viewing.Extension"); Autodesk.ADN.Viewing.Extension.MouseEvent = function (viewer, options) { Autodesk.Viewing.Extension.call(this, viewer, options); var _self = this; var _viewer = viewer; var _selectedId = null; //On Load of the exension function _self.load = function () { _viewer.addEventListener( Autodesk.Viewing.MOUSE_OVER_EVENT, _self.onMouseOver); console.log("Autodesk.ADN.MouseEvent loaded"); return true; }; //On unload of the exension function _self.unload = function () { _viewer.removeEventListener( Autodesk.Viewing.MOUSE_OVER_EVENT, _self.onMouseOver); console.log("Autodesk.ADN.MouseEvent unloaded"); return true; }; // Event function initialization _self.onMouseOver = function (event) { var dbId = event.dbIdArray[0]; if (typeof dbId !== 'undefined') { _selectedId = dbId; alert('ID: ' + _selectedId); } else _selectedId = null; } }; Autodesk.ADN.Viewing.Extension.MouseEvent.prototype = Object.create(Autodesk.Viewing.Extension.prototype); Autodesk.ADN.Viewing.Extension.MouseEvent.prototype.constructor = Autodesk.ADN.Viewing.Extension.MouseEvent; Autodesk.Viewing.theExtensionManager.registerExtension( 'Autodesk.ADN.Viewing.Extension.MouseEvent', Autodesk.ADN.Viewing.Extension.MouseEvent); 

但是onMouseOver函數不起作用,有人可以幫助我嗎? 提前致謝。

PS:我已經在腳本標簽中包含了擴展名,並且擴展名也被加載。

oViewer.loadExtension('Autodesk.ADN.Viewing.Extension.MouseEvent');

我還從控制台收到確認擴展已成功加載的確認。

沒有諸如Autodesk.Viewing.MOUSE_OVER_EVENT這樣的事件……您是剛剛彌補還是從某個(顯然是不正確的)來源獲得了?

處理該問題的方法是使用查看器工具(有關詳細信息 ,請參見該帖子),然后在handleMouseMove回調中,執行以下操作:

handleMouseMove (event) {

  var hitTest = _self.viewer.clientToWorld(
    event.canvasX,
    event.canvasY,
    true)

  if (hitTest) {

    console.log(hitTest)
  }
}

這是我寫的另一篇有關查看器事件的文章 ,它有些陳舊,所以現在還有更多,但可以為您提供一個很好的起點。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM