关闭顶部展开顶部

Flash AS3制作火苗动画实例教程_Flash教程

编辑Tag赚U币
教程Tag:暂无Tag,欢迎添加,赚取U币!

推荐:FLASH AS3制作任意缩小放大旋转的变形工具
FLASH AS3制作任意缩小放大旋转的变形工具

Flash AS3制作火苗动画实例教程

FLASH AS的作品无非具备两点就可以.
1.对AS函数的了解.
2.肯专研的精神.
FLASH世界里没有做不到的东西.只有你想不到.你不想做的东西.这次的代码发出来.非常希望有更多的朋友去完善.共享精神的目的就是这个.共同进步.一个人的努力只能局限在自己的世界里.当把所有人的努力聚集起来的时候才是FLASH繁荣时期.这就是为什么多年前的AS程序员各各都强悍的原因.那时候的FLASH8还是很热闹的.

希望这个帖子能让更多的朋友发表自己的看法.我以后要回到FLASH世界,希望更多的朋友能帮我.欢迎FLASH 爱好者加我QQ共同成长

废话不说了.拿出东西.
本次程序同入门级下雪效果一样,使用了2个AS文件以及一个FLA文件,两个AS文件分别是mack_fire.as 火花粒子制作文件,fire.as 火花移动控制文件,以及fire.fla场景文件.

Flash AS3制作火苗动画实例教程代码如下
mack_fire.as:


  1. /***************Ant QQ:305033389******************/
  2. /*************请支持原创,请开源代码****************/
  3. /**********请让更多的AS爱好者有资料学习*************/
  4. /********本作品是我学习作品,并非完善作品***********/
  5. package {
  6. import flash.geom.Matrix;//颜色渐变类库倒入
  7. import flash.display.Sprite;//Sprite 类是基本显示列表构造块
  8. import flash.display.GradientType;//Graphics 类包含一组可用来创建矢量形状的方法
  9. public class mack_fire extends Sprite { //本类为火花原形类
  10. private var fire:Sprite;
  11. var myMatrix:Matrix;
  12. public function mack_fire(){
  13. fire = new Sprite();//初始化一个影片剪辑
  14. myMatrix = new Matrix();//需要用到的FLASH自带类,在这里这个类的作用是制作火花粒子的颜色渐变效果
  15. var boxWidth:int = 16;//火花粒子颜色渐变宽高设置,下面是高度
  16. var boxHeight:int = 16;
  17. var boxRotation:uint = Math.PI/2;//颜色渐变使用的变量
  18. var tx:int = 0;//影片剪辑的初试坐标
  19. var ty:int = 0;
  20. myMatrix.createGradientBox(boxWidth, boxHeight, boxRotation, tx, ty);//下面开始是颜色付值部分,详细请查阅createGradientBox的具体用法
  21. var type:String = GradientType.RADIAL;
  22. var myColors:Array = [0xFFFF00, 0xFFFF00];//颜色渐变,白色到白色
  23. var myAlphaS:Array = [1, 0];//透明度从,透明到不透明
  24. var myRalphaS:Array = [0, 255];
  25. var spreadMethod:String = "pad";
  26. var interp:String = "rgb";
  27. var focalPtRatio:Number = 0;
  28. fire.graphics.beginGradientFill(type, myColors,myAlphaS,myRalphaS, myMatrix, spreadMethod, interp, focalPtRatio);//这里请参考手册中关于beginGradientFill来理解
  29. fire.graphics.drawCircle(8, 8, 8);//制作一个圆形,半径和中心点坐标,具体可以参考drawCircle
  30. addChild(fire);
  31. }
  32. }
  33. }
