这次的模糊运动,所要做的是将物件先“模糊”,再将他“运动”起来。一般的运动很简单,就是设置物件的目标X、Y坐标,然后在“onEnterFrame”事件中利用缓动公式,将物件移动到目标坐标去。而“模糊”就需要调用FLASH8自带的模糊类来实现了。
FLASH8带有模糊滤镜功能,但是并不像一般属性,随意可以设置,必须要导入他的滤镜类 flash.filters.BlurFilter 。
这次的例子很简单,元件很少只有两个 BUTTON,分别是控制移动物件向左、向右移动;还有一个 MOVIECLIP 命名为 mm ,就是被移动的物件。
首先,我们打开FLASH8,在时间轴上新建一层,命名为ACTION。添加以下代码。
import flash.filters.BlurFilter;//带入模糊滤镜类
onEnterFrame = function () {
//当移动物件还在移动中的时候,设置模糊。到达目标坐标的时候,逐渐清晰。
if (mm._x != mmx || mm._y != mmy) {
mm.filters = filterArray;
} else {
if (blurY>0) {
quality = 1;//设置 模糊品质,默认值为 1,即表示低品质。值为 2 表示中等品质,值为 3 表示高品质并且接近高斯模糊。
var filter:BlurFilter = new BlurFilter(blurX, blurY, quality);//blurX为水平模糊量,blurY为垂直模糊量
var filterArray:Array = new Array(filter);//模糊滤镜会将模糊以后的图像绘制成象素数组加以保存
mm.filters = filterArray;//设置移动物件的模糊系数
blurY = blurY-2;//设置垂直模糊量逐渐减少,有效值为 0 到 255(浮点值)。
}
}
mmx = mm._x;
mmy = mm._y;
};
在向左的按钮上,添加以下代码。
on (release) {
import flash.filters.BlurFilter;
_root.mm.targetY = 18;//设置Y目标坐标
_root.mm.targetX = 100;//设置X目标坐标
var blurX:Number = 0;//水平模糊量
var blurY:Number = 5;//垂直模糊量
var quality:Number = 3;//模糊品质
var filter:BlurFilter = new BlurFilter(blurX, blurY, quality);
var filterArray:Array = new Array(filter);
}
在向右的按钮上,添加以下代码。
on (release) {
import flash.filters.BlurFilter;
_root.mm.targetY = 18;
_root.mm.targetX = 400;
var blurX:Number = 0;
var blurY:Number = 5;
var quality:Number = 3;
var filter:BlurFilter = new BlurFilter(blurX, blurY, quality);
var filterArray:Array = new Array(filter);
}