使用CTRL +单击SELECTION_CHANGED_EVENT时未触发

时间:2017-10-12 14:26:48

标签: autodesk-forge autodesk-viewer

我已根据此处提供的教程创建了一个onSelection更改方法:Selection Override

我已将此设置为多选也适用。

但是,当我尝试取消选择一个组选定的组件时,它没有触发onSelectionChange事件,因为我编码了它(如下所示)。该方法永远不会被触发。

但如果我注释掉这一行:

viewerApp.getCurrentViewer().select(idsToSelect);

然后,所选组件的切换工作完美。并触发onSelectionChnge事件。

有任何帮助吗?在选择改变后,是否有替代方法?可能在点击零件时?

代码如下所示:

viewerApp.getCurrentViewer().addEventListener(Autodesk.Viewing.SELECTION_CHANGED_EVENT, onSelectionChanged);

function onSelectionChanged(data) {
        console.log("selection changed event. Selected dbIds are: " + data.dbIdArray.toString());

        if (data.dbIdArray.length > 0 && data.fragIdsArray.length > 0) {

            var idsToSelect = [];
            var selectionChanged = false;
            for (var k = 0; k < data.dbIdArray.length; k++) {
                var dbId = data.dbIdArray[k];
                if (leafNodes.indexOf(dbId) > -1) {
                    dbId = viewerApp.getCurrentViewer().model.getData().instanceTree.nodeAccess.getParentId(dbId);
                    selectionChanged = true;
                }
                idsToSelect.push(dbId);
            }
            if (selectionChanged) {
                viewerApp.getCurrentViewer().select(idsToSelect);
            }
        }

    }

0 个答案:

没有答案