|
@@ -187,47 +187,59 @@ THREE.EventDispatcher.prototype.removeAllListeners = function(){ //add
|
|
|
|
|
|
THREE.EventDispatcher.prototype.dispatchEvent = function(event){
|
|
|
if(typeof event == 'string'){//add
|
|
|
- event = {type:event}
|
|
|
- }
|
|
|
- if ( this._listeners === undefined ) return;
|
|
|
+ event = {type:event}
|
|
|
+ }
|
|
|
+ if ( this._listeners === undefined ) return;
|
|
|
|
|
|
- const listeners = this._listeners;
|
|
|
- const listenerArray = listeners[ event.type ];
|
|
|
+ const listeners = this._listeners;
|
|
|
+ const listenerArray = listeners[ event.type ];
|
|
|
|
|
|
- if ( listenerArray !== undefined ) {
|
|
|
+ if ( listenerArray !== undefined ) {
|
|
|
|
|
|
- event.target = this;
|
|
|
+ event.target = this;
|
|
|
|
|
|
- // Make a copy, in case listeners are removed while iterating.
|
|
|
-
|
|
|
- for(let {listener} of listenerArray.slice(0)){
|
|
|
- let result = listener.call(this, event); //add stopContinue
|
|
|
- if(result && result.stopContinue){
|
|
|
- break
|
|
|
- }
|
|
|
- }
|
|
|
+ // Make a copy, in case listeners are removed while iterating.
|
|
|
+
|
|
|
+ for(let {listener} of listenerArray.slice(0)){
|
|
|
+ let result = listener.call(this, event); //add stopContinue
|
|
|
+ if(result && result.stopContinue){
|
|
|
+ break
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
- }
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
THREE.EventDispatcher.prototype.traverse = function(callback){
|
|
|
- let result = callback( this );
|
|
|
- if(result && result.stopContinue){//xzw add
|
|
|
- return
|
|
|
- }
|
|
|
-
|
|
|
- const children = this.children;
|
|
|
+ let result = callback( this );
|
|
|
+ if(result && result.stopContinue){//xzw add
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ const children = this.children;
|
|
|
|
|
|
- for ( let i = 0, l = children.length; i < l; i ++ ) {
|
|
|
+ for ( let i = 0, l = children.length; i < l; i ++ ) {
|
|
|
|
|
|
- children[ i ].traverse( callback );
|
|
|
+ children[ i ].traverse( callback );
|
|
|
|
|
|
- }
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
+THREE.Object3D.prototype.traverse = function ( callback ) {
|
|
|
+
|
|
|
+ let result = callback( this );
|
|
|
+ if(result && result.stopContinue){//xzw add
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ const children = this.children;
|
|
|
|
|
|
+ for ( let i = 0, l = children.length; i < l; i ++ ) {
|
|
|
+ children[ i ].traverse( callback );
|
|
|
+ }
|
|
|
+}
|
|
|
|
|
|
|
|
|
|