1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89
| /*
* Variables globales
************************/
// Variables globales pour la gestion des bulles
var bol_bulles:Boolean = false; // Le buleur doit-il lâcher des bulles ?
var cur_bulle:Number = 0;
var count:Number;
var max_bulles:Number = 20;
var arr_bulles:Array = new Array(max_bulles);
// Position des bulles
var left_in:Number = 614;
var top_in:Number = 453;
var top_out:Number = 275;
/*
* Evénements
********************/
// Chargement de l'animation
_root.onLoad = function()
{
// création des clips-bulles
for(count=0; count<max_bulles; count++)
{
arr_bulles[count] = _root.createEmptyMovieClip("circle_"+count.toString(), 20+count);
arr_bulles[count]._visible = false;
arr_bulles[count]._x = left_in;
arr_bulles[count]._y = top_in;
drawCircle(arr_bulles[count], 5, 0x3377FF, 60);
arr_bulles[count]._xscale = Math.floor(Math.random()*50)+75;
arr_bulles[count]._yscale = Math.floor(Math.random()*50)+75;
}
cur_bulle = 0;
setInterval(bulles, 10);
}
/*
* Fonctions
***************/
/* Fonction gérant l'apparition des bulles et leur déplacement.
Appelée à intervalle régulier, cette fonction fait aléatoirement apparaitre
des bulles et déplace celles déjà crées.
Une fois arrivée en fin de trajectoire, les bulles sont cachées. */
function bulles()
{
// Si le buleur est actif, il y a une probabilité de 5% pour qu'une bulle apparaisse
if(Math.random() > 0.95 && bol_bulles)
{
arr_bulles[cur_bulle]._visible = true;
cur_bulle = (cur_bulle+1)%max_bulles;
}
// On déplace toutes les bulles visibles
for(count=0; count<max_bulles; count++)
{
if(arr_bulles[count]._visible)
{
arr_bulles[count]._y--;
arr_bulles[count]._x += Math.floor(3*Math.random()-1);
if(arr_bulles[count]._y < top_out)
{
arr_bulles[count]._visible = false;
arr_bulles[count]._x = left_in;
arr_bulles[count]._y = top_in;
}
}
}
}
function drawCircle(target_mc:MovieClip, radius:Number, fillColor:Number, fillAlpha:Number):Void
{
var x:Number = radius;
var y:Number = radius;
with (target_mc)
{
beginFill(fillColor, fillAlpha);
moveTo(x + radius, y);
curveTo(radius + x, Math.tan(Math.PI / 8) * radius + y, Math.sin(Math.PI / 4) * radius + x, Math.sin(Math.PI / 4) * radius + y);
curveTo(Math.tan(Math.PI / 8) * radius + x, radius + y, x, radius + y);
curveTo(-Math.tan(Math.PI / 8) * radius + x, radius+ y, -Math.sin(Math.PI / 4) * radius + x, Math.sin(Math.PI / 4) * radius + y);
curveTo(-radius + x, Math.tan(Math.PI / 8) * radius + y, -radius + x, y);
curveTo(-radius + x, -Math.tan(Math.PI / 8) * radius + y, -Math.sin(Math.PI / 4) * radius + x, -Math.sin(Math.PI / 4) * radius + y);
curveTo(-Math.tan(Math.PI / 8) * radius + x, -radius + y, x, -radius + y);
curveTo(Math.tan(Math.PI / 8) * radius + x, -radius + y, Math.sin(Math.PI / 4) * radius + x, -Math.sin(Math.PI / 4) * radius + y);
curveTo(radius + x, -Math.tan(Math.PI / 8) * radius + y, radius + x, y);
endFill();
}
} |
Partager