ActionScript 3.0, l'essentiel sous la main Adobe Flash Accueil
Fiches
Boutique
Contact
Créer une flamme
INFOS : Le code initial pour cet effet a été récupéré sur le forum du site www.actionscript.org. Voir la source.

//Imports Flash
import flash.filters.BlurFilter;
import flash.display.Sprite;
import flash.utils.Timer;
import flash.events.TimerEvent;

//Couleurs de la flamme
var outer_col:uint = 0xFF6600; //Partie exterieur
var inner_col:uint = 0xFFFF00; //Partie intérieur

//Tableau pour les différentes étapes de la flamme (images clés)
var outer_flame:Array = new Array();
var inner_flame:Array = new Array();

var circle:Sprite; //Element de base pour la création des différentes parties de la flamme

//Flou appliqué aux étapes de la flamme
var blur:BlurFilter = new BlurFilter(30,30,2);

//Remplissage du tableau avec les flammes
function addFlameParts(holder_array:Array, flame_col:uint, xpos:int, ypos:int, diameter:uint):void
{
for (var i:Number=0; i<20; i++)
{
circle = new Sprite(); //Création d'un fragment de la flamme
circle.graphics.beginFill(flame_col); //Appliquation de la couleur
circle.graphics.drawCircle(xpos, ypos-(i*15), diameter); //Positionnement
circle.filters = [blur]; //Application du flou
holder_array.push(circle); //Ajout l'élément dans le tableau de la flamme (intérieur/extérieur)
addChild(circle); //Ajout du fragment sur la scène
diameter -= (diameter/10); //Redimensionnement du fragment
}
}

//Création de la flamme
addFlameParts(outer_flame, outer_col, 275, 250, 40); //Partie extérieur (tableau, couleur, posX, posY, diamètre)
addFlameParts(inner_flame, inner_col, 275, 270, 20); //Partie intérieur (tableau, couleur, posX, posY, diamètre)

//Minuterie pour la MAJ de la flamme
var timer:Timer = new Timer(80); //Toute les 80 millisecondes
timer.addEventListener("timer", updateFlame); //MAJ de la flamme
timer.start(); //Démarrage du timer

//MAJ de la flamme
function updateFlame(e:TimerEvent):void
{
var offset:Number;
for(var i:Number=0; i<outer_flame.length; i++)
{
offset = (Math.random()*6)-3;
Sprite(outer_flame[i]).x = offset; //Avancement dans le tableau de la flamme extérieur
Sprite(inner_flame[i]).x = offset; //Avancement dans le tableau de la flamme intérieur
}
}

Aperçus & Sources : (Flash CS4)
Commentaire(s)
Aucun.