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

Flash实例教程
Flash实例教程:“圆圆&溜溜”搞怪表情
Flash实例:卡通娃娃360度转身动画表情
Flash制作流行网页水晶按钮
Flash CS3渐变绘制可爱猴子
Flash cs3教程:为卡通青蛙添加材质
Flash CS3仿真艺术设计教程:封套工具的应用
Flash CS3仿真艺术设计教程:封套工具的变形
flash as3制作逼真的火焰字动画
Flash动画制作技巧:正确的口型吻合
Flash AS代码制作眩目旋转动画
Flash简单教程:转动的齿轮
Flash实例:简单的跟随鼠标的文字动画
Flash cs4教程:经典简单的“填色”游戏
Flash AS制作的雪花特效
Flash实例教程:跟随鼠标的盘旋花瓣动画
Flash实例:几张图片首尾连接循环滚动
Flash入门实例:制作传统风格卷帘动画
Flash as3实例教程:打字动画效果
Flash实例教程:鼠标点击出现图片动画
Flash动画制作实例:扇子自动打开动画

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


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