Advertisement
Guest User

Untitled

a guest
Jul 18th, 2017
52
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. //----------------------------------------------------------------------------------
  2. //
  3. // CRUNGET : Get object
  4. //
  5. //----------------------------------------------------------------------------------
  6. package Extensions
  7. {
  8.     import Actions.*;
  9.     import flash.display.ActionScriptVersion;
  10.     import flash.filters.ConvolutionFilter;
  11.    
  12.     import Conditions.*;
  13.    
  14.     import Expressions.*;
  15.    
  16.     import Objects.*;
  17.    
  18.     import RunLoop.*;
  19.    
  20.     import Services.*;
  21.    
  22.     import Sprites.*;
  23.    
  24.     import flash.utils.Dictionary;
  25.  
  26.     public class CRunFunction extends CRunExtension
  27.     {      
  28.         var strParams:Dictionary = new Dictionary();
  29.         var numParams:Dictionary = new Dictionary();
  30.         var queue:Dictionary = new Dictionary();
  31.        
  32.         var returnStr:String;
  33.         var returnNum:Number;
  34.        
  35.         public function CRunFunction()
  36.         {
  37.            
  38.         }
  39.        
  40.         public override function handleRunObject():int
  41.         {
  42.             strParams = new Dictionary();
  43.             numParams = new Dictionary();
  44.             queue = new Dictionary();
  45.             returnStr = "";
  46.             returnNum = 0;
  47.             return 0;
  48.         }
  49.  
  50.         public override function getNumberOfConditions():int
  51.         {
  52.             return 3;
  53.         }
  54.  
  55.         public override function condition(num:int, cnd:CCndExtension):Boolean
  56.         {
  57.             switch(num)
  58.             {
  59.                 case 0:
  60.                 {
  61.                     return onFunction(cnd.getParamExpString(rh,0));
  62.                 }
  63.                 case 1:
  64.                 {
  65.                     return addString(cnd.getParamExpString(rh, 0), cnd.getParamExpString(rh, 1));
  66.                 }
  67.                 case 2:
  68.                 {
  69.                     return addNumber(cnd.getParamExpString(rh, 0), cnd.getParamExpression(rh, 1));
  70.                 }
  71.             }
  72.             return false;
  73.         }
  74.                    
  75.         public override function action(num:int, act:CActExtension):void
  76.         {
  77.             switch(num)
  78.             {
  79.                 case 0:
  80.                 {
  81.                     insertString(act.getParamExpString(rh, 0), act.getParamExpString(rh, 1));
  82.                     break;
  83.                 }
  84.                 case 1:
  85.                 {
  86.                     insertNumber(act.getParamExpString(rh, 0), act.getParamExpression(rh, 1));
  87.                     break;
  88.                 }
  89.                 case 2:
  90.                 {
  91.                     runFunction(act.getParamExpString(rh, 0));
  92.                     break;
  93.                 }
  94.                 case 3:
  95.                 {
  96.                     returnString(act.getParamExpString(rh, 0));
  97.                     break;
  98.                 }
  99.                 case 4:
  100.                 {
  101.                     returnNumber(act.getParamExpression(rh, 0));
  102.                     break;
  103.                 }
  104.             }
  105.         }
  106.        
  107.         public override function expression(num:int):CValue
  108.         {
  109.             switch(num)
  110.             {
  111.                 case 0:
  112.                 {
  113.                     return getString(ho.getExpParam().getString());
  114.                 }
  115.                 case 1:
  116.                 {
  117.                     return getNumber(ho.getExpParam().getString());
  118.                 }
  119.             }
  120.             return new CValue(0);
  121.         }
  122.        
  123.         public function onFunction(name:String):Boolean
  124.         {
  125.             return (queue[name] == 1);
  126.         }
  127.        
  128.         public function addString(identifier:String, str:String):Boolean
  129.         {
  130.             insertString(identifier, str);
  131.             return true;
  132.         }
  133.        
  134.         public function addNumber(identifier:String, n:Number):Boolean
  135.         {
  136.             insertNumber(identifier, n);
  137.             return true;
  138.         }
  139.        
  140.         public function insertString(identifier:String, str:String):void
  141.         {
  142.             strParams[identifier] = str;
  143.         }
  144.        
  145.         public function insertNumber(identifier:String, n:Number):void
  146.         {
  147.             numParams[identifier] = n;
  148.         }
  149.        
  150.         public function runFunction(name:String):void
  151.         {
  152.             queueUp();
  153.             queue[name] = 1;
  154.             ho.generateEvent(onFunction, 0);
  155.             queue[name] = 0;
  156.             queueDown();
  157.         }
  158.        
  159.         public function returnString(str:String):void
  160.         {
  161.             returnStr = str;
  162.         }
  163.        
  164.         public function returnNumber(n:Number):void
  165.         {
  166.             returnNum = n;
  167.         }
  168.        
  169.         public function getString(key:String):CValue
  170.         {
  171.             return CString(strParams[key]);
  172.         }
  173.        
  174.         public function getNumber(key:String):CValue
  175.         {
  176.             return CDouble(numParams[key]);
  177.         }
  178.        
  179.         public function queueUp():void
  180.         {
  181.             for (var k:Object in queue)
  182.             {
  183.                 if (queue[k]>0)
  184.                 {
  185.                     queue[k]++;
  186.                 }
  187.             }
  188.         }
  189.        
  190.         public function queueDown():void
  191.         {
  192.             for (var k:Object in queue)
  193.             {
  194.                 if (queue[k]>0)
  195.                 {
  196.                     queue[k]--;
  197.                 }
  198.             }
  199.         }
  200.        
  201.         public function CDouble(n:Number):CValue
  202.         {
  203.             var v:CValue = new CValue(0);
  204.             v.forceDouble(n);
  205.             return v;
  206.         }
  207.        
  208.         public function CString(str:String):CValue
  209.         {
  210.             var v:CValue = new CValue(0);
  211.             v.forceString(str);
  212.             return v;
  213.         }
  214.     }
  215. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement