2

我正在使用 ThreeJS 创建人们可以单击立方体的交互。然而,这些立方体在点击时表现不同(不同的颜色动画,以保持想法简单)。

我的想法是创建 THREE.Mesh 对象的扩展类并添加我的自定义函数和属性。这将有助于隔离多维数据集的不同行为并提供更清晰的代码。

我尝试使用John Resigs 的函数来扩展类,但它似乎只适用于最终扩展他的“类”类的类。

有没有办法做到这一点?

4

1 回答 1

3

有几种方法可以在 Javascript 中创建基于类的系统。John Resig 的“类”是一个很棒的类,但它不是 Three.js 使用的继承类型。

注意Cube 类文件中的行:

THREE.Geometry.call( this );

Javascript 没有为类继承提供内置模型,因此除非您使用将继承融入类构造的库(如 John Resig 的),否则您必须显式调用 super 方法。

如果在您的类中调用,您的类将从 CubeGeometry 继承:

THREE.CubeGeometry.call( this );

您可能还希望将 CubeGeometry 设置为原型:

THREE.MyCubeGeometry.prototype = new THREE.CubeGeometry();
THREE.MyCubeGeometry.prototype.constructor = THREE.MyCubeGeometry;
于 2012-06-12T15:03:24.163 回答