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

Flash实例教程
Flash教程:AS制作加载外部.swf影片的视频播放器
FlashAS3.0实例教程:喷泉动画特效
Flash cs3仿真艺术设计2.5:压扁与拉伸运用
Flash cs3仿真艺术设计2.6:轻松制作飞舞的蝴蝶
Flash CS4教程:AS3制作非常漂亮的曲线
Flash实例:AS3制作茶杯震动动画
Flash教程:鼠标点击显示打散动画
Flash实例教程:鼠标感应放大缩小动画
Flash实例教程:启动摄像头拍照动画
Flash AS3教程:制作文字飞出动画
Flash CS3教程:线性渐变模糊运动动画特效
Flash动画制作实例:不间断滚动图片动画
Flash AS3简单制作百叶窗图片特效
Flash AS3简单制作图片缓动特效动画
Flash AS3简单制作跟随鼠标缓动运动的圆
Flash轻松制作照片上有水纹波动动画
Flash实例:庆祝祖国60华诞烟花动画
Flash CS4教程:旋转的3D立方体动画
Flash实例教程:好看的旋转文字动画
Flash实例教程:低排放高节能汽车广告动画

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


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