home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Mobiclic 136
/
MOBICLIC136.ISO
/
pc
/
DATA
/
HOTE
/
libs
/
xlib1
/
xlib1.swf
/
scripts
/
__Packages
/
xb
/
classes
/
Liste.as
< prev
Wrap
Text File
|
2011-07-20
|
8KB
|
263 lines
class xb.classes.Liste
{
function Liste(p)
{
this._p = p;
this.Init();
}
function Init()
{
this._liste = [];
this._position = -1;
trace(this._p.depart + " " + this._p.fin + " " + this._p.ModeTirage);
this._mode_tirage = this._p.ModeTirage != undefined ? this._p.ModeTirage : "boucle";
this.Remplir(this._p);
if(this._p.melanger == true)
{
this.Melanger();
}
}
function Remplir(p)
{
this._p = p;
if((this._p.depart == undefined || this._p.fin == undefined) && this._p.ArraySource == undefined)
{
return false;
}
this._p.mode = this._p.mode != undefined ? this._p.mode : "linear";
this._p.nombre = this._p.nombre != undefined ? this._p.nombre - 1 : Math.abs(this._p.fin - this._p.depart);
this._liste = [];
if(this._p.ArraySource != undefined)
{
var _loc2_ = 0;
while(_loc2_ < this._p.ArraySource.length)
{
this._liste[_loc2_] = this._p.ArraySource[_loc2_];
_loc2_ = _loc2_ + 1;
}
}
else
{
var _loc5_ = (this._p.fin - this._p.depart) / this._p.nombre;
var _loc4_ = this._p.depart;
if(this._p.mode == "linear")
{
var _loc3_ = 0;
while(_loc3_ <= this._p.nombre)
{
this._liste.push(_loc5_ * _loc3_ + _loc4_);
_loc3_ = _loc3_ + 1;
}
}
else if(this._p.mode == "exp")
{
_loc3_ = 0;
while(_loc3_ <= this._p.nombre)
{
this._liste.push(_loc5_ / this._p.nombre * _loc3_ * _loc3_ + _loc4_);
_loc3_ = _loc3_ + 1;
}
}
}
if(this._p.accidents != undefined && this._p.noise_en_dernier != false)
{
_loc2_ = 0;
while(_loc2_ < this._p.accidents.length)
{
this._liste[xb.classes.Liste.randomValue(this._p.accidents[_loc2_].depart,this._p.accidents[_loc2_].fin)] = this._p.accidents[_loc2_].valeur;
_loc2_ = _loc2_ + 1;
}
}
if(this._p.noise != undefined && this._p.noise != false)
{
this.Noise();
}
if(this._p.accidents != undefined && this._p.noise_en_dernier == false)
{
_loc2_ = 0;
while(_loc2_ < this._p.accidents.length)
{
this._liste[xb.classes.Liste.randomValue(this._p.accidents[_loc2_].depart,this._p.accidents[_loc2_].fin)] = this._p.accidents[_loc2_].valeur;
_loc2_ = _loc2_ + 1;
}
}
return true;
}
function Noise()
{
if(this._p.noiseAmplitude == undefined)
{
this._p.noiseAmplitude = 0.1;
}
trace("_p.noiseAmplitude : " + this._p.noiseAmplitude);
var _loc3_ = undefined;
var _loc2_ = 0;
while(_loc2_ < this._liste.length)
{
if(typeof this._liste[_loc2_] == "number")
{
_loc3_ = this._liste[_loc2_] + xb.classes.Liste.randomValue(-1000,1000) / 1000 * this._p.noiseAmplitude;
if(_loc3_ < this._p.depart)
{
_loc3_ = this._p.depart;
}
if(_loc3_ > this._p.fin)
{
_loc3_ = this._p.fin;
}
this._liste[_loc2_] = _loc3_;
}
_loc2_ = _loc2_ + 1;
}
}
function Prochain()
{
this._position = this._position + 1;
if(this._position >= this._liste.length)
{
switch(this._mode_tirage)
{
case "1fois":
return "fini";
case "boucle":
this._position = 0;
break;
case "remelanger":
this.Melanger();
this._position = 0;
}
}
return this._liste[this._position];
}
function Melanger()
{
var _loc2_ = this._liste[this._position];
this._liste = xb.classes.Liste.randomiseList(this._liste);
if(this._liste[0] == _loc2_)
{
this.Melanger();
}
trace("Melanger" + this._liste);
}
function SupprimerActuel()
{
this._liste.splice(this._position,1);
this._position = this._position - 1;
}
function SupprimerElements(p)
{
if(typeof p == "number")
{
var _loc2_ = 0;
while(_loc2_ < p)
{
this._liste.splice(xb.classes.Liste.randomValue(0,this._liste.length - 1),1);
_loc2_ = _loc2_ + 1;
}
}
this._position = 0;
}
static function randomiseList(myList)
{
var _loc2_ = myList.slice();
var _loc4_ = [];
var _loc3_ = undefined;
var _loc5_ = _loc2_.length;
var _loc1_ = 0;
while(_loc1_ < _loc5_)
{
_loc3_ = xb.classes.Liste.randomValue(0,_loc2_.length - 1);
_loc4_.push(_loc2_[_loc3_]);
_loc2_.splice(_loc3_,1);
_loc1_ = _loc1_ + 1;
}
return _loc4_;
}
static function randomValue(min, max)
{
var _loc1_ = Math.floor(Math.random() * (max - min + 1)) + min;
return _loc1_;
}
function Info()
{
trace("Info : " + this.Info);
var _loc2_ = 0;
while(_loc2_ < this._liste.length)
{
trace(_loc2_ + " : " + this._liste[_loc2_]);
_loc2_ = _loc2_ + 1;
}
}
function InfoCourbe()
{
var _loc12_ = arguments[0];
trace("p : " + _loc12_);
trace("p : " + _loc12_.couleur);
var _loc13_ = _loc12_.couleur != undefined ? _loc12_.couleur : 16711935;
var _loc9_ = _root.createEmptyMovieClip("courbe",_root.getNextHighestDepth());
var _loc11_ = _loc9_.createEmptyMovieClip("axe",5);
var _loc10_ = _loc9_.createEmptyMovieClip("courbe",10);
var _loc5_ = undefined;
var _loc6_ = this._liste;
var _loc14_ = _loc6_.length;
var _loc8_ = 10;
var _loc7_ = 300;
_loc11_.lineStyle(1,13421772,100);
_loc11_.moveTo(0,_loc7_);
_loc11_.lineTo(800,_loc7_);
_loc11_.lineTo(_loc8_,_loc7_);
_loc11_.lineTo(_loc8_,600);
_loc11_.lineTo(_loc8_,0);
_loc10_._alpha = 70;
_loc10_.lineStyle(1,_loc13_,100);
_loc10_.moveTo(_loc8_,_loc7_ - _loc6_[0] / 100);
var _loc4_ = 1;
while(_loc4_ < _loc6_.length)
{
_loc5_ = _loc9_.createEmptyMovieClip("croix",10 + _loc4_);
_loc5_.lineStyle(1,0,100);
_loc5_.moveTo(_loc4_ * 10 + _loc8_,_loc7_ - _loc6_[_loc4_] / 100 - 2);
_loc5_.lineTo(_loc4_ * 10 + _loc8_,_loc7_ - _loc6_[_loc4_] / 100 + 2);
_loc10_.lineTo(_loc4_ * 10 + _loc8_,_loc7_ - _loc6_[_loc4_] / 100);
_loc4_ = _loc4_ + 1;
}
_loc9_._x = 0;
_loc9_._y = 0;
_loc9_._width = 790;
_loc9_._height = 600;
}
function GetPos(element)
{
var _loc2_ = 0;
while(_loc2_ < this._liste.length)
{
if(this._liste[_loc2_] == element)
{
return _loc2_;
}
_loc2_ = _loc2_ + 1;
}
return false;
}
function get e()
{
return this._liste;
}
function set ModeTirage(mode)
{
this._mode_tirage = mode;
}
function get Taille()
{
return this._liste.length;
}
function set Position(position)
{
this._position = position;
}
function get Position()
{
return this._position;
}
}