SWF Structure Info SWF Structure:
/* the filter type */
struct swf_filter_type {
unsigned char f_type;
};
struct swf_filter_glow {
swf_filter_type f_type; /* 0, 2, 3, 4 or 7 */
if(f_type == GradientGlow || f_type == GradientBevel) {
unsigned char f_count;
}
else {
f_count = 1;
}swf_rgba f_rgba[f_count];
if(f_type == Bevel) {swf_rgba f_highlight_rgba[f_count];
}
if(f_type == GradientGlow || f_type == GradientBevel) {
unsigned char f_position[f_count];
}
signed long fixed f_blur_horizontal;
signed long fixed f_blur_vertical;
if(f_type != Glow) {
signed long fixed f_radian_angle;
signed long fixed f_distance;
}
signed short fixed f_strength;
unsigned f_inner_shadow : 1;
unsigned f_knock_out : 1;
unsigned f_composite_source : 1;
if(f_type == Bevel) {
unsigned f_on_top : 1;
}
else {
unsigned f_reserved : 1;
}
if(f_type == GradientGlow || f_type == GradientBevel) {
unsigned f_passes : 4;
}
else {
unsigned f_reserved : 4;
}
};
struct swf_filter_blur {
swf_filter_type f_type; /* 1 */
unsigned long fixed f_blur_horizontal;
unsigned long fixed f_blur_vertical;
unsigned f_passes : 5;
unsigned f_reserved : 3;
};
struct swf_filter_convolution {
swf_filter_type f_type; /* 5 */
unsigned char f_columns;
unsigned char f_rows;
long float f_divisor;
long float f_bias;
long float f_weights[f_columns × f_rows];swf_rgba f_default_color;
unsigned f_reserved : 6;
unsigned f_clamp : 1;
unsigned f_preserve_alpha : 1;
};
struct swf_filter_colormatrix {
swf_filter_type f_type; /* 6 */
long float f_matrix[20];
};
struct swf_any_filter {
swf_filter_type f_fitler_type;swf_filter_blur f_filter_blur;swf_filter_colormatrix f_filter_colormatrix;swf_filter_convolution f_filter_convolution;swf_filter_glow f_filter_glow;
};A filter defines how to transform the objects it is attached to. The first byte is the filter type. The data following depend on the type. Because each filter is much different, they are defined in separate structures. You can attach a filter to an object using an ActionScript or the PlaceObject3 tag.
The following describes the different filters available since version 8.
read more