EventManager.js.html 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="utf-8">
  5. <title>JSDoc: Source: EventManager.js</title>
  6. <script src="scripts/prettify/prettify.js"> </script>
  7. <script src="scripts/prettify/lang-css.js"> </script>
  8. <!--[if lt IE 9]>
  9. <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
  10. <![endif]-->
  11. <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
  12. <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
  13. </head>
  14. <body>
  15. <div id="main">
  16. <h1 class="page-title">Source: EventManager.js</h1>
  17. <section>
  18. <article>
  19. <pre class="prettyprint source linenums"><code>"use strict";
  20. /**
  21. * EventManager is used to manager DOM events creationg and destruction in a single function call.
  22. *
  23. * It is used by objects to make it easier to add and remove events from global DOM objects.
  24. *
  25. * @class
  26. */
  27. function EventManager()
  28. {
  29. /**
  30. * Stores all events in the manager, their target and callback.
  31. *
  32. * Format [target, event, callback, active]
  33. *
  34. * @type {Array}
  35. */
  36. this.events = [];
  37. }
  38. /**
  39. * Add new event to the manager.
  40. *
  41. * @param {DOM} target Event target element.
  42. * @param {String} event Event name.
  43. * @param {Function} callback Callback function.
  44. */
  45. EventManager.prototype.add = function(target, event, callback)
  46. {
  47. this.events.push([target, event, callback, false]);
  48. };
  49. /**
  50. * Destroys this manager and remove all events.
  51. */
  52. EventManager.prototype.clear = function()
  53. {
  54. this.destroy();
  55. this.events = [];
  56. };
  57. /**
  58. * Creates all events in this manager.
  59. */
  60. EventManager.prototype.create = function()
  61. {
  62. for(var i = 0; i &lt; this.events.length; i++)
  63. {
  64. var event = this.events[i];
  65. event[0].addEventListener(event[1], event[2]);
  66. event[3] = true;
  67. }
  68. };
  69. /**
  70. * Removes all events in this manager.
  71. */
  72. EventManager.prototype.destroy = function()
  73. {
  74. for(var i = 0; i &lt; this.events.length; i++)
  75. {
  76. var event = this.events[i];
  77. event[0].removeEventListener(event[1], event[2]);
  78. event[3] = false;
  79. }
  80. };
  81. export {EventManager};
  82. </code></pre>
  83. </article>
  84. </section>
  85. </div>
  86. <nav>
  87. <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="BezierCurve.html">BezierCurve</a></li><li><a href="Box.html">Box</a></li><li><a href="Box2.html">Box2</a></li><li><a href="BoxMask.html">BoxMask</a></li><li><a href="Circle.html">Circle</a></li><li><a href="DOM.html">DOM</a></li><li><a href="EventManager.html">EventManager</a></li><li><a href="Graph.html">Graph</a></li><li><a href="Helpers.html">Helpers</a></li><li><a href="Image.html">Image</a></li><li><a href="Key.html">Key</a></li><li><a href="Line.html">Line</a></li><li><a href="Mask.html">Mask</a></li><li><a href="Matrix.html">Matrix</a></li><li><a href="Object2D.html">Object2D</a></li><li><a href="Pattern.html">Pattern</a></li><li><a href="Pointer.html">Pointer</a></li><li><a href="Renderer.html">Renderer</a></li><li><a href="Text.html">Text</a></li><li><a href="UUID.html">UUID</a></li><li><a href="Vector2.html">Vector2</a></li><li><a href="Viewport.html">Viewport</a></li><li><a href="ViewportControls.html">ViewportControls</a></li></ul>
  88. </nav>
  89. <br class="clear">
  90. <footer>
  91. Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.2</a> on Thu Jun 13 2019 09:46:06 GMT+0100 (Western European Summer Time)
  92. </footer>
  93. <script> prettyPrint(); </script>
  94. <script src="scripts/linenumber.js"> </script>
  95. </body>
  96. </html>