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

Flash实例教程
FLASH火焰文字效果制作教程
Flash仿奥运开幕式卷轴动画效果教程
不用脚本制作软翻书动画效果flash教程
flash圆点随机不重叠排列脚本
Flash月圆之夜举笔题诗贺中秋节动画
Flash临摹徐悲鸿的骏马图
Flash绘制简单的楼梯动画场景教程
Flash制作鼠标感应的心型漂浮动画
Flash制作可爱的小丑吹泡泡动画特效
Flash8绘制中国风荷塘风景实例教程
下雪效果,Flash初级入门教程
Flash实例教程 让美丽的图画动起来
详细分析Flash8制作模糊遮罩幻灯
Flash教程:模拟幸运号抽奖机
Flash制作粉嫩的花瓣随风舞动
Flash实例教程:烛光动画特效
Flash AS3教程:动态文本滚动条
Flash实例:打造佛光效果
Flash入门教程:滚动字幕动画的制作
Flash教程:制作随机画圆弧动画

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


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