当前位置: 首页 > 图文教程 > Flash动画 > ActionScript > Flash AS3教程:快速制作烟雾动画

ActionScript
Flash as入门(9):控制时间轴
Flash as入门(10):影片剪辑的深度
Flash as入门(12):使用遮罩Mask
Flash as入门(13):用AS代码实现过渡
Flash as入门(14):用AS实现补间动画
Flash as入门(15):filters类滤镜
Flash as入门(16):用AS绘制各种图形
导入图片批量生成到顺序帧自动发布swf
Flash as入门(18):MC使用颜色
TypeError: Error #1009: 无法访问空对象引用的属性或方法
Flash CS4如何控制动画声音的停止和播放
Flash AS实例:神奇的数字魔术盒子
Flash as入门(19):日期和时间
介绍ActionScript开发环境Flex Builder
Flash AS3实例教程:制作火苗动画
AS3教程:制作任意放大缩小旋转的变形工具
Flash实例:动态产生元件实例并控制
Flash AS3教程:旋转一周的直线并显示其轨迹
Flash AS动画证明数学的勾股定理
AtionScrip 3.0制作雪花飘飘动画

ActionScript 中的 Flash AS3教程:快速制作烟雾动画


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-30   浏览: 58 ::
收藏到网摘: n/a

Flash AS3教程:快速制作烟雾动画,由于还要上传AS不给大家看效果了,本文最后提供源码压缩包下载,本教程主要利用AS3的类来实现。

首先我们在Photoshop中制作一个烟雾的照片,这里主要使用Photoshop的画笔来实现。

 

 

 

之后我们导入到FLASH中来,然后转变为影片剪辑原件,命名为smokepuff。之后我们打开库,然后右击该元件,设置链接。

 

然后编辑类别,代码如下。

package com.asgamer.graphics
{
 
 import flash.display.BlendMode;
 import flash.display.MovieClip;
 import flash.events.Event;
 
 public class Smokepuff extends MovieClip
 {
  
  public var vx:Number;
  public var vy:Number;
  
  public function Smokepuff() : void
  {
   alpha = Math.random();
   vx = Math.random() - Math.random();
   vy = Math.random() * 3 - 5;
   scaleX = scaleY = Math.random();
   addEventListener(Event.ENTER_FRAME, loop, false, 0, true);
  }
  
  private function loop(e:Event) : void
  {
   alpha -= 0.01;
   y += vy;
   x += vx;
   scaleX = scaleY += 0.02;
   
   if (alpha < 0)
    removeSelf();
  }
  
  private function removeSelf() : void
  {
   removeEventListener(Event.ENTER_FRAME, loop);
   parent.removeChild(this);
  }
  
 }
 
}

文档的属性为:

 

之后我们创建一个main.as

package
{
 
 import flash.display.Stage;
 import flash.display.MovieClip;
 import flash.events.Event;
 import com.asgamer.graphics.Smokepuff;
 import flash.display.Sprite;
 
 public class Main extends Sprite
 {
 
  public function Main() : void
  {
   addEventListener(Event.ENTER_FRAME, loop, false, 0, true);
  }
 
  private function loop(e:Event) : void
  {
   var smokepuff:Smokepuff = new Smokepuff();
   smokepuff.x = 250;
   smokepuff.y = 250;
   stage.addChild(smokepuff);
  }
 
 }
 
}

测试效果。最后提供大家源码:/upload/tech/20090930/20090930154940_32bb90e8976aab5298d5da10fe66f21d.rar