fire.as:

  1. /***************Ant QQ:305033389******************/
  2. /*************请支持原创,请开源代码****************/
  3. /**********请让更多的AS爱好者有资料学习*************/
  4. /********本作品是我学习作品,并非完善作品***********/
  5. package {
  6. import flash.display.MovieClip;
  7. import flash.events.EventDispatcher;
  8. import flash.events.Event;
  9. import flash.display.BlendMode;
  10. import flash.filters.GlowFilter;
  11. import flash.geom.ColorTransform;
  12. public class fire extends MovieClip {
  13. private var fires:mack_fire;
  14. private const maxBalls:int = 60;//火花数量
  15. private const Mc_x:int = stage.stageHeight/2;//起火开始X坐标
  16. private const Mc_y:int = stage.stageHeight/2;// stage.stageHeight/4;//起火开始Y坐标
  17. private const Mc_more:int = 1;//顶点,移动和透明度的顶点,1为完全不透明或没有缩放比例,AS3中以1做为顶点,AS2中是100
  18. private const McY:int = 1;//向上移动速度
  19. private var i=1;//记数变量

  20. private var obj_scal:Array=new Array();//缩放变量保存数组
  21. private var obj_fast:Array=new Array();//移动速度变量保存数组
  22. private var obj_action:Array=new Array();//横向移动速度更改变量

  23. private var obj_n:Array=new Array();//横向移动方向控制变量
  24. private var obj_s:Array=new Array();//横向移动速度控制变量
  25. private var obj_gs:Array=new Array();

  26. private var obj_g:Array=new Array();//颜色控制变量

  27. public function fire() {
  28. addEventListener(Event.ENTER_FRAME,fire_mv);
  29. }

  30. public function fire_mv(event:Event):void{
  31. var k = Math.random();//制造随即数字,这个变量决定火花的移动距离,已经移动范围
  32. var scale:Number = k ? k : 1;//制造一个随即数字,这个数字要小于1,大于0
  33. fires = new mack_fire();//新元件创建
  34. fires.scaleX = fires.scaleY = fires.alpha = scale;//元件的缩放以及透明度设置,根据上面的随即数设置
  35. obj_g[i] = 100;
  36. obj_gs[i] = (1-scale .2)*3;//定义一个新的数组元素,用处在更改元件颜色
  37. obj_fast[i] = Math.floor(scale*2);//纵向移动速度主变量
  38. obj_action[i]=(Math.random()>0.5)?1:-1;//纵向移动 方向主变量
  39. obj_scal[i] = 1 - obj_fast[i]/10;//对于进行中火花的缩放进行控制
  40. obj_n[i] = obj_s[i] = 1;
  41. fires.x= Mc_x;//定义火花产生的横坐标
  42. fires.y= Mc_y;//定义火花产生的纵坐标
  43. fires.blendMode = BlendMode.ADD;//这部分是纯代码火花的重点,颜色叠加。让火花和火花之间看起来更圆滑。没有这个部分,火的效果根本不成立
  44. fires.name = "fire" i;//定义一个火花的名字,在下面通过getChildByName来使用。这是笨方法。记得以前有朋友不用定义也可以使用的。
  45. addChild(fires);
  46. for (var n:int = 1; n<maxBalls; n){
  47. var m=getChildByName("fire" n);//使用上面定义的火花影片剪辑
  48. if(m){
  49. var colorInfo:ColorTransform = m.transform.colorTransform;//定义颜色控制器
  50. var xx=obj_gs[n]*2;
  51. obj_g[n] -= Math.ceil(xx);
  52. if(obj_g[n] < 10) obj_g[n]="00";//更改颜色,这部分就是为什么黄色的影片剪辑变成红色的理由
  53. var rgbs = "0xff" obj_g[n] "00";//转义为字符串,这部分我是用最傻的办法来做的 ,实在是不了解AS3。请高手多指导
  54. colorInfo.color = rgbs;
  55. m.transform.colorTransform = colorInfo;
  56. m.y -= 1-obj_s[n] .4;//向上移动
  57. m.x = obj_fast[n]*obj_action[n]*obj_n[n]*obj_s[n];//进行横向移动
  58. m.scaleX = (obj_scal[n])/20 * obj_n[n] * obj_s[n];//进行横向缩放
  59. m.scaleY = (obj_scal[n])/20 * obj_n[n] * obj_s[n];//进行纵向缩放
  60. m.alpha = .1 *obj_n[n]*obj_s[n];//进行透明度设置
  61. if(m.scaleX >= Mc_more){;
  62. obj_n[n] = -1;//横向反方向移动
  63. obj_s[n] = .2;//横向移动速度减缓
  64. };

  65. if(m.alpha >= Mc_more){ m.alpha = Mc_more;}else if(m.alpha <= Math.random()*.1){ removeChildAt(m);}//如果透明度高于或者底于指定数值,进行操作
  66. }
  67. }
  68. if(i>=maxBalls){i=0;}
  69. i;
  70. }
  71. }
  72. }
