Fire effect class (Fire)
by Winx
Before Flash 8 we made fire mainly by drawing flames and animating every frame. We have use some programs like Photoshop or other that make animated gifs or into Flash itself. We have achived big .fla size, little reality cos of repeating frames and even low customization. Thx to Ken Perlin and his Perlin noise function, gives mankind opportunity programatically to create nature texture like wood, water, marible, fire, clouds ..... Perlin noise function is added to Flash 8 AS2 which allow us to make realistic textures and by using Flash animating engine make them alive.
Making Fire programatically takes 4 planing steps:
First step is to make gradient source movie clip that make fire color and form :

mcEx.createCustomGradientMovieClip(mcFire,"fireGradientSource",drawFunc,9,colors,alphas,ratios,"pad",
"LinearRGB",0,new Point(0,0),null,width,height,90);//+15+10
In second step we need to create flame granularity texture. So we apply perlinNoise on a bmp that we have created before.

classObject.perlinNoiseBitmap.perlinNoise(classObject.sampleSize/2,classObject.sampleSize,3,classObject.rnd,
false,true,1,true,classObject.noiseOffsets);
Then we need to create fire flames. For that we will use DisplacementMapFilter on a perlinNoiseBitmap and then apply on Fire gradient source movie clip.

//apply diplaced fire parts filter on gradient source (dying)
classObject.mcFire.fireGradientSource.filters =[classObject.fltDM];
Finnaly we will animating fire (make flames moves) by changing PerlinNoise noiseOffsets in EnterFrame or Interval events.
classObject.noiseOffsets[i].x = classObject.noiseOffsets[i].x + classObject.noiseOffsetDeltas[i].x;
classObject.noiseOffsets[i].y = classObject.noiseOffsets[i].y + classObject.noiseOffsetDeltas[i].y;
Fire class contains:
-Fire
-startEffect
-stopEffect
-dispose
-------------------------------------
USAGE:
-------------------------------------
function Fire(target:MovieClip,name:String,x:Number,y:Number,width:Number,height:Number,
rotation:Number,sStrength:Number,spdRise:Number,spdFall:Number,colors:Array,alphas:Array,ratios:Array)
target: reference - the object which the Tween targets
name: string - name of new fire MovieClip
x: number - x coord
y: number - y coord
width: number - height of new fire MovieClip
height: number - width of new fire MovieClip
rotation: number - rotation angle
sStrength: number - starting fire value (0)
spdRise: number - fire rising intensity time period
spdFall:Number - fire falling intensity time period
colors:Array - gradient fire color (u can set custom color let say blue Fire)
alphas:Array - alphs
ratios:Array - intensity
drawFunc:Function - fire form (make ur own) *see drawFireForm
-------------------------------------
EXAMPLE: "fire"
------------------------------------
import effects.Fire;
import flash.geom.Point;
var f:Fire=new Fire(_root,"fire",150,220,100,100,30,5,10,10,[0x910000,0x910000,0x910000,0xFF9900,0xFFFD8A,0xFFFD8B,0xFFFDCB],[0,0,100,100,100,100,100],[0,70,90,110,148,250,255]);
| » Level Advanced |
|
Added: 2006-04-27 Rating: 3 Votes: 31 |
| » Author |
| N/A |
| » Download |
| Download the files used in this tutorial. |
| Download (0 kb) |
| » Forums |
| More help? Search our boards for quick answers! |
-
You must have javascript enabled in order to post comments.


Comments
There are no comments yet. Be the first to comment!