当前位置: 首页 > 知识库问答 >
问题:

不能从THREE. js类扩展

牧献
2023-03-14

我对三岁还很陌生。js和javascript,所以我不能完全确定这是否是一个三。js或javascript问题,但我无法从这三个方面继承。网格类,并在屏幕上显示我的网格。由于某种原因,我不允许调用构造函数new-THREE。网格(几何、材料);在我的类的构造函数中。有人能给我指一下正确的方向吗。

我读了这篇文章:扩展Three.js类

让它工作,但我想使用一个实际的类,而不是这里提出的这个奇怪的结构。

    class Icon extends THREE.Mesh{
      constructor(iconName, worldPosition, cameraPosition){
        super();
        this.iconName = iconName;
        this.worldPosition = worldPosition;
        this.cameraPosition = cameraPosition;
        var geometry = new THREE.BoxBufferGeometry( 1, 1, 1 );
        var material = new THREE.MeshBasicMaterial( { color: 0xffff00 } );     
        var mesh = new THREE.Mesh( geometry, material );   
        console.log(this.mesh); // Error: undefined
      }
    };
...

scene.add(obj.mesh);
// Error: THREE.Object3D.add: object not an instance of THREE.Object3D.



共有1个答案

仉英朗
2023-03-14

正确的类如下所示:

class Icon extends THREE.Mesh{
  constructor(iconName, worldPosition, cameraPosition){
    super();
    this.iconName = iconName;
    this.worldPosition = worldPosition;
    this.cameraPosition = cameraPosition;
    this.geometry = new THREE.BoxBufferGeometry();
    this.material = new THREE.MeshBasicMaterial( { color: 0xffff00 } );     
    console.log(this);
  }
};

与其创建Mesh的新实例,不如将新几何和材质分配给现有属性几何材质

 类似资料:
  • 问题内容: 我想知道为什么在Java语言中a 不能扩展。 我不是在谈论一个延伸的(这不能做,因为Java没有多重继承,而Š隐含延长),但一类的以只添加额外的方法,而不是额外的枚举值。 就像是: 要这样使用: 因此,有人可以对此限制提供理由(或将我指向正确的JLS部分)吗? 问题答案: 我认为 他们这样做 的答案来自以下问题: 在您的示例中,如何实例化MyClass?用户永远不会(通过)显式实例化枚

  • 为什么我不能这样做/是否有解决方法来实现这一点: 这两个编译错误是 > On

  • 我在React中测试ES6语法,并编写如下组件:

  • 问题内容: 我怎样才能做到这一点: 另外,我想知道这种方法是否可行,因为我已经在类中创建了菜单,即ControlMenu,并且在其他活动中继续进行扩展。 问题答案: 你只能扩展一个类。并从许多来源实现接口。 扩展多个类不可用。我能想到的唯一解决方案不是继承任何一个类,而是每个类都有一个内部变量,并通过将对你对象的请求重定向到你希望它们去的对象来做更多的代理。 这是我想出的最好的解决方案。你可以从这

  • 问题内容: 我是这些泛型类型的新手。在下面的代码中,我创建了一个方法,该方法接受扩展了“字符串”的项目列表。 我的问题?-当列表可以分配一个新列表时,为什么不能添加字符串“ test” …这给了我一个编译错误。 问题答案: 因为与此处无关的不是运行时类型。仍然是类型,您刚巧将其分配给。考虑一下: 编译器无法确定其是否有效-它仅基于的编译时类型进行决策。 请注意,实际上没有任何扩展,这是一个类。

  • 问题内容: 我正在React中调试ES6语法,并编写如下组件: 但是浏览器使我警惕: 警告:getInitialState是在Loginform(普通的JavaScript类)上定义的。仅使用React.createClass创建的类支持此功能。您是要定义状态属性吗? 我可以使用传统语法来处理它,但是正确的ES6语法是什么? 另一件事,我认为传统语法是一个对象,因此其中的功能由逗号分隔,但是对于需