我使用ThreeJS创造一个互动,人们可以点击立方体。 但是点击后(不同颜色的动画,以保持思想简单),这些立方体表现不同。
我的想法是创建THREE.Mesh对象的扩展类,并添加我的自定义功能和属性。 这将有助于孤立立方体的不同的行为,并提供一个更干净的代码。
我试着用约翰Resigs'功能来扩展类 ,但它似乎只是为最终延长他的‘类’级类工作。
有没有办法做到这一点?
我使用ThreeJS创造一个互动,人们可以点击立方体。 但是点击后(不同颜色的动画,以保持思想简单),这些立方体表现不同。
我的想法是创建THREE.Mesh对象的扩展类,并添加我的自定义功能和属性。 这将有助于孤立立方体的不同的行为,并提供一个更干净的代码。
我试着用约翰Resigs'功能来扩展类 ,但它似乎只是为最终延长他的‘类’级类工作。
有没有办法做到这一点?
有几种方法,使基于类的系统中的JavaScript。 约翰Resig的“类”是一个伟大的,但它不是three.js所使用继承的类型。
在注意立方体类文件行:
THREE.Geometry.call( this );
JavaScript不提供类继承一个内置的模型,所以,除非您使用的是烤成继承类结构库(像约翰Resig的),你必须明确地调用父类的方法。
如果,你的类里面,你调用你的类会从CubeGeometry继承:
THREE.CubeGeometry.call( this );
你也可能会希望设置CubeGeometry为原型:
THREE.MyCubeGeometry.prototype = new THREE.CubeGeometry();
THREE.MyCubeGeometry.prototype.constructor = THREE.MyCubeGeometry;