code_junkie

ActionScript 3.0 using closures for event handlers

Nov 11th, 2011
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.40 KB | None | 0 0
  1. root.addEventListener("click",
  2. function ()
  3. {
  4. navigateToURL(ClickURLRequest,"_self");
  5. });
  6.  
  7. root.removeEventListener("click",
  8. function ()
  9. {
  10. navigateToURL(ClickURLRequest,"_self");
  11. });
  12.  
  13. root.removeEventListener("click", function () {} );
  14.  
  15. function OnClick (e:Event)
  16. {
  17. navigateToURL(ClickURLRequest,"_self");
  18. }
  19.  
  20. root.addEventListener("click", OnClick);
  21. root.removeEventListener("click", OnClick);
  22.  
  23. addEventListener
  24. (
  25. Event.ACTIVATE,
  26. function(event:Event):void
  27. {
  28. (event.target as EventDispatcher).removeEventListener(event.type, arguments.callee)
  29. }
  30. )
  31.  
  32. myDispatcher.addEventListener("click", function(event:Event):void
  33. {
  34. IEventDispatcher(event.target).removeEventListener(event.type, arguments.callee);
  35.  
  36. // Whatever else needs doing goes here
  37. });
  38.  
  39. myLoader.addEventListener("complete", function(event:Event):void
  40. {
  41. /* Even though the load is asynchronous, having the callback code inline
  42. * like this instead of scattered around makes it easier to understand,
  43. * in my opinion. */
  44. });
  45.  
  46. var closure:Function;
  47.  
  48. myDispatcher.addEventListener("click", function(event:Event):void
  49. {
  50. closure = arguments.callee;
  51.  
  52. // Whatever else needs doing goes here
  53. });
  54.  
  55. myDispatcher.removeEventListener("click", closure);
  56.  
  57. root.removeEventListener("click", arguments.callee );
  58.  
  59. addSelfDestructiveEventListener('roomRenderer', 'complete', trackAction, 'floorChanged');
  60.  
  61. private function addSelfDestructiveEventListener(listenee:*, event:String, functionToCall:Function, StringArgs:String):void
  62. {
  63. this[listenee].addEventListener(event, function(event:Event):void
  64. {
  65. (event.target as EventDispatcher).removeEventListener(event.type, arguments.callee);
  66. functionToCall(StringArgs);
  67. })
  68. }
  69.  
  70. addSelfDestructiveEventListener('roomRenderer', 'complete', trackAction, 'floorChanged');
  71.  
  72. private function addSelfDestructiveEventListener(listenee:*, event:String, functionToCall:Function, StringArgs:String):void
  73. {
  74. this[listenee].addEventListener(event, function(event:Event):void
  75. {
  76. (event.target as EventDispatcher).removeEventListener(event.type, arguments.callee);
  77. functionToCall(StringArgs);
  78. })
  79. }
  80.  
  81. var closure:Function = null;
  82. root.addEventListener("click",
  83. closure = function ()
  84. {
  85. navigateToURL(ClickURLRequest,"_self");
  86. });
  87.  
  88. root.removeEventListener("click", closure);
Add Comment
Please, Sign In to add comment