当前位置:主页 > 设计教程 > Flash > 正文

Flash AS代码编写国庆主题图案焰火动画

来源:|作者:|时间:2009-10-01|人气:|编辑:

  本文使用Flash开源粒子系统类库Flint制作国庆主题图案的焰火动画

  完成效果如下。

  Flint简介:Flint是一个基于AS3.0的开源的粒子系统类库,让我们在不需要完全接触全部代码的情况下用自己的编码风格来轻松的扩展它,目前只有基于AS3.0的版本。

  焰火效果原理:首先介绍一下基于Flint 创建焰火效果的原理,我们的效果将从屏幕的下方升到屏幕的上方,然后飘落在屏幕的下方。组成焰火的每一个小点,都是粒子系统中的一个粒子。

  准备素材

  (1)准备1张背景图片
  (2)在photoshop中制作1张透明背景,白色字体的300*80像素文字图片,保存为png格式。

  制作过程

  1、新建Flash文档,舞台为550*400像素,帧频30,背景颜色为黑色。然后把背景和文字图片导入到库中。右键单击文字图片,选择属性做链接,类名为logo,基类flash.display.BitmapData。

  2、制作一个探照灯效果的影片剪辑。

  3、把图层1改名为“探照灯”,打开库拖探照灯影片剪辑到舞台,放在合适的位置。

  4、添加图层2改名为“探照灯”,拖入探照灯影片剪辑,修改一下方向,放在合适的位置。

  5、添加图层3改名为“背景”,打开库拖入背景图片,右键单击图片转换为影片剪辑。在属性面板中把透明度调到70%到80%左右(视背景图片而定)。

  图层结构截图.png

  6、添加图层4改名为as,单击第1帧,打开动作面板输入代码:

  //导入类
  import org.flintparticles.common.actions.*;
  import org.flintparticles.common.counters.*;
  import org.flintparticles.common.energyEasing.Quadratic;
  import org.flintparticles.common.events.EmitterEvent;
  import org.flintparticles.common.initializers.*;
  import org.flintparticles.twoD.actions.*;
  import org.flintparticles.twoD.emitters.Emitter2D;
  import org.flintparticles.twoD.initializers.*;
  import org.flintparticles.twoD.renderers.*;
  import org.flintparticles.twoD.zones.*;
  //创建2D粒子发射器
  var emitter:Emitter2D = new Emitter2D();
  //计数器(每一秒中创建5000个粒子)
  emitter.counter = new Blast(5000 );
  //初始化(粒子的初始位置,速度,图片和颜色)
  emitter.addInitializer( new ColorInit( 0xFFFF3300, 0xFFFFFF00 ) );
  emitter.addInitializer( new Lifetime( 8 ) );
  emitter.addInitializer( new Position( new DiscZone( new Point( 0, 0 ), 8 ) ) );
  var bitmapData:BitmapData = new Logo( 300, 80);
  emitter.addInitializer( new Velocity( new BitmapDataZone( bitmapData, -152, -380 ) ) );
  //向发射器中添加动作,让每一帧都更新粒子的位置
  emitter.addAction( new Age( Quadratic.easeIn ) );
  emitter.addAction( new Fade( 1.0, 0 ) );
  emitter.addAction( new Move() );
  emitter.addAction( new LinearDrag( 0.5 ) );
  emitter.addAction( new Accelerate( 0, 70 ) );
  emitter.addEventListener( EmitterEvent.EMITTER_EMPTY, restart, false, 0, true );
  //定位粒子在舞台的上方
  var renderer:PixelRenderer = new PixelRenderer( new Rectangle( 0, 0, 550, 400 ) );
  renderer.addFilter( new BlurFilter( 2, 2, 1 ) );
  renderer.addFilter( new ColorMatrixFilter( [ 1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0.96,0 ] ) );
  renderer.addEmitter( emitter );
  addChild( renderer );
  emitter.x = 250;
  emitter.y = 300;
  emitter.start( );
  function restart( ev:EmitterEvent ):void
  {
    Emitter2D( ev.target ).start();
  }

  7、完成后保存在一个目录下,然后下载Flint粒子类库,将文件夹org解压到同一目录下(这个文件夹就是Flint粒子类库),现在就可以测试了。美工部分大家可以做一些光景、气球放飞等效果,加入场景中,我想大家一定比我做得好。各种参数可以试着改动一下数据,再看一下效果。

 

  目录文件截图.png

    最近更新
    简而精致的MILKO牛奶包装欣赏

    简而精致的MILKO牛奶包装欣赏

    分 类: 包装设计
    日 期: 2015-07-14
    人 气: 93

    Irina Vinnik精美的童话书籍设计欣赏

    Irina Vinnik精美的童话书籍设计欣赏

    分 类: 封面设计
    日 期: 2015-07-14
    人 气: 113

    LOnde戏剧艺术中心2015-2016宣传册设计

    L'Onde戏剧艺术中心2015-2016宣传册设计

    分 类: 画册设计
    日 期: 2015-07-14
    人 气: 94

    耐克篮球探索主题立体字设计

    耐克篮球探索主题立体字设计

    分 类: 字体设计
    日 期: 2015-07-14
    人 气: 97

    耐克Kobe release系列视觉设计

    耐克Kobe release系列视觉设计

    分 类: 平面设计作品
    日 期: 2015-07-13
    人 气: 266