Advertisement
sanjay1909

CallbackCollection-AS3

Jan 12th, 2015
221
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. public class CallbackNumber{
  2.     public function CallbackNumber(val:Number){
  3.         _value = val;
  4.     }
  5.     private var _value:Number;
  6.     private var callbacks:Array = new Array[]; 
  7.     public function addCallback(callback:Function):void{
  8.         if (callback == null)
  9.             return;        
  10.         callbacks.push(callback);
  11.     }  
  12.     public  function triggerCallbacks():void{
  13.         for (var i:int = 0; i < callbacks.length; i++){
  14.             callbacks[i].apply();
  15.         }          
  16.     }
  17.     public function getValue():Number{
  18.         return _value;
  19.     }
  20.     public function setValue(val:Number):void{
  21.         if(_value != val){
  22.             _value = val;
  23.             triggerCallbacks();
  24.         }
  25.     }
  26. }
  27. // -------- test Code ----------//
  28. var num1:CallbackNumber = new CallbackNumber(1);
  29. var num2:CallbackNumber = new CallbackNumber(2);
  30. num1.addCallback(function():void{trace("num1's Callback called");});
  31. num2.addCallback(function():void{trace("num2's Callback called");});
  32. num2.setValue(22) // num2's Callback called
  33.  
  34. // Test - 1
  35. num2.addCallback(function():void{trace(num1.getValue());});
  36. num2.setValue(8)
  37. // num2's callback called
  38. // 1
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement