home *** CD-ROM | disk | FTP | other *** search
/ PCGUIA 2010 Software/Programs / PCGuia_programas.iso / Software / Utils / Livebrush / Install-LivebrushLite.air / livebrush.swf / scripts / com / livebrush / ui / BrushBehaveView.as < prev    next >
Encoding:
Text File  |  2009-10-26  |  7.2 KB  |  161 lines

  1. package com.livebrush.ui
  2. {
  3.    import com.livebrush.data.Settings;
  4.    import com.livebrush.events.UpdateEvent;
  5.    import com.livebrush.styles.LineStyle;
  6.    import com.livebrush.utils.Update;
  7.    import fl.controls.List;
  8.    
  9.    public class BrushBehaveView extends UIView
  10.    {
  11.       public static const INPUT_TYPES:Array = [{
  12.          "label":"Normal",
  13.          "data":LineStyle.NORMAL
  14.       },{
  15.          "label":"Live",
  16.          "data":LineStyle.ELASTIC
  17.       },{
  18.          "label":"Dynamic",
  19.          "data":LineStyle.DYNAMIC
  20.       }];
  21.       
  22.       public var brushPropsModel:BrushPropsModel;
  23.       
  24.       public var uiAsset:BrushBehaveUI;
  25.       
  26.       public function BrushBehaveView(brushPropsModel:BrushPropsModel)
  27.       {
  28.          super(brushPropsModel.ui);
  29.          this.brushPropsModel = brushPropsModel;
  30.          init();
  31.       }
  32.       
  33.       override protected function createView() : void
  34.       {
  35.          this.uiAsset = new BrushBehaveUI();
  36.          this.uiAsset.behaveTypeHead.label.text = "Behavior Type".toUpperCase();
  37.          this.uiAsset.liveControlHead.label.text = "Live Controls Settings".toUpperCase();
  38.          this.uiAsset.thresholdsHead.label.text = "Decoration Attach Thresholds".toUpperCase();
  39.          this.uiAsset.tRand.toggleMin();
  40.          this.uiAsset.tInterval.toggleMax();
  41.          this.uiAsset.drawSpeedHead.label.text = "Draw Speed".toUpperCase();
  42.          this.uiAsset.maxSpeedInput.label = "Maximum";
  43.          this.uiAsset.minSpeedInput.label = "Minimum";
  44.          this.uiAsset.tAngle.maxIn = 1;
  45.          this.uiAsset.tAngle.minIn = 0;
  46.          this.uiAsset.tAngle.maxIn = 360;
  47.          this.uiAsset.tInterval.minIn = 0;
  48.          this.uiAsset.tInterval.maxIn = 60;
  49.          Tooltip.addTip(this.uiAsset.loadInputBtn,"Load dynamic input SWF");
  50.       }
  51.       
  52.       public function applyProps() : void
  53.       {
  54.          var isDynamicInput:* = this.uiAsset.behaveTypes.selectedItem.data == LineStyle.DYNAMIC;
  55.          this.uiAsset.velocityInput.enabled = this.uiAsset.frictionInput.enabled = this.uiAsset.behaveTypes.selectedItem.data == LineStyle.ELASTIC;
  56.          this.uiAsset.loadInputBtn.enabled = this.uiAsset._dynamicFile.visible = isDynamicInput;
  57.          this.uiAsset.loadInputBtn.alpha = this.uiAsset.loadInputBtn.enabled ? 1 : 0;
  58.          this.uiAsset.lockMouse.enabled = isDynamicInput;
  59.          this.uiAsset.mouseUpComplete.enabled = isDynamicInput || this.uiAsset.behaveTypes.selectedItem.data == LineStyle.ELASTIC;
  60.       }
  61.       
  62.       override public function get settings() : Settings
  63.       {
  64.          var settings:Settings = lastSettings;
  65.          settings.mouseUpComplete = this.uiAsset.mouseUpComplete.selected;
  66.          settings.lockMouse = this.uiAsset.lockMouse.selected;
  67.          settings.type = this.uiAsset.behaveTypes.selectedItem.data;
  68.          settings.elastic = toFraction(this.uiAsset.velocityInput.value);
  69.          settings.friction = 1 - toFraction(this.uiAsset.frictionInput.value);
  70.          settings.minDrawSpeed = this.uiAsset.minSpeedInput.value;
  71.          settings.maxDrawSpeed = this.uiAsset.maxSpeedInput.value;
  72.          settings.thresholds = {
  73.             "speed":{},
  74.             "width":{},
  75.             "angle":{},
  76.             "distance":{},
  77.             "random":{},
  78.             "interval":{}
  79.          };
  80.          settings.thresholds.speed = this.getThresholdObj(this.uiAsset.tSpeed);
  81.          settings.thresholds.width = this.getThresholdObj(this.uiAsset.tWidth);
  82.          settings.thresholds.angle = this.getThresholdObj(this.uiAsset.tAngle);
  83.          settings.thresholds.distance = this.getThresholdObj(this.uiAsset.tDist);
  84.          settings.thresholds.random = this.getThresholdObj(this.uiAsset.tRand);
  85.          settings.thresholds.interval.min = this.uiAsset.tInterval.min * 1000;
  86.          settings.thresholds.interval.enabled = this.uiAsset.tInterval.active;
  87.          return settings;
  88.       }
  89.       
  90.       override public function update(update:Update = null) : void
  91.       {
  92.          if(!(update.type == UpdateEvent.WINDOW || update.type == UpdateEvent.UI))
  93.          {
  94.             if(update.type == UpdateEvent.BRUSH_STYLE)
  95.             {
  96.                update.data.behavior.enabledDecos = update.data.deco.decos.length > 0;
  97.                this.settings = update.data.behavior as Settings;
  98.             }
  99.          }
  100.       }
  101.       
  102.       override public function set settings(settings:Settings) : void
  103.       {
  104.          lastSettings = settings;
  105.          this.uiAsset.behaveTypes.selectedIndex = Settings.idToIndex(settings.type,INPUT_TYPES,"data");
  106.          this.uiAsset.velocityInput.value = settings.elastic * 100;
  107.          this.uiAsset.frictionInput.value = 100 - settings.friction * 100;
  108.          this.uiAsset._dynamicFile.text = settings.inputSWF;
  109.          this.uiAsset.mouseUpComplete.selected = settings.mouseUpComplete;
  110.          this.uiAsset.lockMouse.selected = settings.lockMouse;
  111.          if(settings.enabledDecos)
  112.          {
  113.             this.uiAsset.tSpeed.enabled = this.uiAsset.tWidth.enabled = this.uiAsset.tAngle.enabled = this.uiAsset.tDist.enabled = this.uiAsset.tRand.enabled = this.uiAsset.tInterval.enabled = true;
  114.             this.uiAsset.tSpeed.min = settings.thresholds.speed.min;
  115.             this.uiAsset.tSpeed.max = settings.thresholds.speed.max;
  116.             this.uiAsset.tSpeed.active = settings.thresholds.speed.enabled;
  117.             this.uiAsset.tWidth.min = settings.thresholds.width.min;
  118.             this.uiAsset.tWidth.max = settings.thresholds.width.max;
  119.             this.uiAsset.tWidth.active = settings.thresholds.width.enabled;
  120.             this.uiAsset.tAngle.min = settings.thresholds.angle.min;
  121.             this.uiAsset.tAngle.max = settings.thresholds.angle.max;
  122.             this.uiAsset.tAngle.active = settings.thresholds.angle.enabled;
  123.             this.uiAsset.tDist.min = settings.thresholds.distance.min;
  124.             this.uiAsset.tDist.max = settings.thresholds.distance.max;
  125.             this.uiAsset.tDist.active = settings.thresholds.distance.enabled;
  126.             this.uiAsset.tRand.max = settings.thresholds.random.max;
  127.             this.uiAsset.tRand.active = settings.thresholds.random.enabled;
  128.             this.uiAsset.tInterval.min = Number(settings.thresholds.interval.min) / 1000;
  129.             this.uiAsset.tInterval.active = settings.thresholds.interval.enabled;
  130.          }
  131.          else
  132.          {
  133.             this.uiAsset.tSpeed.enabled = this.uiAsset.tWidth.enabled = this.uiAsset.tAngle.enabled = this.uiAsset.tDist.enabled = this.uiAsset.tRand.enabled = this.uiAsset.tInterval.enabled = false;
  134.          }
  135.          this.uiAsset.minSpeedInput.value = settings.minDrawSpeed;
  136.          this.uiAsset.maxSpeedInput.value = settings.maxDrawSpeed;
  137.          this.applyProps();
  138.       }
  139.       
  140.       public function getThresholdObj(tInput:ThresholdInputs) : Object
  141.       {
  142.          return {
  143.             "min":tInput.min,
  144.             "max":tInput.max,
  145.             "enabled":tInput.active
  146.          };
  147.       }
  148.       
  149.       public function get list() : List
  150.       {
  151.          return this.uiAsset.styleList;
  152.       }
  153.       
  154.       override protected function createController() : void
  155.       {
  156.          controller = new BrushBehaveController(this);
  157.       }
  158.    }
  159. }
  160.  
  161.