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

Flash实例教程
Flash精彩音乐动画实例:窗之恋
Flash教程:花吃蝴蝶的动画演示
Flash教程:用鼠标控制图片移动效果动画
跟随鼠标移动flash的制作教程
Flash实例教程:休闲来喝茶吧!
Flash动画实例:柳枝,小鱼,涟漪和水波动画
Flash实例:漂亮的翻书动画制作(无AS)
Flash制作一幅诗意的水墨卷轴展开的动画
Flash动画制作教程:好看的有星火特效的动画
Flash实例教程:害怕鼠标的文字动画特效
Flash CS4教程:利用三角函数知识制作环绕的菜单效果
Flash新手鼠绘教程:怎样学习鼠绘
Flash制作可爱的亲嘴猪动画效果
Flash入门实例:水滴动画制作
Flash教程:火苗跟随鼠标
Flash教程:绘制喜鹊和红梅动画
Flash制作可爱有趣的亲嘴猪动画
Flash制作蝙蝠在月夜里飞翔的动画
Flash实例教程:吹泡泡动画特效
Flash实例:可爱的小青蛙闹钟

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-30   浏览: 269 ::
收藏到网摘: 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];
}