<?xml version="1.0" encoding="utf-8"?>
<s:Module xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx"
xmlns:containers="containers.*"
xmlns:data="containers.data.*"
xmlns:separators="ardisia.components.separators.*"
frameRate="60"
width="100%" height="100%"
removedFromStage="removedFromStageHandler(event)">
<fx:Script>
<![CDATA[
import ardisia.filters.BlackWhiteOutlineFilter;
import ardisia.filters.BloatFilter;
import ardisia.filters.BrightnessFilter;
import ardisia.filters.BrownFilter;
import ardisia.filters.BubblegumFilter;
import ardisia.filters.ContrastFilter;
import ardisia.filters.CoolFilter;
import ardisia.filters.EdgeDetectFilter;
import ardisia.filters.EmbossFilter;
import ardisia.filters.GrayscaleFilter;
import ardisia.filters.HueFilter;
import ardisia.filters.InvertFilter;
import ardisia.filters.PinchFilter;
import ardisia.filters.SaturationFilter;
import ardisia.filters.SepiaFilter;
import ardisia.filters.SharpenFilter;
import ardisia.filters.SoftWarmFilter;
import ardisia.filters.WarmFilter;
protected var filter:*;
public function creationComplete():void
{
}
protected function strengthSelect_changeHandler(event:Event):void
{
if (filter.hasOwnProperty("strength"))
filter.strength = strengthSelect.value;
}
protected function radioGroupChangeHandler(event:Event):void
{
strengthFormItem.enabled = true;
strengthSelect.value = 50;
strengthSelect.minimum = 0; strengthSelect.maximum = 100;
strengthSelect.snapInterval = 1;
switch (event.currentTarget)
{
case noFilterSelect:
strengthFormItem.enabled = false;
img.filters = null;
break;
case sharpenSelect:
filter = new SharpenFilter();
img.filters = [filter];
break;
case embossSelect:
filter = new EmbossFilter();
strengthFormItem.enabled = false;
img.filters = [filter];
break;
case pinchSelect:
filter = new PinchFilter();
filter.mapBitmapSource = img.bitmapData;
img.filters = [filter];
break;
case bloatSelect:
filter = new BloatFilter();
filter.mapBitmapSource = img.bitmapData;
img.filters = [filter];
break;
case bwOutlineSelect:
filter = new BlackWhiteOutlineFilter();
img.filters = [filter];
break;
case grayscaleSelect:
filter = new GrayscaleFilter();
strengthFormItem.enabled = false;
img.filters = [filter];
break;
case edgeDetectSelect:
filter = new EdgeDetectFilter();
img.filters = [filter];
break;
case brightnessSelect:
filter = new BrightnessFilter();
img.filters = [filter];
break;
case hueSelect:
filter = new HueFilter();
strengthSelect.value = 0;
strengthSelect.minimum = -180; strengthSelect.maximum = 180;
strengthSelect.snapInterval = 1;
filter.strength = strengthSelect.value;
img.filters = [filter];
break;
case invertSelect:
filter = new InvertFilter();
strengthFormItem.enabled = false;
img.filters = [filter];
break;
case saturationSelect:
filter = new SaturationFilter();
img.filters = [filter];
break;
case contrastSelect:
filter = new ContrastFilter();
img.filters = [filter];
break;
case sepiaSelect:
filter = new SepiaFilter();
strengthFormItem.enabled = false;
img.filters = [filter];
break;
case brownishSelect:
filter = new BrownFilter();
strengthFormItem.enabled = false;
img.filters = [filter];
break;
case warmSelect:
filter = new WarmFilter();
strengthFormItem.enabled = false;
img.filters = [filter];
break;
case softWarmSelect:
filter = new SoftWarmFilter();
strengthFormItem.enabled = false;
img.filters = [filter];
break;
case bubblegumSelect:
filter = new BubblegumFilter();
strengthFormItem.enabled = false;
img.filters = [filter];
break;
case coolSelect:
filter = new CoolFilter();
strengthFormItem.enabled = false;
img.filters = [filter];
break;
}
}
protected function removedFromStageHandler(event:Event):void
{
}
]]>
</fx:Script>
<fx:Declarations>
</fx:Declarations>
<s:states>
<s:State name="stockholm" />
<s:State name="london" />
<s:State name="spark" />
</s:states>
<containers:DemoApplicationWrapper id="demoAppWrapper"
width="100%" height="100%"
westRegionTitle="Filters Description"
description="Additional Spark filters. All of them extend BaseFilter and can be applied generally to DisplayObjects. Some filters have a 'strength' property that can be adjusted via the slider below. Other filters are simply applied or not. If the slider is disabled, the selected filter can not be adjusted via a 'strength' property."
currentState.stockholm="stockholm" currentState.london="london" currentState.spark="spark">
<containers:expandingContainerContent>
<!--- expanding container #1 -->
<data:ExpandingContainerData>
<data:label>API</data:label>
<data:content>
<s:FormHeading label="Filter Strength"/>
<s:FormItem id="strengthFormItem"
label="Strength:"
enabled="false" >
<s:HSlider id="strengthSelect"
width="100"
change="strengthSelect_changeHandler(event)"/>
</s:FormItem>
<separators:HSeparator width="100%" />
<s:FormHeading label="Applied Filter"/>
<s:FormItem label="No Filter:">
<s:RadioButton id="noFilterSelect"
selected="true"
groupName="filterGroup"
change="radioGroupChangeHandler(event)"/>
</s:FormItem>
<s:FormItem label="Sharpen:">
<s:RadioButton id="sharpenSelect"
groupName="filterGroup"
change="radioGroupChangeHandler(event)"/>
</s:FormItem>
<s:FormItem label="B and W Outline:">
<s:RadioButton id="bwOutlineSelect"
groupName="filterGroup"
change="radioGroupChangeHandler(event)"/>
</s:FormItem>
<s:FormItem label="Pinch:">
<s:RadioButton id="pinchSelect"
groupName="filterGroup"
change="radioGroupChangeHandler(event)"/>
</s:FormItem>
<s:FormItem label="Bloat:">
<s:RadioButton id="bloatSelect"
groupName="filterGroup"
change="radioGroupChangeHandler(event)"/>
</s:FormItem>
<s:FormItem label="Edge Detect:">
<s:RadioButton id="edgeDetectSelect"
groupName="filterGroup"
change="radioGroupChangeHandler(event)"/>
</s:FormItem>
<s:FormItem label="Brightness:">
<s:RadioButton id="brightnessSelect"
groupName="filterGroup"
change="radioGroupChangeHandler(event)"/>
</s:FormItem>
<s:FormItem label="Hue:">
<s:RadioButton id="hueSelect"
groupName="filterGroup"
change="radioGroupChangeHandler(event)"/>
</s:FormItem>
<s:FormItem label="Saturation:">
<s:RadioButton id="saturationSelect"
groupName="filterGroup"
change="radioGroupChangeHandler(event)"/>
</s:FormItem>
<s:FormItem label="Contrast:">
<s:RadioButton id="contrastSelect"
groupName="filterGroup"
change="radioGroupChangeHandler(event)"/>
</s:FormItem>
<s:FormItem label="Emboss:">
<s:RadioButton id="embossSelect"
groupName="filterGroup"
change="radioGroupChangeHandler(event)"/>
</s:FormItem>
<s:FormItem label="Grayscale:">
<s:RadioButton id="grayscaleSelect"
groupName="filterGroup"
change="radioGroupChangeHandler(event)"/>
</s:FormItem>
<s:FormItem label="Invert:">
<s:RadioButton id="invertSelect"
groupName="filterGroup"
change="radioGroupChangeHandler(event)"/>
</s:FormItem>
<s:FormItem label="Sepia:">
<s:RadioButton id="sepiaSelect"
groupName="filterGroup"
change="radioGroupChangeHandler(event)"/>
</s:FormItem>
<s:FormItem label="Brown:">
<s:RadioButton id="brownishSelect"
groupName="filterGroup"
change="radioGroupChangeHandler(event)"/>
</s:FormItem>
<s:FormItem label="Warm:">
<s:RadioButton id="warmSelect"
groupName="filterGroup"
change="radioGroupChangeHandler(event)"/>
</s:FormItem>
<s:FormItem label="Soft Warm:">
<s:RadioButton id="softWarmSelect"
groupName="filterGroup"
change="radioGroupChangeHandler(event)"/>
</s:FormItem>
<s:FormItem label="Bubblegum:">
<s:RadioButton id="bubblegumSelect"
groupName="filterGroup"
change="radioGroupChangeHandler(event)"/>
</s:FormItem>
<s:FormItem label="Cool:">
<s:RadioButton id="coolSelect"
groupName="filterGroup"
change="radioGroupChangeHandler(event)"/>
</s:FormItem>
</data:content>
</data:ExpandingContainerData>
</containers:expandingContainerContent>
<containers:centerContent>
<!--- example #1 -->
<data:PrimaryContentData>
<data:tabLabel>Example</data:tabLabel>
<data:exampleDescription>Laika as a puppy.</data:exampleDescription>
<data:primaryContent>
<s:Image id="img"
horizontalCenter="0" verticalCenter="0"
source="@Embed(source='images/crazy-eyes.jpg')"/>
</data:primaryContent>
</data:PrimaryContentData>
</containers:centerContent>
</containers:DemoApplicationWrapper>
</s:Module>