Flash AS制作上升的水泡效果动画
- 格式:doc
- 大小:31.00 KB
- 文档页数:2
FLASH吹泡泡动画特效
这个Flash实例制作了一个有趣的“小丑吹泡泡”动画,主要运用了椭圆、直线工具,以及任意变形和渐变填充等,操作简洁易懂,适合练习。
先看下效果吧:效果图:
制作步骤:
1、新建一个Flash文档,Ctrl+F8新建一个元件,命名为“boy”。
选择椭圆工具,设笔触为黑色,按住Shift键画出一个正圆作为小丑的脸。
图01
2、新建一个图层,命名为“nose”,再画一个小椭圆作为鼻子。
图02
3、嘴巴和耳朵都可以都画在鼻子图层上。
先用直线工具画出如下两条直线作为嘴和脸颊。
图03
4、用选取工具将直线调节成如下弧形以形成微笑的嘴巴和鼓起的脸颊。
图04
5、画一个小椭圆作为耳朵的轮廓,两条小直线作为耳朵内部的线条。
图05
6、用选取工具选取一部分耳朵的外轮廓并按Delete键删掉,再把两条小直线调节成如下弧形,完成耳朵。
图06
7、眼睛是由三个小椭圆组成的,中间的椭圆填充黑色,另外两个填充白色叠加起来就行了。
可以在新图层上画。
图07
8、调整好五官的位置之后给脸和鼻子上色。
选中脸部,在混色器中设置如下从#FEE4CD到#FEC19A的渐变,类型为“放射状”。
图08
9、鼻子也是同样的渐变,用填充变形工具把渐变范围缩小一点就可以了。
图09
10、画帽子。
Ctrl+F8新建一个元件,命名为“cap”。
先用钢笔工具或者直线工具画一个三角形。
图10
11、用选取工具将三角形的各个边调节成如下曲线。
图11。
Flash 制作流动的水,爆布的制作1、准备好一张清晰的瀑布图片,启动FLASH,设背景为蓝色,其它默认。
如图2、文件——导入——导入到库,把图片导入。
如图3、在第一层的第1 帧,把图片从库里拖进舞台,调整图片和舞台一样大小。
4、打开对齐面版,选相对于舞台,水平对齐,垂直对齐。
5、增加图层2 ,右键点图层1 的第1 帧--复制帧,右键点图层2 的第1 帧,粘贴帧。
6、在图层1 右键点图片--转换为元件,类型:图形。
锁定第1 层,把眼晴关上(隐藏图层1),打开图层2。
7、打开图层2 ,点第1 帧,用小键盘的方向键把图片向右移动1 pt。
右键点图片--分离,把图片打散。
8、选用工具栏上的套索工具--多边形模式,在打散后的图片上删除水以外的部份。
如何删除水以外的部份:我借用网上的一张图片说明问题,并向图片作者表示敬意。
我们在打散的图片上设几个点,如:A、B、C、D、E、F......把要删除部份圈起来,最后的点与A点重合并双击,按“DELETE”健,就可删除圈起来的部份了,多删几次,就能把水以外的部份删除干净。
9、把水部份转为元件,并设透明度为60% ,锁定图层2 。
10、插入图层3 ,选用矩形工具在舞台上画一个550 x7pt 的长方形,在对齐面版--水平对齐,上对齐,把长方形移到舞台的上边线上。
11、选用箭头工具右键点长方形--复制,Ctrl+D 复制N 个长方形,行矩7像素。
(复制的方法随各人的习惯)12、所有矩形为画面的1.2倍左右的时候,把舞台调整为25% ,用箭头工具把所有的矩形及图片括起来,点对齐面版上的水平对齐,Ctrl+G 组合所有矩形,把它转为元件3,类型:影片剪辑。
13、点对齐面版上的底对齐,使元件3 的底和舞台底对齐,在图层3 的40帧插入关键帧,创建补间动画。
13、点对齐面版上的底对齐,使元件3 的底和舞台底对齐,在图层3 的40帧插入关键帧,创建补间动画。
14、在第40帧,用小键盘的方向键移动元件3 ,使元件3 和舞台上对齐。
怎么用flash8做出水注满杯子并溢位的动画基本分两部分吧,1,用的遮照动画,2形状补间动画.flash8 ... 瓶子水位逐渐升高的动画自学菜鸟求简单一点谢谢5最好的办法是用遮罩层,下面的层放水的背景图,上面有遮罩层,随着时间的变化调整遮罩层的位置或者_xscale,_yscale就可以做到水位升高的视觉效果flash如何 ... 把水从一个杯子倒进另外一个杯子中去?要求是杯子中的水从无到有再到溢位。
想要精致些的那就一帧一帧画吧,要是简单些那就用根线代表水位呗,做个补间动作flash逐帧动画,学会flash 再做吧flash8 动画 ... ,急20q4079 9q99 53有人发给你之后,请给我发一份吧~如何在flash8做出这样的动画效果?可以啊1.画出飞机,在图层拉长帧,补间动画,在最后一帧新增关键帧,把飞机缩小,移开位置2.水波纹可以用补间动画做出。
打字好麻烦额= =,要不你留个邮箱我做出来给你研究…..用flash8怎么做一个拉近效果的动画你提的问题囿错误.. 为什么两个人已经站在同一个位置叻,干嘛还要慢慢在拉近他们的位置呢. 把问题弄清楚.我或许可以帮助你.用flash如何做杯子里的水涨效果?可以用遮罩做到,把水做成元件,里面是水面波动的变化。
做成被遮罩层,复制两个杯子的图层,一个做遮罩层,另一个走表面层。
被遮罩层做补间动画,做水元件往上拉的动画。
这样就可以做到水涨水在流动的效果了。
不懂在问我吧很简单呀,其实就是一个正方形的动画过程。
在第一帧画一个蓝色长方形的图形,然后选中按f8,变为图形或影片剪辑,然后在属性框中并将透明度也就是alpha变低一点,做成水的效果。
再在第15帧(随便你在哪一帧)按f6加个关键帧,把长方形变形拉高一点,就表示水涨了,再回到第一帧,新增变形动作。
再建一层,加上水杯,放到水层的下面,就ok了水平面做成球形不就成了。
Flash的AS代码制作上升的泡泡的动画。
如果一个一个的画,工作量繁重并且效果并不好。
我们利用AS的复制语句来实现水泡的数量,利用设置属性来改变透明度,大小等。
最后在影片剪辑中设置水泡的左右摆动。
综合在一起就可以实现水泡上升的效果了。
具体步骤:1.Flash MX中新建一文档。
并适当修改文档属性(400×300,蓝色背景) 。
2.建一个影片剪辑,命名为“h2o”。
进入编辑区以后,利用绘图工具,渐变填充绘制一个水泡。
3.回到主场景,把图层1命名为“h2o”。
从库中把“h2o”影片剪辑拖放到场景的下方,在下面的属性面板中命名它的分身名为“h2o”。
4.主场景中新建一个图层,命名为“as”。
在第1帧添加AS:i=1while(i<=30){duplicateMovieClip("h2o","h2o"+i,i);setProperty("h2o"+i,_x,random(400));setProperty("h2o"+i,_y,random(100)+300);setProperty("h2o"+i,_xscale,random(60)+40);setProperty("h2o"+i,_yscale,getProperty(eval("h2o"+i),_xscale));setProperty("h2o"+i,_alpha,random(30)+70);i++}_root.h2o._visible=05.具体解释如下:i=1 //初始化变量while(i<=30){ //用来控制水珠的数量duplicateMovieClip("h2o","h2o"+i,i); //复制水珠setProperty("h2o"+i,_x,random(400)); //在X轴上随机分布复制出的水珠setProperty("h2o"+i,_y,random(100)+300); //同上,只是换成了Y轴setProperty("h2o"+i,_xscale,random(60)+40);setProperty("h2o"+i,_yscale,getProperty(eval("h2o"+i),_xscale));//以上两条AS是用来控制水珠大小的。
遮罩动画制作水流动效果
操作步骤如下: 1、
新建flash 文档,大小设置如下: 2、 插入图层,从上到下依次命名为:遮罩层、水、背景图片
3、 选中背景图片图层,文件——导入——导入到舞台——选择一张有水的图片
4、
550*400 5、选中图片,
5、使用套索工具,将水的区域圈出来,Ctrl+C复制
6、选中水图层,右键单击,粘贴到当前位置。
通过隐藏背景图层,可以看到,水的图
层如下
7、锁定水喝背景图片图层,在遮罩层内用刷子工具绘制波浪(波浪要两倍于水区域的
高度)
8、在遮罩层第50帧插入关键帧,水和背景图片图层均插入帧,移动遮罩层50帧波浪线条位置,如下
9、遮罩层创建补间动画,并将其属性改为遮罩层
10、其余图层隐藏,选中“水”图层,移动水区域向右向下各两个像素(下键和右键)
11、“控制”——“测试影片”
12“文件”——“保存”。
00跟随鼠标移动的水波纹动画(flash制作)00效果确实很好00鼠标划动看看水波。
详细代码:var k:Number=0;//声明一个数值型变量k,初始值为000var mc:MovieClip =new Mc();//声明一个影片剪辑类实例mc,链接库中类名为Mc的影片剪00addChild(mc);//把mc添加到显示列表00var 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 00ConvolutionFilter(3,3,[.5,1,.5,1,0,1,.5,1,.5],3);//声明一个卷积滤镜的实例filter(矩阵有3列,3行,用于矩阵转换的值的数组,矩阵转换中使用的除数)var newfilter:DisplacementMapFilter=new DisplacementMapFilter(bt1,newPoint(0,0),4,4,50,50);//声明一个置换滤镜的实例newfilter(源显示对象,目标显示对象的左上角相对于映射图像左上角的偏移量,在映射图像中置换 x 结果的颜色通道蓝通道,在映射图像中置换 y结果的颜色通道蓝通道,用于缩放映射计算的 x 置换结果的乘数,用于缩放映射计算的 y 置换结果的乘数)addEventListener(Event.ENTER_FRAME,onframe);//添加帧频事件侦听,调用函数onframeaddEventListener(MouseEvent.MOUSE_OVER,ondown);//添加鼠标滑入事件侦听,调用函数ondownaddEventListener(MouseEvent.MOUSE_OUT,ondown);//添加鼠标滑出事件侦听,调用函数ondownfunction ondown(e:MouseEvent):void {//定义鼠标事件函数ondown00k++>20?k=0:k=k;//k每帧增加1,如果k大于20,则k获取0,否则什么也不做}function Rect() {//自定义函数Rect00bt1.fillRect(new Rectangle(mouseX/2,mouseY/2,2,2),0xffffff);//在bt1中进行矩形填充(范围(左上角坐标(mouseX/2,mouseY/2),宽2,高2),颜色为白色)}function onframe(e:Event):void {//定义事件函数onframe00k%2==1?Rect():0;//如果k除以2的余数等于1,调用自定义函数Rect,否则什么都不做00var temp:BitmapData=bt2.clone();//声明一个位图数据类实例temp,获取bt2的副本00bt2.applyFilter(bt1,new Rectangle(0,0,550,400),new Point(0,0),filter);//在位图bt2中应用滤镜(源位图,源矩形区域,目标图像中与源矩形左上角对应的点,卷积滤镜对象)00bt2.draw(temp,null,null,"subtract",null,false);//在位图bt2中拍照(源显示对象,不变形,没有颜色转换,混合模式,绘制整个源对象,不做平滑处理)00bt3.draw(bt2,new Matrix(2,0,0,2),new 00ColorTransform(1,1,1,1,127,127,127),null,null,true);//在位图bt3中拍照(源显示对象,在X和Y方向上放大2倍,颜色各红绿蓝通道偏移量均增大127,无混合模式,绘制整个源对象,平滑处理)00newfilter.mapBitmap=bt3;//置换滤镜newfilter的包含置换映射数据的位图对象获取bt3 00mc.filters=[newfilter];//为mc添加置换滤镜00temp.dispose();//设置temp的宽和高都为0,不再调用,即从内存中清除00temp=bt1;//temp获取bt100bt1=bt2;//bt1获取bt200bt2=temp;//bt2获取temp}//标题:将文本转换为位图00var bmd:BitmapData;//声明一个位图数据类变量bmd00var bit:Bitmap;//声明一个位图显示类变量bit00var txt:TextField =new TextField();//声明一个文本类实例txt00txt.defaultTextFormat=new TextFormat("华文隶书",56,0xff0000);//设置txt的格式(字体,大小,颜色)00txt.autoSize=TextFieldAutoSize.LEFT;//txt自动调整大小并左对齐00txt.filters =[new DropShadowFilter()];//txt应用投影滤镜00txt.text="恭贺新春快乐";//txt的内容00bmd=new BitmapData(txt.width,txt.height,true,0);//变量获取位图数据类的实例(宽、高都为文本的宽高,支持透明度,颜色为黑色)00bmd.draw(txt);//在位图上为文本拍照00bit=new Bitmap(bmd);//变量bit获取位图显示类的实例,用来显示bmd00bit.x=100;//bit的X坐标获取10000bit.y=50;//bit的Y坐标获取5000mc.addChild(bit);//把bit添加到mc中00。
Flash制作夜色雨水滴溅与涟漪动画在一些精彩的Flash影片中常常可以看到丝丝细雨的效果,给人一种温馨浪漫的感觉。
本例制作雨滴从夜空落下,溅起水花和涟漪的效果。
完成效果如下:查看动画效果1、首先启动Flash,设置影片舞台大小为450像素 280像素,影片背景色为深灰色(#282C3E)。
2、为了使下雨效果更加逼真,我们首先制作雨滴落到地上所形成的涟漪效果。
新建影片剪辑元件,命名为Raindropripple,进入元件的编辑区后,使用椭圆工具绘制一个长椭院,使用鼠标双击椭圆的轮廓线,按下键盘上的Delete键将轮廓删除掉,然后打开混色器面板,在填充样式下拉列表中选择放射渐变填充方式,然后在下面的色带下添加3个滑块,设置左右两边的滑块颜色为白色,设置中间滑块的颜色为黑色,如图2所示。
然后按照所设置好的填充色,给椭圆填充上渐变色,如图3所示:3、分别在时间线的第5帧和第45帧插入一个关键帧,选中第45帧的椭圆,使用缩放工具将其适当放大,并在属性面板中设置其透明度为0,然后回到第1帧,将椭园适当缩小,然后同样设置此帧中的椭圆的透明度为0,然后分别建立从第1帧到第5帧,第6帧到第45帧之间的形状渐变动画效果,时间线如图4所示;4、接下来制作雨滴下落的效果,然后结合刚才制作的水纹效果,就达到了比较真实的下雨的效果。
新建一个影片剪辑元件,命名为Raindrop,进入元件的编辑区后,新建两个图层,分别命名为raindrop和ripple,其中在图层raindrop 中设置雨滴下落的效果,在图层ripple中设置水纹扩散效果。
5、回到图层raindrop中,先使用椭圆工具绘制一个小的椭圆形,然后使用箭头工具工具将其调整为上小下大的雨滴形状,并按照图2所示的填充色设置将其填充上渐变色6、将时间轴延长到第40帧,选中此帧的雨滴,使用箭头工具将其竖直向下移动一段距离,然后将此帧的雨滴透明度设置为0%,达到一种雨滴渐隐的效果,最后设置第1帧到第40帧之间为形状渐变效果,时间轴如图6所示。
flash绘制⼀条波浪状线条这篇教程是向的朋友分享flash绘制⼀条波浪状线条⽅法,不会的朋友可以参考本⽂,来看看吧!步骤:
1、打开软件选择直线⼯具在舞台画⼀条直线
2、选择⼯具调整成抛物线条形状
3、按住alt复制⼀条执⾏修改——变形——垂直翻转
4、在按住alt复制⼀条执⾏修改——变形——垂直翻转
5、这样就绘制完成了现在试试动画效果
6、将做好的波浪转化为图形原件
7、开始做动画(效果和预想的⼀样赞)
8、学习动画要不断的学习不要三天打鱼两天晒⽹,好多优秀的闪客都是出⾃民间,不是只有学习动画专业才可以做动画的
以上就是flash绘制⼀条波浪状线条全过程,怎么样,⼤家学会了吗?希望这篇⽂章能对⼤家有所帮助!。
FlashAS3.0制作飘动的气泡内含详细注释Flash AS3.0制作飘动的气泡内含详细注释本帖最后由 athenaflash 于 2011-3-28 11:52 编辑最近在网上发现了一个很不错的气泡漂浮代码,经验证没有任何错误。
效果:多个小气泡在屏幕上自由飘动,当气泡与气泡,气泡与边框碰撞的时候都会作出相应的动作。
function ball(r:int):MovieClip {//自定义函数 ball,参数为 r,整数型,返回值为 MovieClipvar col:uint=0xffffff*Math.random();//声明一个无符号整数型变量 col,获取任意颜色var sh:MovieClip=new MovieClip();//声明一个影片剪辑类实例 shsh.graphics.beginGradientFill(GradientType.LINEAR,[0xffffff,c ol,col],[0.5,0.5,1],[0,200,255]);//在 sh 中设置渐变填充样式(放射状渐变,颜色,透明度,色块位置)sh.graphics.drawCircle(0,0,r);//在 sh 中画圆(圆心坐标(0,0),半径为参数r)sh.graphics.endFill();//结束填充return sh;//返回 sh}var ballArr:Array=[];//声明一个空数组 ballArrfor (var i:int=0; i<10; i++) {//创建一个 for 循环,循环 10次var balls:MovieClip=ball(Math.random()*20+20);//声明一个影片剪辑类实例balls,调用函数ball(参数r 半径的值为 20-40 之间的随机值)addChild(balls);//把 balls添加到显示列表balls.x=Math.random()*(stage.stageWidth-balls.width)+balls.width/2;//balls 的 X 坐标balls.y=Math.random()*(stage.stageHeight-balls.height)+balls.height/2;//balls 的 Y坐标,使它出现在舞台的任意位置balls.vx=Math.random()*2-1;//为 balls 设置自定义属性 vx,数值为-1-1 之间的随机数,表示X 方向的速度balls.vy=Math.random()*2-1;//为 balls 设置自定义属性 vy,数值为-1-1 之间的随机数,表示Y 方向的速度ballArr.push(balls);//把 balls 添加到数组 ballArr 中}addEventListener(Event.ENTER_FRAME,frame);//添加帧频事件侦听,调用函数 framefunction frame(e) {//定义帧频事件函数 framefor (var i:int=0; i<ballArr.length; i++) {//创建一个 for循环,循环次数为数组 ballArr 的元素数var balls:MovieClip=ballArr;//声明一个影片剪辑类实例 balls,获取数组 ballArr 的元素balls.x+=balls.vx;//balls的 X 坐标每帧增加balls.vxballs.y+=balls.vy;//balls的 Y 坐标每帧增加balls.vyif (balls.x<balls.width/2) {//如果balls 出了舞台左边缘balls.x=balls.width/2;//balls 的 X坐标获取balls 宽度的一半balls.vx*=-1;//balls.vx 获取它的相反数}if (balls.x>stage.stageWidth-balls.width/2) {//如果 alls 出了舞台右边缘balls.x=stage.stageWidth-balls.width/2;//balls 的 X 坐标获取场景宽度与 balls 宽度一半的差balls.vx*=-1;//balls.vx 获取它的相反数}if (balls.y<balls.height/2) {//如果 balls出了舞台上边缘balls.y=balls.height/2;//balls 的 Y坐标获取 balls 高度的一半balls.vy*=-1;//balls.vy 获取它的相反数}if (balls.y>stage.stageHeight-balls.height/2) {//如果 balls 出了舞台下边缘balls.y=stage.stageHeight-balls.height/2;//balls 的 Y 坐标获取舞台高度与 balls 高度一半的差balls.vy*=-1;//balls.vy 获取它的相反数}}for (var j:int=0; j<ballArr.length-1; j++) {//创建一个 for 循环,循环次数比数组 ballArr 元素数少 1var ball0:MovieClip=ballArr[j];//声明一个影片剪辑类实例 ball0,获取数组 ballArr 的元素for (var m:int=j+1; m<ballArr.length; m++){//创建一个 for 循环,var ball1:MovieClip=ballArr[m];//声明一个影片剪辑类实例 ball1,获取数组 ballArr 的元素var dx:Number=ball1.x-ball0.x;//声明一个数值型变量 dx,获取var dy:Number=ball1.y-ball0.y;//声明一个数值型变量 dy,获取var jl:Number=Math.sqrt(dx*dx+dy*dy);//声明一个数值型变量 jl,获取小球的距离var qj:Number=ball0.width/2+ball1.width/2;//声明一个数值型变量获取小球半径之和if (jl<=qj){//如果 jl 小于等于 qjvar angle:Number=Math.atan2(dy,dx);//声明一个数值型变量angle,获取ball1 相对于 ball0 的角度var tx:Number=ball0.x+Math.cos(angle)*qj*1.01;//声明一个数值型变量 tx,获取目标点的 X坐标var ty:Number=ball0.y+Math.sin(angle)*qj*1.01;//声明一个数值型变量 ty,获取目标点的 Y坐标ball0.vx=- (tx-ball1.x);//ball0 在X 方向的速度ball0.vy=- (ty-ball1.y);//ball0 在Y 方向的速度ball1.vx=(tx-ball1.x);//ball1 在 X方向的速度ball1.vy=(ty-ball1.y);//ball1 在 Y方向的速度} } } }。
Flash AS制作上升的水泡效果动画
如果一个一个的画,工作量繁重并且效果并不好。
我们利用AS的复制语句来实现水泡的数量,利用设置属性来改变透明度,大小等。
最后在影片剪辑中设置水泡的左右摆动。
这样综合在一起,就可以实现水泡上升的效果了。
Flash: /Uploadteach/2005/06/30/200563061946474.swf!
具体步骤:
1.开MX新建一文档。
并适当修改文档属性(400×300,蓝色背景)。
2.建一个影片剪辑,命名为“h2o”。
进入编辑区以后,利用绘图工具,渐变填充绘制一个水泡。
3.回到主场景,把图层1命名为“h2o”。
从库中把“h2o”影片剪辑拖放到场景的下方,在下面的属性面板中命名它的分身名为“h2o”。
4.主场景中新建一个图层,命名为“as”。
在第1帧添加AS:
i=1
while(i<=30){
duplicateMovieClip("h2o","h2o"+i,i);
setProperty("h2o"+i,_x,random(400));
setProperty("h2o"+i,_y,random(100)+300);
setProperty("h2o"+i,_xscale,random(60)+40);
setProperty("h2o"+i,_yscale,getProperty(eval("h2o"+i),_xscale));
setProperty("h2o"+i,_alpha,random(30)+70);
i++
}
_root.h2o._visible=0
5.具体解释如下:
i=1 //初始化变量
while(i<=30){ //用来控制水珠的数量
duplicateMovieClip("h2o","h2o"+i,i); //复制水珠
setProperty("h2o"+i,_x,random(400)); //在X轴上随机分布复制出的水珠
setProperty("h2o"+i,_y,random(100)+300); //同上,只是换成了Y轴
setProperty("h2o"+i,_xscale,random(60)+40);
setProperty("h2o"+i,_yscale,getProperty(eval("h2o"+i),_xscale));
//以上两条AS是用来控制水珠大小的。
setProperty("h2o"+i,_alpha,random(30)+70);//用来控制水珠的透明度
i++
}
_root.h2o._visible=0 //将主场景中的水珠隐藏。
6.选中影片剪辑“H2O”,添加AS:
onClipEvent (load) {
speed = random(5)+3;
}
onClipEvent (enterFrame) {
this._y -= speed;
this._x += random(3)-random(3);
if (this._y<-15) {
this._y = random(100)+315;
}
}
7.上面的AS语句的意思是:
onClipEvent (load) { //用来随机赋于水珠的速度,让水珠运动更加真实。
speed = random(5)+3;
}
onClipEvent (enterFrame) {
this._y -= speed; //用来改变水珠Y轴的坐标,这样我们看起来水珠是在不断在上升。
this._x += random(3)-random(3); //为了上水珠运动更真实些,我们上水珠左右晃动一下。
if (this._y<-15) { //此IF语句的作用是当水珠移出屏幕时,重新放回屏幕中来。
this._y = random(100)+315;
}
}
8.保存测试吧!。