本页面由 Flash 保存计划 从 Internet Archive 存档还原 · 快照 2006-07-08 · 原址 http://www.flash8.net/teach/4890.htm ← Flash 保存计划

flash8 动态遮罩应用

作者:egoldy   类型:转载   来源:webstudio

  

来自好友thinking的创意,需要使用可拖动的动态遮罩来模拟抹去灰尘的效果,但想让拖动的遮罩边缘更光滑,更自然一些,在flashmx2004本身实现上不太可能用直接的方法实现,兴许多用影片剪辑嵌套可以模拟出来,但用flash8是可以实现的.下面范例及代码:

//***copyright by webstudio.com.cn.author by egoldy.2006.2.7
//导入flash8 filters类
import flash.filters.BlurFilter;
//创建模糊对象
var blur:BlurFilter = new BlurFilter(10, 10, 2);
_root.createEmptyMovieClip(’square’, 2);
_root.pic.setMask(square);
//应用模糊
_root.square.filters = [blur];
//应用cacheAsBitmap.这是关键.
pic.cacheAsBitmap=true;
onMouseMove=function(){
square.drawCircle(_xmouse,_ymouse,30);
updateAfterEvent();
}
//绘制圆
MovieClip.prototype.drawCircle = function (x, y, r) {
this.moveTo (x+r, y);
this.beginFill(0x000088);
this.curveTo (r+x, 0.4142*r+y, 0.7071*r+x, 0.7071*r+y);
this.curveTo (0.4142*r+x, r+y, x, r+y);
this.curveTo (-0.4142*r+x, r+y, -0.7071*r+x, 0.7071*r+y);
this.curveTo (-r+x, 0.4142*r+y, -r+x, y);
this.curveTo (-r+x, -0.4142*r+y, -0.7071*r+x, -0.7071*r+y);
this.curveTo (-0.4142*r+x, -r+y, x, -r+y);
this.curveTo (0.4142*r+x, -r+y, 0.7071*r+x, -0.7071*r+y);
this.curveTo (r+x, -0.4142*r+y, r+x, y);
this.endFill();
};

本例针对webstudio站上之前教程dynamic mask,进行了一些改写,也可以和flashmx2004的效果做一下对比,可以用它来制作类似抹去照片上的灰尘,玻璃幕墙上的水雾等,总之发挥起来就较多了.

   责任编辑:uufeng    时间:2006年2月9日

正在加载评论...