⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 filtershortcuts.as

📁 flash,做點對點移動,殘影+可調整速度
💻 AS
📖 第 1 页 / 共 3 页
字号:
				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 + -