home *** CD-ROM | disk | FTP | other *** search
- package com.livebrush.ui
- {
- import com.livebrush.data.Settings;
- import com.livebrush.events.UpdateEvent;
- import com.livebrush.styles.LineStyle;
- import com.livebrush.utils.Update;
- import fl.controls.List;
-
- public class BrushBehaveView extends UIView
- {
- public static const INPUT_TYPES:Array = [{
- "label":"Normal",
- "data":LineStyle.NORMAL
- },{
- "label":"Live",
- "data":LineStyle.ELASTIC
- },{
- "label":"Dynamic",
- "data":LineStyle.DYNAMIC
- }];
-
- public var brushPropsModel:BrushPropsModel;
-
- public var uiAsset:BrushBehaveUI;
-
- public function BrushBehaveView(brushPropsModel:BrushPropsModel)
- {
- super(brushPropsModel.ui);
- this.brushPropsModel = brushPropsModel;
- init();
- }
-
- override protected function createView() : void
- {
- this.uiAsset = new BrushBehaveUI();
- this.uiAsset.behaveTypeHead.label.text = "Behavior Type".toUpperCase();
- this.uiAsset.liveControlHead.label.text = "Live Controls Settings".toUpperCase();
- this.uiAsset.thresholdsHead.label.text = "Decoration Attach Thresholds".toUpperCase();
- this.uiAsset.tRand.toggleMin();
- this.uiAsset.tInterval.toggleMax();
- this.uiAsset.drawSpeedHead.label.text = "Draw Speed".toUpperCase();
- this.uiAsset.maxSpeedInput.label = "Maximum";
- this.uiAsset.minSpeedInput.label = "Minimum";
- this.uiAsset.tAngle.maxIn = 1;
- this.uiAsset.tAngle.minIn = 0;
- this.uiAsset.tAngle.maxIn = 360;
- this.uiAsset.tInterval.minIn = 0;
- this.uiAsset.tInterval.maxIn = 60;
- Tooltip.addTip(this.uiAsset.loadInputBtn,"Load dynamic input SWF");
- }
-
- public function applyProps() : void
- {
- var isDynamicInput:* = this.uiAsset.behaveTypes.selectedItem.data == LineStyle.DYNAMIC;
- this.uiAsset.velocityInput.enabled = this.uiAsset.frictionInput.enabled = this.uiAsset.behaveTypes.selectedItem.data == LineStyle.ELASTIC;
- this.uiAsset.loadInputBtn.enabled = this.uiAsset._dynamicFile.visible = isDynamicInput;
- this.uiAsset.loadInputBtn.alpha = this.uiAsset.loadInputBtn.enabled ? 1 : 0;
- this.uiAsset.lockMouse.enabled = isDynamicInput;
- this.uiAsset.mouseUpComplete.enabled = isDynamicInput || this.uiAsset.behaveTypes.selectedItem.data == LineStyle.ELASTIC;
- }
-
- override public function get settings() : Settings
- {
- var settings:Settings = lastSettings;
- settings.mouseUpComplete = this.uiAsset.mouseUpComplete.selected;
- settings.lockMouse = this.uiAsset.lockMouse.selected;
- settings.type = this.uiAsset.behaveTypes.selectedItem.data;
- settings.elastic = toFraction(this.uiAsset.velocityInput.value);
- settings.friction = 1 - toFraction(this.uiAsset.frictionInput.value);
- settings.minDrawSpeed = this.uiAsset.minSpeedInput.value;
- settings.maxDrawSpeed = this.uiAsset.maxSpeedInput.value;
- settings.thresholds = {
- "speed":{},
- "width":{},
- "angle":{},
- "distance":{},
- "random":{},
- "interval":{}
- };
- settings.thresholds.speed = this.getThresholdObj(this.uiAsset.tSpeed);
- settings.thresholds.width = this.getThresholdObj(this.uiAsset.tWidth);
- settings.thresholds.angle = this.getThresholdObj(this.uiAsset.tAngle);
- settings.thresholds.distance = this.getThresholdObj(this.uiAsset.tDist);
- settings.thresholds.random = this.getThresholdObj(this.uiAsset.tRand);
- settings.thresholds.interval.min = this.uiAsset.tInterval.min * 1000;
- settings.thresholds.interval.enabled = this.uiAsset.tInterval.active;
- return settings;
- }
-
- override public function update(update:Update = null) : void
- {
- if(!(update.type == UpdateEvent.WINDOW || update.type == UpdateEvent.UI))
- {
- if(update.type == UpdateEvent.BRUSH_STYLE)
- {
- update.data.behavior.enabledDecos = update.data.deco.decos.length > 0;
- this.settings = update.data.behavior as Settings;
- }
- }
- }
-
- override public function set settings(settings:Settings) : void
- {
- lastSettings = settings;
- this.uiAsset.behaveTypes.selectedIndex = Settings.idToIndex(settings.type,INPUT_TYPES,"data");
- this.uiAsset.velocityInput.value = settings.elastic * 100;
- this.uiAsset.frictionInput.value = 100 - settings.friction * 100;
- this.uiAsset._dynamicFile.text = settings.inputSWF;
- this.uiAsset.mouseUpComplete.selected = settings.mouseUpComplete;
- this.uiAsset.lockMouse.selected = settings.lockMouse;
- if(settings.enabledDecos)
- {
- 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;
- this.uiAsset.tSpeed.min = settings.thresholds.speed.min;
- this.uiAsset.tSpeed.max = settings.thresholds.speed.max;
- this.uiAsset.tSpeed.active = settings.thresholds.speed.enabled;
- this.uiAsset.tWidth.min = settings.thresholds.width.min;
- this.uiAsset.tWidth.max = settings.thresholds.width.max;
- this.uiAsset.tWidth.active = settings.thresholds.width.enabled;
- this.uiAsset.tAngle.min = settings.thresholds.angle.min;
- this.uiAsset.tAngle.max = settings.thresholds.angle.max;
- this.uiAsset.tAngle.active = settings.thresholds.angle.enabled;
- this.uiAsset.tDist.min = settings.thresholds.distance.min;
- this.uiAsset.tDist.max = settings.thresholds.distance.max;
- this.uiAsset.tDist.active = settings.thresholds.distance.enabled;
- this.uiAsset.tRand.max = settings.thresholds.random.max;
- this.uiAsset.tRand.active = settings.thresholds.random.enabled;
- this.uiAsset.tInterval.min = Number(settings.thresholds.interval.min) / 1000;
- this.uiAsset.tInterval.active = settings.thresholds.interval.enabled;
- }
- else
- {
- 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;
- }
- this.uiAsset.minSpeedInput.value = settings.minDrawSpeed;
- this.uiAsset.maxSpeedInput.value = settings.maxDrawSpeed;
- this.applyProps();
- }
-
- public function getThresholdObj(tInput:ThresholdInputs) : Object
- {
- return {
- "min":tInput.min,
- "max":tInput.max,
- "enabled":tInput.active
- };
- }
-
- public function get list() : List
- {
- return this.uiAsset.styleList;
- }
-
- override protected function createController() : void
- {
- controller = new BrushBehaveController(this);
- }
- }
- }
-
-