📄 filtershortcuts.as
字号:
nArray.push({name:"_GradientGlow_quality", value:GradientGlowFilter(p_value).quality});
// .ratios(array)
nArray.push({name:"_GradientGlow_strength", value:GradientGlowFilter(p_value).strength});
nArray.push({name:"_GradientGlow_type", value:GradientGlowFilter(p_value).type});
} else {
// ?
trace ("Tweener FilterShortcuts Error :: Unknown filter class used");
}
return nArray;
}
// ==================================================================================================================================
// NORMAL SPECIAL PROPERTY functions ------------------------------------------------------------------------------------------------
// ----------------------------------------------------------------------------------------------------------------------------------
// filters
/**
* (filters)
* Generic function for the properties of filter objects
*/
public static function _filter_property_get (p_obj:Object, p_parameters:Array, p_extra:Object = null):Number {
var f:Array = p_obj.filters;
var i:Number;
var filterClass:Object = p_parameters[0];
var propertyName:String = p_parameters[1];
var splitType:String = p_parameters[2];
for (i = 0; i < f.length; i++) {
if (f[i] is Class(filterClass)) {
if (splitType == "color") {
// Composite, color channel
var colorComponent:String = p_parameters[3];
if (colorComponent == "r") return AuxFunctions.numberToR(f[i][propertyName]);
if (colorComponent == "g") return AuxFunctions.numberToG(f[i][propertyName]);
if (colorComponent == "b") return AuxFunctions.numberToB(f[i][propertyName]);
} else if (splitType == "matrix") {
// Composite, some kind of matrix
return f[i][propertyName][p_parameters[3]];
} else if (splitType == "point") {
// Composite, a point
return f[i][propertyName][p_parameters[3]];
} else {
// Standard property
return (f[i][propertyName]);
}
}
}
// No value found for this property - no filter instance found using this class!
// Must return default desired values
var defaultValues:Object;
switch (filterClass) {
case BevelFilter:
defaultValues = {angle:NaN, blurX:0, blurY:0, distance:0, highlightAlpha:1, highlightColor:NaN, knockout:null, quality:NaN, shadowAlpha:1, shadowColor:NaN, strength:2, type:null};
break;
case BlurFilter:
defaultValues = {blurX:0, blurY:0, quality:NaN};
break;
case ColorMatrixFilter:
defaultValues = {matrix:[1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0]};
break;
case ConvolutionFilter:
defaultValues = {alpha:0, bias:0, clamp:null, color:NaN, divisor:1, matrix:[1], matrixX:1, matrixY:1, preserveAlpha:null};
break;
case DisplacementMapFilter:
defaultValues = {alpha:0, color:NaN, componentX:null, componentY:null, mapBitmap:null, mapPoint:null, mode:null, scaleX:0, scaleY:0};
break;
case DropShadowFilter:
defaultValues = {distance:0, angle:NaN, color:NaN, alpha:1, blurX:0, blurY:0, strength:1, quality:NaN, inner:null, knockout:null, hideObject:null};
break;
case GlowFilter:
defaultValues = {alpha:1, blurX:0, blurY:0, color:NaN, inner:null, knockout:null, quality:NaN, strength:2};
break;
case GradientBevelFilter:
defaultValues = {alphas:null, angle:NaN, blurX:0, blurY:0, colors:null, distance:0, knockout:null, quality:NaN, ratios:NaN, strength:1, type:null};
break;
case GradientGlowFilter:
defaultValues = {alphas:null, angle:NaN, blurX:0, blurY:0, colors:null, distance:0, knockout:null, quality:NaN, ratios:NaN, strength:1, type:null};
break;
}
// When returning NaN, the Tweener engine sets the starting value as being the same as the final value (if not found)
// When returning null, the Tweener engine doesn't tween it at all, just setting it to the final value
// This is DIFFERENT from the default filter applied as default on _filter_property_set because some values shouldn't be tweened
if (splitType == "color") {
// Composite, color channel; always defaults to target value
return NaN;
} else if (splitType == "matrix") {
// Composite, matrix; always defaults to target value
return defaultValues[propertyName][p_parameters[3]];
} else if (splitType == "point") {
// Composite, point; always defaults to target value
return defaultValues[propertyName][p_parameters[3]];
} else {
// Standard property
return defaultValues[propertyName];
}
}
public static function _filter_property_set (p_obj:Object, p_value:Number, p_parameters:Array, p_extra:Object = null): void {
var f:Array = p_obj.filters;
var i:Number;
var filterClass:Object = p_parameters[0];
var propertyName:String = p_parameters[1];
var splitType:String = p_parameters[2];
for (i = 0; i < f.length; i++) {
if (f[i] is Class(filterClass)) {
if (splitType == "color") {
// Composite, color channel
var colorComponent:String = p_parameters[3];
if (colorComponent == "r") f[i][propertyName] = (f[i][propertyName] & 0xffff) | (p_value << 16);
if (colorComponent == "g") f[i][propertyName] = (f[i][propertyName] & 0xff00ff) | (p_value << 8);
if (colorComponent == "b") f[i][propertyName] = (f[i][propertyName] & 0xffff00) | p_value;
} else if (splitType == "matrix") {
var mtx:Array = f[i][propertyName];
mtx[p_parameters[3]] = p_value;
f[i][propertyName] = mtx;
} else if (splitType == "point") {
var pt:Point = Point(f[i][propertyName]);
pt[p_parameters[3]] = p_value;
f[i][propertyName] = pt;
} else {
// Standard property
f[i][propertyName] = p_value;
}
p_obj.filters = f;
return;
}
}
// The correct filter class wasn't found, so create a new one that is the equivalent of the object without the filter
if (f == null) f = new Array();
var fi:BitmapFilter;
switch (filterClass) {
case BevelFilter:
fi = new BevelFilter(0, 45, 0xffffff, 1, 0x000000, 1, 0, 0);
break;
case BlurFilter:
fi = new BlurFilter(0, 0);
break;
case ColorMatrixFilter:
fi = new ColorMatrixFilter([1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0]);
break;
case ConvolutionFilter:
fi = new ConvolutionFilter(1, 1, [1], 1, 0, true, true, 0x000000, 0);
break;
case DisplacementMapFilter:
// Doesn't make much sense to create a new empty DisplacementMapFilter if there's nothing to tween
fi = new DisplacementMapFilter(new BitmapData(10, 10), new Point(0, 0), 0, 1, 0, 0);
break;
case DropShadowFilter:
fi = new DropShadowFilter(0, 45, 0x000000, 1, 0, 0);
break;
case GlowFilter:
fi = new GlowFilter(0xff0000, 1, 0, 0);
break;
case GradientBevelFilter:
fi = new GradientBevelFilter(0, 45, [0xffffff, 0x000000], [1, 1], [32, 223], 0, 0);
break;
case GradientGlowFilter:
fi = new GradientGlowFilter(0, 45, [0xffffff, 0x000000], [1, 1], [32, 223], 0, 0);
break;
}
//fi[propertyName] = p_value;
f.push(fi);
p_obj.filters = f;
_filter_property_set(p_obj, p_value, p_parameters);
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -