javascript - 无法将 Threejs EventDispatcher 附加到自定义对象

标签 javascript three.js

这看起来非常简单,但我对 JavaScript 有点陌生并且很困难。文档给出了这个例子:

// Adding events to a custom object

var Car = function () {

    this.start = function () {

        this.dispatchEvent( { type: 'start', message: 'vroom vroom!' } );
    };
};

// Mixin the EventDispatcher.prototype with the custom object prototype
Object.assign( Car.prototype, EventDispatcher.prototype );

// Using events with the custom object
var car = new Car();

car.addEventListener( 'start', function ( event ) {

    alert( event.message );
});

car.start();

在我的主页的标题中,我包含 three.js ,它实现了 EventDispatcher。在正文中,我加载了 app.js,这是我粘贴示例代码的地方。此时它会抛出EventDispatcher is not Defined。如果我拉进来 EventDispatcher.js在此之前单独进行,一切正常。

我想这是一个简单的加载/执行顺序问题,我想知道如何解决这个问题而不需要额外的 EventDispatcher.js 位。干杯!

最佳答案

这应该有效:

var Car = function () {

    this.start = function () {

        this.dispatchEvent( { type: 'start', message: 'vroom vroom!' } );
    };
};

Object.assign( Car.prototype, THREE.EventDispatcher.prototype );

var car = new Car();

car.addEventListener( 'start', function ( event ) {

    alert( event.message );

});

car.start();

三.js r.85

关于javascript - 无法将 Threejs EventDispatcher 附加到自定义对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44362386/

相关文章:

javascript - Knockout-Sortable:从排序列表中排除项目

javascript - 使用 React.JS 检索和缓存 SVG 节点边界框​​的最佳方法

javascript - 合并具有不同颜色的网格

javascript - Three.js - 获取鼠标点击的X、Y、Z坐标

javascript - 类型具有单独的私有(private)属性声明

javascript - 在 Angular.js 中使用工厂和 Controller 之间的逻辑

javascript - 连接上的socket.io/参数

javascript - 如何使顶点和片段着色器在 Three.js 中工作

javascript - threejs - 将带有纹理贴图的 Material 应用于通过 THREE.ObjectLoader 加载的对象

javascript - Three.js 在它自己的轴上旋转