Ich habe eine einfache Erweiterung in Autodesk Forge erstellt. Die Idee ist, dass, wenn ich ein mouse-over-Ereignis auf einem 3D-Objekt mache, es mir die ID des hovered Objekts/Unterobjekts zeigen muss, läuft mein Erweiterungscode wie folgt.Wie für OnMouseOver Ereignis in Autodesk Forge zu codieren
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() {
\t _viewer.addEventListener(
Autodesk.Viewing.MOUSE_OVER_EVENT,
_self.onMouseOver);
\t console.log("Autodesk.ADN.MouseEvent loaded");
\t return true;
\t };
\t //On unload of the exension function
_self.unload = function() {
\t _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);
aber die onMouseOver Funktion nicht funktioniert, kann mir jemand bitte helfen? Danke im Voraus.
PS: Ich habe die Erweiterungen in den Skript-Tags enthalten und die Erweiterung wird ebenfalls geladen.
oViewer.loadExtension('Autodesk.ADN.Viewing.Extension.MouseEvent');
Ich bekomme auch eine Bestätigung von der Konsole, dass die Erweiterung erfolgreich geladen wird.
Danke @Philippe Leefsma =) –
Zwischen ich habe gerade das gemacht Ich dachte, die Mausereignisse sind in Autodesk Schmiede üblich und implementiert das. @Philippe Leefsma –
Die Viewer-API ist spezifisch für den Betrachter. Je nachdem, was Sie tun, können Sie sich auf niedrigere Three.js-API-Aufrufe verlassen, aber das Erstellen von Ereignisnamen in einer nicht streng typisierten Sprache wie js wird Sie nicht sehr weit bringen ... –