topical media & game development
actionscript-book-FilterWorkbench-com-example-programmingas3-filterWorkbench-GlowFactory.ax
actionscript-book-FilterWorkbench-com-example-programmingas3-filterWorkbench-GlowFactory.ax
[swf]
flex
package
{
//import com.example.programmingas3.filterWorkbench.ColorStringFormatter;
//import com.example.programmingas3.filterWorkbench.IFilterFactory;
import flash.events.Event;
import flash.events.EventDispatcher;
import flash.filters.BitmapFilter;
import flash.filters.GlowFilter;
// ------- Events -------
[Event(name="change", type="flash.events.Event")]
public class @ax-actionscript-book-FilterWorkbench-com-example-programmingas3-filterWorkbench-GlowFactory extends EventDispatcher implements actionscript_book_FilterWorkbench_com_example_programmingas3_filterWorkbench_IFilterFactory
{
// ------- Private vars -------
private var _filter:GlowFilter;
private var _paramString:String;
// ------- Constructor -------
public function @ax-actionscript-book-FilterWorkbench-com-example-programmingas3-filterWorkbench-GlowFactory(color:uint = 0xFF0000,
alpha:Number = 1,
blurX:Number = 6,
blurY:Number = 6,
strength:Number = 2,
quality:int = 1,
inner:Boolean = false,
knockout:Boolean = false)
{
_filter = new GlowFilter(color, alpha, blurX, blurY, strength, quality, inner, knockout);
_paramString = buildParamString(color, alpha, blurX, blurY, strength, quality, inner, knockout);
}
// ------- IFilterFactory implementation -------
public function getFilter():BitmapFilter
{
return _filter;
}
public function getCode():String
{
var result:String = "";
result += "import flash.filters.BitmapFilterQuality;\n";
result += "import flash.filters.GlowFilter;\n";
result += "\n";
result += "var glow:GlowFilter;\n";
result += "glow = new GlowFilter(" + _paramString + ");\n";
result += "\n";
result += "myDisplayObject.filters = [glow];";
return result;
}
// ------- Public methods -------
public function modifyFilter(color:uint = 0xFF0000,
alpha:Number = 1,
blurX:Number = 6,
blurY:Number = 6,
strength:Number = 2,
quality:int = 1,
inner:Boolean = false,
knockout:Boolean = false):void
{
_filter = new GlowFilter(color, alpha, blurX, blurY, strength, quality, inner, knockout);
_paramString = buildParamString(color, alpha, blurX, blurY, strength, quality, inner, knockout);
dispatchEvent(new Event(Event.CHANGE));
}
// ------- Private methods -------
private function buildParamString(color:uint,
alpha:Number,
blurX:Number,
blurY:Number,
strength:Number,
quality:int,
inner:Boolean,
knockout:Boolean):String
{
var result:String = "\n\t\t" + actionscript_book_FilterWorkbench_com_example_programmingas3_filterWorkbench_ColorStringFormatter.formatColorHex24(color) + ",\n\t\t" + alpha.toString() + ",\n\t\t";
result += blurX.toString() + ",\n\t\t" + blurY.toString() + ",\n\t\t" + strength.toString() + ",\n\t\t";
switch (quality)
{
case 1:
result += "BitmapFilterQuality.LOW";
break;
case 2:
result += "BitmapFilterQuality.MEDIUM";
break;
case 3:
result += "BitmapFilterQuality.HIGH";
break;
}
result += ",\n\t\t";
result += inner.toString() + ",\n\t\t" + knockout.toString();
return result;
}
}
}
(C) Æliens
27/08/2009
You may not copy or print any of this material without explicit permission of the author or the publisher.
In case of other copyright issues, contact the author.