Guest User

Untitled

a guest
Jun 17th, 2018
102
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. package {
  2.    
  3.     import flash.display.Sprite;
  4.     import fl.motion.AdjustColor;
  5.     import flash.filters.ColorMatrixFilter;
  6.     import fl.events.SliderEvent;
  7.     import fl.controls.Slider;
  8.     import flash.display.DisplayObject;
  9.     import fl.controls.Button;
  10.     import fl.events.ComponentEvent;
  11.     import fl.controls.Label;
  12.     import flash.net.SharedObject;
  13.    
  14.     public class ICAdjustColor extends Sprite
  15.     {
  16.         private var my_AdjustColor:AdjustColor = new AdjustColor();
  17.         private var my_ColorMatrixFilter:ColorMatrixFilter;
  18.        
  19.         private var my_Slider_IC_BRIGHTNESS:Slider = new Slider();
  20.         private var my_Slider_IC_CONTRAST:Slider = new Slider();
  21.         private var my_Slider_IC_HUE:Slider = new Slider();
  22.         private var my_Slider_IC_SATURATION:Slider = new Slider();
  23.        
  24.         private var my_Button_save:Button = new Button();
  25.         private var my_Button_revert:Button = new Button();
  26.  
  27.         private var my_soName:String;
  28.        
  29.         private var my_DO:DisplayObject;
  30.        
  31.         private var my_IC_BRIGHTNESS:Number = new Number();
  32.         private var my_IC_CONTRAST:Number = new Number();
  33.         private var my_IC_HUE:Number = new Number();
  34.         private var my_IC_SATURATION:Number = new Number();
  35.        
  36.         private var my_sliderMagFactor:Number = new Number();
  37.                
  38.         public function ICAdjustColor(theDO:DisplayObject, soName:String, theSliderMagFactor:Number):void
  39.         {
  40.             trace("ICAdjustColor ctor(2): soName="+soName);        
  41.             my_soName = soName;
  42.             my_DO = theDO;         
  43.             my_sliderMagFactor = theSliderMagFactor;
  44.             init(my_soName);
  45.         }
  46.        
  47.         public function addChildren()
  48.         {
  49.             addChild(my_Slider_IC_BRIGHTNESS);
  50.             addChild(my_Slider_IC_CONTRAST);
  51.             addChild(my_Slider_IC_HUE);
  52.             addChild(my_Slider_IC_SATURATION);
  53.             trace("my_Button_save: " + my_Button_save.toString());
  54.             addChild(my_Button_save);
  55.             addChild(my_Button_revert);
  56.                        
  57.             /* Add Listeners function */
  58.            
  59.             addListeners();        
  60.         }
  61.  
  62.         private final function addListeners():void
  63.         {
  64.             my_Slider_IC_BRIGHTNESS.addEventListener(SliderEvent.CHANGE, adjustBrightness);
  65.             my_Slider_IC_CONTRAST.addEventListener(SliderEvent.CHANGE, adjustContrast);
  66.             my_Slider_IC_HUE.addEventListener(SliderEvent.CHANGE, adjustHue);
  67.             my_Slider_IC_SATURATION.addEventListener(SliderEvent.CHANGE, adjustSaturation);
  68.             my_Button_save.addEventListener(ComponentEvent.BUTTON_DOWN, saveHandler);
  69.             my_Button_revert.addEventListener(ComponentEvent.BUTTON_DOWN, revertHandler);
  70.         }
  71.        
  72.         private final function saveHandler(e:ComponentEvent):void
  73.         {
  74.             trace("** saveHandler: begins: my_soName="+my_soName);
  75.             var SO = SharedObject.getLocal(my_soName);
  76.             trace("-- SO.client="+SO.client);
  77.  
  78.             for (var prop1 in SO.data) {
  79.                 trace("-- saveHandler: before set: prop1: "+prop1+": "+SO.data[prop1]);
  80.             }
  81.  
  82.             SO.data.IC_BRIGHTNESS           = my_IC_BRIGHTNESS  / my_sliderMagFactor;
  83.             SO.data.IC_CONTRAST             = my_IC_CONTRAST    / my_sliderMagFactor;
  84.             SO.data.IC_HUE                  = my_IC_HUE         / my_sliderMagFactor;
  85.             SO.data.IC_SATURATION           = my_IC_SATURATION  / my_sliderMagFactor;
  86.  
  87.             for (var prop2 in SO.data) {
  88.                 trace("-- saveHandler: after set: prop2: "+prop2+": "+SO.data[prop2]);
  89.             }
  90.  
  91.             SO.data.IC_HUE = my_IC_SATURATION / my_sliderMagFactor;
  92.             trace("-- saveHandler: my_IC_HUE:" + my_IC_HUE + " SO.data.IC_HUE:" + SO.data.IC_HUE);
  93.            
  94.             SO.flush();
  95.         }
  96.  
  97.         private final function revertHandler(e:ComponentEvent):void
  98.         {
  99.             trace("*** revertHandler: begins: my_soName="+my_soName);
  100.             trace("revertHandler: set SO vals to 0");
  101.  
  102.             var SO = SharedObject.getLocal(my_soName);
  103.            
  104.             SO.clear();
  105.  
  106.             SO.data.IC_BRIGHTNESS = 0;
  107.             SO.data.IC_CONTRAST = 0;
  108.             SO.data.IC_HUE = 0;
  109.             SO.data.IC_SATURATION = 0;
  110.              
  111.             my_IC_BRIGHTNESS = SO.data.IC_BRIGHTNESS;
  112.             my_IC_CONTRAST = SO.data.IC_CONTRAST;
  113.             my_IC_HUE = SO.data.IC_HUE;
  114.             my_IC_SATURATION = SO.data.IC_SATURATION;
  115.            
  116.             //SO.setDirty("IC_HUE");
  117.  
  118.             trace("revertHandler: call init with new SO vals");
  119.             init(my_soName);
  120.             trace("revertHandler: ends");
  121.         }
  122.  
  123.         // initialize based on soName (eg, stream name)
  124.         public final function init(soName:String):void
  125.         {
  126.  
  127.             my_soName = soName;
  128.  
  129.             var SO = SharedObject.getLocal(my_soName);
  130.  
  131.             trace("ICAdjustColor: init: begin: my_soName="+my_soName);
  132.             trace("ICAdjustColor: init: begin: SO.data.IC_HUE="+SO.data.IC_HUE);
  133.            
  134.             // IF SO EXISTS, USE, ELSE, INIT TO 0
  135.             if(SO.data.IC_BRIGHTNESS!=undefined) { my_IC_BRIGHTNESS = SO.data.IC_BRIGHTNESS;
  136.             } else {
  137.                 my_IC_BRIGHTNESS = 0;
  138.             }
  139.             if(SO.data.IC_CONTRAST!=undefined) {
  140.                 my_IC_CONTRAST = SO.data.IC_CONTRAST;
  141.             } else {
  142.                 my_IC_CONTRAST = 0;
  143.             }
  144.             if(SO.data.IC_HUE!=undefined) {
  145.                 trace("-- SO.data.IC_HUE!=undefined, use SO val="+ SO.data.IC_HUE);
  146.                 my_IC_HUE = SO.data.IC_HUE;
  147.             } else {
  148.                 trace("-- SO.data.IC_HUE==undefined, st my_IC_HUE = 99");
  149.                 my_IC_HUE = 99;
  150.             }
  151.             if(SO.data.IC_SATURATION!=undefined) {
  152.                 my_IC_SATURATION = SO.data.IC_SATURATION;
  153.             } else {
  154.                 my_IC_SATURATION = 0;
  155.             }
  156.  
  157.             // TRACE ALL SO VALUES
  158.             for (var prop in SO.data) {
  159.                 trace("-- init: loop set: "+prop+": "+SO.data[prop]);
  160.                 switch(prop) {
  161.                     case "IC_HUE":
  162.                         trace("---- case: IC_HUE");
  163.                         my_IC_HUE = SO.data[prop];
  164.                         break;
  165.                     case "IC_BRIGHTNESS" :
  166.                         trace ("---- case IC_BRIGHTNESS");
  167.                         break;
  168.                     case "IC_CONTRAST" :
  169.                         trace ("---- case IC_CONTRAST");
  170.                         break;
  171.                     case "IC_SATURATION" :
  172.                         trace ("---- case IC_SATURATION");
  173.                         break;
  174.                 }
  175.             }
  176.  
  177.             //trace("set my_AdjustColor values");
  178.             my_AdjustColor['brightness'] = my_IC_BRIGHTNESS;
  179.             my_AdjustColor['contrast'] = my_IC_CONTRAST;
  180.             my_AdjustColor['hue'] = my_IC_HUE;
  181.             my_AdjustColor['saturation'] = my_IC_SATURATION;
  182.            
  183.             //trace("set slider min/max ranges");
  184.             my_Slider_IC_BRIGHTNESS.minimum = -100;
  185.             my_Slider_IC_BRIGHTNESS.maximum = 100;
  186.             my_Slider_IC_CONTRAST.minimum = -100;
  187.             my_Slider_IC_CONTRAST.maximum = 100;
  188.             my_Slider_IC_HUE.minimum = -100;
  189.             my_Slider_IC_HUE.maximum = 100;
  190.             my_Slider_IC_SATURATION.minimum = -100;
  191.             my_Slider_IC_SATURATION.maximum = 100;
  192.            
  193.             //trace("set slider values");
  194.             my_Slider_IC_BRIGHTNESS.value = my_IC_BRIGHTNESS;
  195.             my_Slider_IC_CONTRAST.value = my_IC_CONTRAST;
  196.             my_Slider_IC_HUE.value = my_IC_HUE;
  197.             my_Slider_IC_SATURATION.value = my_IC_SATURATION;
  198.  
  199.             //trace("set slider move positions");
  200.             my_Slider_IC_BRIGHTNESS.move(20, 40);
  201.             my_Slider_IC_CONTRAST.move(20, 60);
  202.             my_Slider_IC_HUE.move(20, 80);
  203.             my_Slider_IC_SATURATION.move(20, 100);
  204.  
  205.             //trace("set save button");
  206.             my_Button_save.move(20, 120);
  207.             my_Button_save.width = 60;
  208.             my_Button_save.height = 20;
  209.  
  210.             //trace("set revert button");
  211.             my_Button_revert.move(20, 140);
  212.             my_Button_revert.width = 60;
  213.             my_Button_revert.height = 20;
  214.            
  215.             my_Button_save.label = "Save";
  216.             my_Button_revert.label = "Revert";
  217.            
  218.             //trace("store values in SO");
  219.             SO = SharedObject.getLocal(my_soName);
  220.             SO.data.IC_BRIGHTNESS = my_IC_BRIGHTNESS;
  221.             SO.data.IC_CONTRAST = my_IC_CONTRAST;
  222.             SO.data.IC_HUE = my_IC_HUE;
  223.             SO.data.IC_SATURATION = my_IC_SATURATION;
  224.            
  225.             trace("ICAdjustColor: init ends");
  226.            
  227.         }
  228.  
  229.         private final function adjustSetting(name:String, val:Object, slider:Object, e:SliderEvent, soData:Object)
  230.         {
  231.             trace("adjustSetting");
  232. /*
  233.             trace("adjustSetting "+name+" init: val.x="+val.x);
  234.             val.x = e.target.value * my_sliderMagFactor;
  235.             soData = e.target.value * my_sliderMagFactor;
  236.             update();
  237.             trace("adjustSetting "+name+" ends: val.x="+val.x);
  238.  
  239.             example usage:
  240.             var val:Object = new Object();
  241.             val.x = my_IC_BRIGHTNESS;
  242.             var slider:Object = new Object();
  243.             slider.x = my_IC_BRIGHTNESS;
  244.             var so:Object = new Object();
  245.             so.x = my_IC_BRIGHTNESS;
  246.             adjustSetting("Brightness", slider, so, e, soData)
  247.  
  248. */
  249.         }
  250.         private final function adjustBrightness(e:SliderEvent):void
  251.         {
  252.             //Select the local shared object           
  253.             var SO = SharedObject.getLocal(my_soName);
  254.             trace("-- adjustBrightness init: my_IC_BRIGHTNESS="+my_IC_BRIGHTNESS);
  255.             my_IC_HUE = e.target.value * my_sliderMagFactor;
  256.             //check if previously set
  257.             if(SO.data.IC_HUE!=undefined){
  258.                 //if set, use stored val
  259.                 my_AdjustColor['brightness'] = SO.data.IC_BRIGHTNESS;
  260.             } else { // else, if not set, set it to user value
  261.                 my_AdjustColor['brightness'] = e.target.value * my_sliderMagFactor;
  262.                 update();
  263.             }
  264.             trace("-- adjustBrightness ends: my_IC_BRIGHTNESS="+my_IC_BRIGHTNESS);
  265.         }
  266.        
  267.         private final function adjustContrast(e:SliderEvent):void
  268.         {
  269.             //Select the local shared object           
  270.             var SO = SharedObject.getLocal(my_soName);
  271.             trace("adjustContrast init: SO.data.IC_CONTRAST="+SO.data.IC_CONTRAST);
  272.             my_IC_HUE = e.target.value * my_sliderMagFactor;
  273.             //check if previously set
  274.             if(SO.data.IC_CONTRAST!=undefined){
  275.                 //if set, use stored val
  276.                 my_AdjustColor['contrast'] = SO.data.IC_CONTRAST;
  277.             } else { // else, if not set, set it to user value
  278.                 my_AdjustColor['contrast'] = e.target.value * my_sliderMagFactor;
  279.                 update();
  280.             }
  281.             trace("adjustContrast ends: SO.data.IC_CONTRAST="+SO.data.IC_CONTRAST);
  282.         }
  283.        
  284.         private final function adjustHue(e:SliderEvent):void
  285.         {
  286.             //Select the local shared object           
  287.             var SO = SharedObject.getLocal(my_soName);
  288.             trace("- adjustHue init: my_soName="+my_soName+" my_IC_HUE="+my_IC_HUE+" SO.data.IC_HUE="+SO.data.IC_HUE);
  289.             my_IC_HUE = e.target.value * my_sliderMagFactor;
  290.             //check if previously set
  291.             if(SO.data.IC_HUE!=undefined){
  292.                 //if set, use stored val
  293.                 trace("--- adjustHue: SO.data.IC_HUE!=undefined");
  294.                 my_AdjustColor['hue'] = SO.data.IC_HUE;
  295.             } else { // else, if not set, set it to user value
  296.                 trace("--- adjustHue: SO.data.IC_HUE==undefined");
  297.                 my_AdjustColor['hue'] = e.target.value * my_sliderMagFactor;
  298.                 update();
  299.             }
  300.  
  301.             for (var prop1 in SO.data) {
  302.                 trace("--- adjustHue: loop: "+prop1+": "+SO.data[prop1]);
  303.             }
  304.            
  305.             trace("-- adjustHue ends: my_IC_HUE="+my_IC_HUE+" SO.data.IC_HUE="+SO.data.IC_HUE);
  306.         }
  307.  
  308.         private final function adjustSaturation(e:SliderEvent):void
  309.         {
  310.             //Select the local shared object           
  311.             var SO = SharedObject.getLocal(my_soName);
  312.             trace("adjustSaturation init: my_IC_SATURATION="+my_IC_SATURATION);
  313.             my_IC_HUE = e.target.value * my_sliderMagFactor;
  314.             //check if previously set
  315.             if(SO.data.IC_HUE!=undefined){
  316.                 //if set, use stored val
  317.                 my_AdjustColor['sat'] = SO.data.IC_SATURATION;
  318.             } else { // else, if not set, set it to user value
  319.                 my_AdjustColor['sat'] = e.target.value * my_sliderMagFactor;
  320.                 update();
  321.             }
  322.             trace("adjustSaturation ends: my_IC_SATURATION="+my_IC_SATURATION);
  323.         }
  324.        
  325.         private final function update():void
  326.         {
  327.             my_ColorMatrixFilter = new ColorMatrixFilter(my_AdjustColor.CalculateFinalFlatArray());
  328.             my_DO.filters = [my_ColorMatrixFilter];
  329.         }
  330.     }
  331. }
Add Comment
Please, Sign In to add comment