|
@@ -68,27 +68,39 @@ THREE.EventDispatcher.prototype = {
|
|
|
|
|
|
},
|
|
|
|
|
|
- dispatchEvent: function ( event ) {
|
|
|
+ dispatchEvent: function () {
|
|
|
|
|
|
- if ( this._listeners === undefined ) return;
|
|
|
+ var array = [];
|
|
|
|
|
|
- var listeners = this._listeners;
|
|
|
- var listenerArray = listeners[ event.type ];
|
|
|
+ return function ( event ) {
|
|
|
+
|
|
|
+ if ( this._listeners === undefined ) return;
|
|
|
+
|
|
|
+ var listeners = this._listeners;
|
|
|
+ var listenerArray = listeners[ event.type ];
|
|
|
+
|
|
|
+ if ( listenerArray !== undefined ) {
|
|
|
|
|
|
- if ( listenerArray !== undefined ) {
|
|
|
+ event.target = this;
|
|
|
|
|
|
- event.target = this;
|
|
|
+ var length = listenerArray.length;
|
|
|
|
|
|
- listenerArray = listenerArray.slice();
|
|
|
+ for ( var i = 0; i < length; i ++ ) {
|
|
|
|
|
|
- for ( var i = 0, l = listenerArray.length; i < l; i ++ ) {
|
|
|
+ array[ i ] = listenerArray[ i ];
|
|
|
|
|
|
- listenerArray[ i ].call( this, event );
|
|
|
+ }
|
|
|
+
|
|
|
+ for ( var i = 0; i < length; i ++ ) {
|
|
|
+
|
|
|
+ array[ i ].call( this, event );
|
|
|
+
|
|
|
+ }
|
|
|
|
|
|
}
|
|
|
|
|
|
- }
|
|
|
+ };
|
|
|
|
|
|
- }
|
|
|
+ }()
|
|
|
|
|
|
};
|