fire.fla文件为场景文件,只要导入fire.as文件就可以了
具体方法:
在场景属性中,查找文档类,并输入fire就可以了

本次效果如下:



上次有朋友说无法运行.这次我发上打包的源文件,但是希望更多的朋友还是自己动手制作.

fire源文件:fire.rar

分享:Flash教程:熟练应用Flash钢笔工具
钢笔工具 到这一章为止我们已经看到了几种不同的绘图风格.从基本的形状组成更大,更复杂的形状,到使用位图材质填充,大部分时间需要组合工具和技巧来完成,对于这个角色我想从一个铅笔素描草图到用钢笔工具和基本形状绘制的矢量图.钢笔工具配合选择工具,使笔

来源:闪吧//所属分类:Flash教程/更新时间:2009-04-02
loading.. 评论加载中....
相关Flash教程
闂備焦鐪归崺鍕垂闁秵鍋ら柡鍥舵緛缂嶆牠鏌涢埄鍐姇闁抽攱甯楅妵鍕即濡も偓娴滄儳顪冮妶蹇曠Ф闁瑰嚖鎷�
婵犵數鍋涢顓熸叏椤撱垹纾婚柟鐐灱濡插牓鏌¢崒婵囩《濠⒀勭⊕娣囧﹪鎳犻澶嗗亾濠靛鐓熼柕蹇婃櫅閻忔煡鏌熼崙銈嗗
婵犵數濮烽。浠嬪焵椤掆偓閸熷潡鍩€椤掑嫷妫戠紒杈╁仜椤撳吋寰勭€n亝顓鹃柣搴f嚀鐎氼厽绔熼崱娆愬床濞戞柧绶氶弻锝夊閳轰胶浼堥梺鐟板殩閹凤拷
婵犵數濮烽。浠嬪焵椤掆偓閸熷潡鍩€椤掑嫷妫戠紒杈╁仜椤撳吋寰勬繝鍕靛悑闂備浇顕栭崹搴ㄥ礋椤撗勑氶梻浣筋嚙闁帮絽岣胯铻炴繛鎴欏灪閸嬪鏌ㄩ悤鍌涘
闂傚倷鑳舵灙缂佺粯鍔欓獮濠冩償閵娿儳鍔﹀銈嗗笒閸婂摜鏁崼鏇炵閻庢稒岣块惌鎺斺偓瑙勬礃缁诲牓寮幘缁樻櫢闁跨噦鎷�
闂傚倷鑳舵灙缂佺粯鍔欓獮濠冩償閵娿儳鍔﹀銈嗗坊閸嬫捇鏌涘顒夊剳缂侇喖锕弫鍌炲礈瑜忛悡鎾绘煟鎼搭垳宀涢柡鍛箞閹苯鈻庨幋鐘碉紳婵炴挻鑹鹃敃銉р偓姘炬嫹
闂傚倷娴囬妴鈧柛瀣尰閵囧嫰寮介妸褉妲堥梺浼欏瘜閸o綁寮诲☉妯锋斀闁归偊浜為懗铏圭磽娴i潧濡芥俊鐐舵椤曪綁濡搁埡濠冩櫖濠电偛妫欓崹鐢电箔閿熺姵鈷戦柛婵嗗閳ь剙顭烽獮濠囧箻閼告娼熼梺璺ㄥ櫐閹凤拷
闂傚倷绀侀幖顐﹀疮閻楀牊鍙忓瀣捣缁€濠傤熆閼搁潧濮堥柣鎿勭秮閹娼幏宀婂妳濠电偛鐪伴崐鏇㈡箒闂佹寧绻傚Λ娆戠矆閳ь剟姊洪崨濞氭垿鎮ч悩鑼殾闁规壆澧楅弲鎼佹煥閻曞倹瀚�
濠电姷顣藉Σ鍛村垂椤忓牆绀堟繝闈涙-閻斿棙淇婇姘倯閻庢氨绮妵鍕箻鐎靛摜鐣洪柣搴㈢啲閹凤拷
婵犵數濮烽。浠嬪焵椤掆偓閸熷潡鍩€椤掑嫷妫戠紒杈╁仜椤撳ジ宕堕妸銉紩婵$偑鍊栭幐鑽ゆ崲閸愵亖鍋撳铏彧濞e洤锕、娑樜旈埀顒佹櫠閸欏绡€妞ゎ偒鍠楃€氾拷
濠电姷顣藉Σ鍛村垂椤忓牆绀堟繝闈涙-閻斿棙鎱ㄥ璇蹭壕閻庤娲﹂崜鐔笺€佸▎鎾崇闁绘挸绨堕崑鎾绘偨閸涘﹦鍘搁梺鍓插亝缁诲嫬鐡┑鐘愁問閸n垶骞忛敓锟�
濠电姷顣藉Σ鍛村垂椤忓牆绀堟繝闈涙-閻斿棙鎱ㄥ璇蹭壕闂佸搫鑻幊姗€宕洪埀顒併亜閹哄棗浜鹃梺瀹狀嚙闁帮綁鐛幋锕€绠涢梻鍫熺⊕椤斿棝姊绘担鍛婃儓閻庢碍鎮傞獮蹇涙晸閿燂拷
濠电姷顣藉Σ鍛村垂椤忓牆绀堟繝闈涙-閻斿棙鎱ㄥ璇蹭壕閻庤娲╃紞渚€鐛€n亖鏀介柛顐亗缁憋拷
婵犵數濮烽。浠嬪焵椤掆偓閸熷潡鍩€椤掑嫷妫戠紒杈╁仜椤撳吋寰勬繝鍕幀闂備胶鎳撻悺銊ф崲閸曨垼鏁傞悗娑櫭肩换鍡樸亜閺嶎煈娈斿褍寮剁换婵嬶綖椤旇棄顏�
闂備浇顕ф鎼佸储濠婂牆绀堟繝闈涱儐閸嬪鏌熼幆鐗堫棄闁活厽顨呴埞鎴︽偐閹绘帗娈梺濂告涧缂嶅﹪寮婚妶澶嬪殟闁靛鍎遍~宥夋⒑缂佹ḿ澹勭紓宥勭閻e嘲鈻庨幘瀛樻闂佽法鍣﹂幏锟�
UB闂傚倷绀佸﹢杈╁垝椤栫偛绀夋俊銈呮噽瀹撲線鏌涢妷銏℃珕閻庢碍宀搁幃妤€鈽夊▍铏灴閿濈偤鏁撻敓锟�
闂傚倷娴囨竟鍫熴仈缁嬫娼栧┑鐘崇閻掗箖鎮楅悽鐢点€婇柛瀣崌閻涱噣宕归鍙ョ棯婵犵數濮崑鎾绘煥閻曞倹瀚�
闂備浇顕ф鍝ョ不瀹ュ鍨傞柛婵嗗閼板潡鏌涢姀銏犳
闂傚倷绀侀幉鈥愁潖缂佹ɑ鍙忓瀣捣缁€濠傤熆鐠鸿櫣鐏遍柛妤佺缁绘盯宕卞Δ鈧銏ゆ煕閻愬樊妲圭紒缁樼〒缁辨瑩鎮╅崫鍕腐闂備胶枪妤犲繘骞忛敓锟�
缂傚倸鍊搁崐鐑芥倿閿曞倹鍋¢柨鏇炲€搁崹鍌涚節婵犲倸顏い鈺呮敱閵囧嫰骞掑鍥舵М缂備焦褰冨﹢閬嶅焵椤掑倸浠柛濠冪箘缁辨挸顫濇0婵囨櫓闂佽法鍣﹂幏锟�
©2017 www.mb5u.com濠电姷顣藉Σ鍛村垂椤忓牆绀堟繝闈涙-閻斿棙鎱ㄥ璇蹭壕閻庢鍣崳锝夊箖閳哄懎绠甸柟鐑樻尭閻︼拷
闂傚倷娴囬妴鈧柛瀣崌閺岀喖顢涘⿰鍐炬毉濡炪們鍎婚幏锟�&闂傚倷绀侀幉锛勬暜閹烘嚦娑㈠籍閸噥妫呴梺璺ㄥ櫐閹凤拷