topical media & game development
actionscript-video-09-filters-main.ax
actionscript-video-09-filters-main.ax
[swf]
flex
package {
import flash.display.Sprite;
import flash.net.NetConnection;
import flash.net.NetStream;
import flash.media.Video;
import flash.display.MovieClip;
import flash.events.Event;
//import pro.VideoMC;
//import fl.controls.RadioButtonGroup;
//import fl.controls.RadioButton;
import mx.controls.RadioButtonGroup;
import mx.controls.RadioButton;
import flash.events.MouseEvent;
import flash.filters.BlurFilter;
import flash.filters.DropShadowFilter;
import flash.filters.ColorMatrixFilter;
import flash.geom.ColorTransform;
import flash.geom.Transform;
public class @ax-actionscript-video-09-filters-main extends Sprite {
var video_mc:actionscript_video_09_filters_pro_VideoMC = new actionscript_video_09_filters_pro_VideoMC;
var myRadioGroup:RadioButtonGroup = new RadioButtonGroup();
var colorTransform_btn:RadioButton = new RadioButton();
var blur_btn:RadioButton = new RadioButton();
var colorMatrix_btn:RadioButton = new RadioButton();
var dropShadow_btn:RadioButton = new RadioButton();
public function @ax-actionscript-video-09-filters-main() {
//var myRadioGroup:RadioButtonGroup = new RadioButtonGroup("rbg");
/*
var myRadioGroup:RadioButtonGroup = new RadioButtonGroup();
var colorTransform_btn:RadioButton = new RadioButton();
var blur_btn:RadioButton = new RadioButton();
var colorMatrix_btn:RadioButton = new RadioButton();
var dropShadow_btn:RadioButton = new RadioButton();
*/
myRadioGroup.addEventListener(Event.CHANGE, changeHandler);
addChild(video_mc);
}
private function resetFilters() : void {
vidColorTransform(1,1,1,1,1,1,1,1);
var CMmatrix:Array = new Array();
CMmatrix = [];
vidColorMatrix(CMmatrix);
vidDropShadow(0,0,0,0,0,0,0,0);
vidBlur(0,0,0);
}
private function vidBlur(x:Number,y:Number,quality:Number) : void {
var myFilter:BlurFilter = new BlurFilter(x,y,quality);
var myFilterArray:Array = new Array();
myFilterArray.push(myFilter);
video_mc.filters = myFilterArray;
}
private function vidColorTransform(ax:Number,ao:Number,blue:Number,green:Number,greeno:Number,red:Number,redo:Number,rgb:Number) : void {
var trans:Transform = new Transform(video_mc);
var colorTrans:ColorTransform = new ColorTransform(ax,ao,blue,green,greeno,red,redo,rgb);
trans.colorTransform = colorTrans;
}
private function vidColorMatrix(CMmatrix:Array) : void {
var myCMFilter:ColorMatrixFilter = new ColorMatrixFilter(CMmatrix);
var myCMArray:Array = new Array();
myCMArray.push(myCMFilter);
video_mc.filters = myCMArray;
}
private function vidDropShadow(distance:Number,angle:Number,color:Number,alpha:Number,blurX:Number,blurY:Number,strength:Number,quality:Number) : void {
var myDSFilter:DropShadowFilter = new DropShadowFilter(distance,angle,color,alpha,blurX,blurY,strength,quality);
var myDSFilterArray:Array = new Array();
myDSFilterArray.push(myDSFilter);
video_mc.filters = myDSFilterArray;
}
private function blurHandler() {
resetFilters();
vidBlur(20,0,5);
}
private function colorTransformHandler() {
resetFilters();
vidColorTransform(1,1,1,1,0,0,255,0);
}
private function colorMatrixHandler() : void {
resetFilters();
var CMmatrix:Array = new Array();
CMmatrix = CMmatrix.concat([0, 0, 0, 3, 3]); // red
CMmatrix = CMmatrix.concat([1, 1, 0, 0, 1]); // green
CMmatrix = CMmatrix.concat([1, 1, 0, 0, 0]); // blue
CMmatrix = CMmatrix.concat([0, 0, 0, .7, .2]); // alpha
vidColorMatrix(CMmatrix);
}
private function dropShadowHandler() : void {
resetFilters();
vidDropShadow(4,45,0x777777,30,5,5,1,2);
}
private function changeHandler(event:Event):void {
var rbg:RadioButtonGroup = event.target as RadioButtonGroup;
switch (rbg.selection) {
case colorTransform_btn:
trace("colorTransform");
colorTransformHandler();
break;
case colorMatrix_btn:
trace("colorMatrix");
colorMatrixHandler();
break;
case blur_btn:
trace("blur");
blurHandler();
break;
case dropShadow_btn:
trace("dropShadow");
dropShadowHandler();
break;
}
}
}
}
(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.