Flash8动态遮罩应用

王朝other·作者佚名  2008-05-19
窄屏简体版  字體: |||超大  

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

//***copyrightbywebstudio.com.cn.authorbyegoldy.2006.2.7

//导入flash8filters类

importflash.filters.BlurFilter;

//创建模糊对象

varblur:BlurFilter=newBlurFilter(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- 王朝網路 版權所有 導航