Это связано с тем, что aframe связывает three.js, поэтому глобальная переменная window.THREE
переопределена в aframe.js. Исходный файл three.js, в который были загружены TrackballControls и CSSRenderer, после загрузки aframe.js более недоступен.
Вы можете видеть, что если вы делаете что-то вроде этого:
<script src="https://threejs.org/build/three.js">
</script>
<script src="https://threejs.org/examples/js/libs/tween.min.js"></script>
<script src="https://threejs.org/examples/js/controls/TrackballControls.js"></script>
<script src="https://threejs.org/examples/js/renderers/CSS3DRenderer.js"></script>
<script>
window._THREE = THREE;
delete window.THREE;
</script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/aframe/0.7.1/aframe.js"></script>
<script>
console.log(_THREE.REVISION, THREE.REVISION);
</script>
Таким образом, изменение порядка (и не загружая three.js снова) должно вам помочь:
<script src="https://cdnjs.cloudflare.com/ajax/libs/aframe/0.7.1/aframe.js"></script>
<script src="https://threejs.org/examples/js/libs/tween.min.js"></script>
<script src="https://threejs.org/examples/js/controls/TrackballControls.js"></script>
<script src="https://threejs.org/examples/js/renderers/CSS3DRenderer.js"></script>
Однако вы должны знать, что aframe использует другую версию three.js, которая может вызвать конфликты с последней версией со страницы примеров.
Еще одна связанная с этим вещь, которую стоит отметить, заключается в том, что aframe не может работать с css3d-renderer, поскольку DOM-элементы не могут быть показаны в WebVR.