当前位置: 首页 > 图文教程 > Flash动画 > Flash实例教程 > flash as3制作逼真的火焰字动画

Flash实例教程
Flash教程:制作文字波动视觉特效
Flash教程:制作天空中流星划过特效
Flash教程:制作有趣的星座查询器
Flash教程:引导线制作爱心图案动画
再谈用Flash引导线制作爱心图案动画
Flash8实例教程:绘制中国风荷塘风景
Flash制作青蛙跳荷叶游戏动画
Flash AS打造转动3D小方块视觉特效
Flash AS教程:制作彩色线条动画
带AS的图片环绕旋转效果制作方法
Flash8模糊滤镜绘制逼真青翠竹林
Flash教程:互动的橡皮刷
Flash实例教程:3D旋转图片
贺中秋节 Flash月圆之夜举笔题诗动画
Flash实例:简单的弹出菜单演示
flash制作字母变换效果
Flash实例:制作树叶逐渐展开动画
AS实例之简单的不倒翁Flash动画
Flash实例:马蹄莲动画制作过程
路面循环的Flash动画的制作方法

Flash实例教程 中的 flash as3制作逼真的火焰字动画


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

用flash as3 制作一个火焰特效,可以任意更改火焰颜色。当然你也可以做成你想做的东西
比如,火焰字等。图例:

 

代码如下:

不懂的就按f1查看吧。简单标注了一点。

import flash.display.BitmapData;
import flash.filters.DisplacementMapFilter;
import flash.geom.Point;
var _offsets:Array;
var _offsetsD:Array;
var _bitmapData:BitmapData;
/*
DisplacementMapFilter 类使用指定的 BitmapData 对象(称为置换图图像)的像素值执行对象置换。
您可以使用此滤镜将扭曲或斑点效果应用于从 DisplayObject 类中继承的任何对象,
例如 MovieClip、SimpleButton、TextField 和 Video 对象,以及 BitmapData 对象。
*/
var displace:DisplacementMapFilter;
btnClickHandler();
this.addEventListener(Event.ENTER_FRAME , enterFrameHandler);
_btn.addEventListener(MouseEvent.CLICK , btnClickHandler);
function btnClickHandler(e:Event = null):void {
    /*
     itmapData(width:int, height:int, transparent:Boolean = true, fillColor:uint = 0xFFFFFFFF)
    创建一个具有指定的宽度和高度的 BitmapData 对象。
     */
    _bitmapData=new BitmapData(400,130,false,0x00ffcc);
   
    _offsets = [new Point(),new Point() ];
   
    _offsetsD=[];
   
    for (var i:Number = 0; i<2; i++) {
        _offsetsD[i]={x:Math.random()*2-1,y:Math.random()*6+2};
    }
}
function enterFrameHandler(e:Event):void {
    for (var i:Number = 0; i<2; i++) {
        _offsets[i].x+=_offsetsD[i].x;
        _offsets[i].y+=_offsetsD[i].y;
    }
    /*
    public perlinNoise(baseX:Number, baseY:Number, numOctaves:Number, randomSeed:Number,
    stitch:Boolean, fractalNoise:Boolean, [channelOptions:Number], [grayScale:Boolean],
    [offsets:Object]) : Void
    生成 Perlin 杂点图像
    */
    _bitmapData.perlinNoise(30,50,5,5,false,false,1,true,_offsets);
    displace=new DisplacementMapFilter(_bitmapData,new Point(0,0),1,1,10,200,"clamp");
    _mc.filters=[displace];
}