Advertisement
Guest User

Untitled

a guest
Jan 29th, 2015
162
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.07 KB | None | 0 0
  1. utils.Event.Binding = function (master, event) {
  2. var self = this;
  3.  
  4. var wrapper = function (func) {
  5. var args = Array.prototype.slice(arguments, 1);
  6.  
  7. func.apply(self, self.args(args));
  8. };
  9.  
  10. this.on = function (func) {
  11. return master.on(event, wrapper.bind(self, func));
  12. };
  13.  
  14. this.args = function () { return arguments; };
  15. };
  16.  
  17.  
  18. utils.Event.bind = function (master, event, args) {
  19. var eventBinding = new utils.Event.Binding(master, event);
  20.  
  21. if (args != null) {
  22. eventBinding.args = args;
  23. }
  24.  
  25. return eventBinding;
  26. };
  27.  
  28.  
  29. utils.Event.Merger = function (events) {
  30. var self = this;
  31.  
  32. var wrapper = function (func) {
  33. var args = Array.prototype.slice(arguments, 1);
  34.  
  35. func.apply(self, self.args(args));
  36. };
  37.  
  38. this.on = function (func) {
  39. events.forEach(function (event) {
  40. event.on(wrapper.bind(self, func));
  41. });
  42. };
  43.  
  44. this.args = function () { return arguments; };
  45. };
  46.  
  47.  
  48. utils.Event.merge = function (events, args) {
  49. var mergedEvent = new utils.Event.Merger(events);
  50.  
  51. if (args != null) {
  52. mergedEvent.args = args;
  53. }
  54.  
  55. return mergedEvent;
  56. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement