您好!欢迎您光临本站! 体育 I 论坛 I 交友 I

会员注册

I

本站搜索

I

收藏本站

当前位置:首页 >>>Flash欣赏>>>本站管理员原创MV>>>Flash AS3实例教程:漂亮的水纹动画
Flash AS3实例教程:漂亮的水纹动画
发表日期:2012/8/20 9:59:00 出处:未知 作者:未知 发布人:www 已被访问 377

 

 



详细代码:



var k:Number=0;//声明一个数值型变量k,初始值为0

var mc:MovieClip =new Mc();//声明一个影片剪辑类实例mc,链接库中类名为Mc的影片剪辑

addChild(mc);//把mc添加到显示列表

var bt1:BitmapData=new BitmapData(275,200,false,0x0);//声明一个位图数据类实例bt1(宽275,高200,不支持透明度,黑色)

var bt2:BitmapData=new BitmapData(275,200,false,0x0);//声明一个位图数据类实例bt2(宽275,高200,不支持透明度,黑色)

var bt3:BitmapData=new BitmapData(550,400);//声明一个位图数据类实例bt3(宽550,高400,默认支持透明度,白色)

var filter:ConvolutionFilter=new ConvolutionFilter(3,3,[.5,1,.5,1,0,1,.5,1,.5],3);//声明一个卷积滤镜的实例filter(矩阵有3列,3行,用于矩阵转换的值的数组,矩阵转换中使用的除数)

var newfilter:DisplacementMapFilter=new DisplacementMapFilter(bt1,new Point(0,0),4,4,50,50);//声明一个置换滤镜的实例newfilter(源显示对象,目标显示对象的左上角相对于映射图像左上角的偏移量,在映射图像中置换 x 结果的颜色通道蓝通道,在映射图像中置换 y结果的颜色通道蓝通道,用于缩放映射计算的 x 置换结果的乘数,用于缩放映射计算的 y 置换结果的乘数)

addEventListener(Event.ENTER_FRAME,onframe);//添加帧频事件侦听,调用函数onframe

addEventListener(MouseEvent.MOUSE_OVER,ondown);//添加鼠标滑入事件侦听,调用函数ondown

addEventListener(MouseEvent.MOUSE_OUT,ondown);//添加鼠标滑出事件侦听,调用函数ondown

function ondown(e:MouseEvent):void {//定义鼠标事件函数ondown

        k++>20?k=0:k=k;//k每帧增加1,如果k大于20,则k获取0,否则什么也不做

}

function Rect() {//自定义函数Rect

        bt1.fillRect(new Rectangle(mouseX/2,mouseY/2,2,2),0xffffff);//在bt1中进行矩形填充(范围(左上角坐标(mouseX/2,mouseY/2),宽2,高2),颜色为白色)

}

function onframe(e:Event):void {//定义事件函数onframe

        k%2==1?Rect():0;//如果k除以2的余数等于1,调用自定义函数Rect,否则什么都不做

        var temp:BitmapData=bt2.clone();//声明一个位图数据类实例temp,获取bt2的副本

        bt2.applyFilter(bt1,new Rectangle(0,0,550,400),new Point(0,0),filter);//在位图bt2中应用滤镜(源位图,源矩形区域,目标图像中与源矩形左上角对应的点,卷积滤镜对象)

        bt2.draw(temp,null,null,"subtract",null,false);//在位图bt2中拍照(源显示对象,不变形,没有颜色转换,混合模式,绘制整个源对象,不做平滑处理)

        bt3.draw(bt2,new Matrix(2,0,0,2),new ColorTransform(1,1,1,1,127,127,127),null,null,true);//在位图bt3中拍照(源显示对象,在X和Y方向上放大2倍,颜色各红绿蓝通道偏移量均增大127,无混合模式,绘制整个源对象,平滑处理)

        newfilter.mapBitmap=bt3;//置换滤镜newfilter的包含置换映射数据的位图对象获取bt3

        mc.filters=[newfilter];//为mc添加置换滤镜

        temp.dispose();//设置temp的宽和高都为0,不再调用,即从内存中清除

        temp=bt1;//temp获取bt1

        bt1=bt2;//bt1获取bt2

        bt2=temp;//bt2获取temp

}

//标题:将文本转换为位图

var bmd:BitmapData;//声明一个位图数据类变量bmd

var bit:Bitmap;//声明一个位图显示类变量bit

var txt:TextField =new TextField();//声明一个文本类实例txt

txt.defaultTextFormat=new TextFormat("华文隶书",56,0xff0000);//设置txt的格式(字体,大小,颜色)

txt.autoSize=TextFieldAutoSize.LEFT;//txt自动调整大小并左对齐

txt.filters =[new DropShadowFilter()];//txt应用投影滤镜

txt.text="恭贺新春快乐";//txt的内容

bmd=new BitmapData(txt.width,txt.height,true,0);//变量获取位图数据类的实例(宽、高都为文本的宽高,支持透明度,颜色为黑色)

bmd.draw(txt);//在位图上为文本拍照

bit=new Bitmap(bmd);//变量bit获取位图显示类的实例,用来显示bmd

bit.x=100;//bit的X坐标获取100

bit.y=50;//bit的Y坐标获取50

mc.addChild(bit);//把bit添加到mc中



 

双击自动滚屏 【打印本页】 【关闭窗口
 相关评论:

没有相关评论

 发表评论:

身份选择:会员 游客(游客不需要输入密码)
用 户 名: 密 码:
评论内容:
(最多评论字数:500)

闪客公寓休闲娱乐网 | 设为首页 | 加入收藏 | 联系我们 | 进入管理 | 关于站长 | 本站搜索

联系电话:QQ:340623306 联系人:王小华