2016-10-17 3 views
0

Wie wird das Kontextmenü ersetzt, wenn ein Objekt ausgewählt wird?Einfaches Ersetzen des Kontextmenüs

Derzeit versuche ich dies auf der Grundlage der API und der Autodesk.ADN.Viewing.Extension.ContextMenu.js Beispiel von Philippe Leefsma.

var contextMenu = new Autodesk.Viewing.UI.ObjectContextMenu(viewer); 

contextMenu.buildMenu(Autodesk.Viewing.AGGREGATE_SELECTION_CHANGED_EVENT, [{ title: 'This is a menu item', target: function() { alert('Menu item clicked'); } }]); 

viewer.setContextMenu(contextMenu);  
+0

Können Sie das konkretisieren, was Sie unter „ersetzen“. ..? Möchten Sie die Elemente des Menüs durch Ihre eigenen ersetzen, fügen Sie einige weitere Optionen hinzu, ersetzen Sie das Kontextmenü selbst ... –

+0

Ich möchte die Elemente des Menüs durch meine eigenen ersetzen. Ich kann das Menü mit registerContextMenuCallback anhängen, aber ich konnte die voreingestellten Kontextmenüelemente nicht entfernen, um zu arbeiten. –

Antwort

1

Es sollte ziemlich einfach sein, alle Menüpunkte mit Ihrer eigenen zu ersetzen ... Werfen Sie einen Blick there für eine vollständige Probe

Autodesk.ADN.Viewing.Extension.AdnContextMenu.prototype.buildMenu = 

     function (event, status) { 

      //completely disable native menu 
      //var menu = Autodesk.Viewing.Extensions.ViewerObjectContextMenu.prototype.buildMenu.call(this, event, status); 

      //and sneak your own ... 
      var menu = [] 

      menu.push({ 
      title: "Dude menu item", 
      target: function() { 
       alert('Dude I was clicked!'); 
      } 
      }) 

      return menu; 
     }; 
+0

Können Sie bitte als Lösung akzeptieren oder erwähnen, wie die Antwort nicht auf Ihre Bedürfnisse eingeht? Es ist wichtig für uns und andere Programmierer, die Antworten als "Lösung" zu kennzeichnen, wenn sie das Problem tatsächlich lösen. Vielen Dank –

Verwandte Themen