Flash8 动态遮罩应用

王朝other·作者佚名  2006-11-24
窄屏简体版  字體: |||超大  

来自好友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的效果做一下对比,可以用它来制作类似抹去照片上的灰尘,玻璃幕墙上的水雾等,总之发挥起来就较多了.

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航