source: other-projects/playing-in-the-street/summer-2013/trunk/Playing-in-the-Street-WPF/Content/Web/mrdoob-three.js-4862f5f/src/core/EventDispatcher.js@ 28897

Last change on this file since 28897 was 28897, checked in by davidb, 10 years ago

GUI front-end to server base plus web page content

File size: 2.0 KB
Line 
1/**
2 * https://github.com/mrdoob/eventdispatcher.js/
3 */
4
5THREE.EventDispatcher = function () {}
6
7THREE.EventDispatcher.prototype = {
8
9 constructor: THREE.EventDispatcher,
10
11 apply: function ( object ) {
12
13 object.addEventListener = THREE.EventDispatcher.prototype.addEventListener;
14 object.hasEventListener = THREE.EventDispatcher.prototype.hasEventListener;
15 object.removeEventListener = THREE.EventDispatcher.prototype.removeEventListener;
16 object.dispatchEvent = THREE.EventDispatcher.prototype.dispatchEvent;
17
18 },
19
20 addEventListener: function ( type, listener ) {
21
22 if ( this._listeners === undefined ) this._listeners = {};
23
24 var listeners = this._listeners;
25
26 if ( listeners[ type ] === undefined ) {
27
28 listeners[ type ] = [];
29
30 }
31
32 if ( listeners[ type ].indexOf( listener ) === - 1 ) {
33
34 listeners[ type ].push( listener );
35
36 }
37
38 },
39
40 hasEventListener: function ( type, listener ) {
41
42 if ( this._listeners === undefined ) return false;
43
44 var listeners = this._listeners;
45
46 if ( listeners[ type ] !== undefined && listeners[ type ].indexOf( listener ) !== - 1 ) {
47
48 return true;
49
50 }
51
52 return false;
53
54 },
55
56 removeEventListener: function ( type, listener ) {
57
58 if ( this._listeners === undefined ) return;
59
60 var listeners = this._listeners;
61 var listenerArray = listeners[ type ];
62
63 if ( listenerArray !== undefined ) {
64
65 var index = listenerArray.indexOf( listener );
66
67 if ( index !== - 1 ) {
68
69 listenerArray.splice( index, 1 );
70
71 }
72
73 }
74
75 },
76
77 dispatchEvent: function () {
78
79 var array = [];
80
81 return function ( event ) {
82
83 if ( this._listeners === undefined ) return;
84
85 var listeners = this._listeners;
86 var listenerArray = listeners[ event.type ];
87
88 if ( listenerArray !== undefined ) {
89
90 event.target = this;
91
92 var length = listenerArray.length;
93
94 for ( var i = 0; i < length; i ++ ) {
95
96 array[ i ] = listenerArray[ i ];
97
98 }
99
100 for ( var i = 0; i < length; i ++ ) {
101
102 array[ i ].call( this, event );
103
104 }
105
106 }
107
108 };
109
110 }()
111
112};
Note: See TracBrowser for help on using the repository browser.