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 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117
|
class classe.Boite_sel {
// declaration public
public var ob_visible : Number = 8; // nombre de ligne visible
public var largeur : Number = 100; // largeur par defaut de la boite de selection
public var obj_sel : Number = -1; // objet en cours selectionner
public var pos_x : Number = 0; // position en x de la boite
public var pos_y : Number = 0; // position en y de la boite
public var coul_fond : Number = 0xE0E0E0; // couleur de fond de la boite
public var coul_sel : Number = 0x808080; // couleur de l'objet selectionne
// declaration prive
private var liste_obj : Array = new Array(); // liste des objets
private var cell_height : Number; // hauteur d'une cellule
private var base : MovieClip; // la base de la boite
private var masque : MovieClip; // le masque de la boite
private var set_obj_sel : Function;
private var get_obj_sel : Function;
static var rtest:Number;
// fonction public qui redessine la boite
public function re_dessine() {
masque.clear();
base.clear();
masque.lineStyle(1,0xFFFFFF);
masque.moveTo(pos_x-1,pos_y-1);
masque.beginFill(0xFFFFFF);
masque.lineTo(pos_x+largeur+1,pos_y-1);
masque.lineTo(pos_x+largeur+1,pos_y+cell_height*ob_visible+1);
masque.lineTo(pos_x-1,pos_y+cell_height*ob_visible+1);
masque.endFill();
base.lineStyle(1,0x000000);
base.moveTo(pos_x,pos_y);
base.beginFill(coul_fond);
base.lineTo(pos_x+largeur,pos_y);
base.lineTo(pos_x+largeur,pos_y+cell_height*ob_visible);
base.lineTo(pos_x,pos_y+cell_height*ob_visible);
base.endFill();
for (var i=0;i<liste_obj.length;i++) {
if (base["valeur"+i]==undefined) {
base.createEmptyMovieClip("valeur"+i,base.getNextHighestDepth());
base["valeur"+i].createTextField("obj",base.getNextHighestDepth(),pos_x+1,pos_y+i*cell_height,
largeur-1,cell_height);
base["valeur"+i].obj.selectable=false;
base["valeur"+i].onPress = function() {
var nom:String = this["valeur"+i]._name;
var pos:String = nom.substr(6,nom.length-7);
Boite_sel.re_dessine();
}
}
base["valeur"+i].obj.text=liste_obj[i];
base["valeur"+i].obj._x=pos_x+1;
base["valeur"+i].obj._y=pos_y+i*cell_height;
if (i==obj_sel) {
base["valeur"+i].obj.backgroundColor=coul_sel;
base["valeur"+i].obj.background=true;
}
}
}
// le constructeur de la boite
public function Boite_sel(dest:MovieClip) {
liste_obj.push("ligne 1");
liste_obj.push("ligne 2");
var dim_txt : Array = new Array();
dim_txt= Commune.Taille_txt("Pg testing");
cell_height=dim_txt[1];
if (base==undefined) {
base = dest.createEmptyMovieClip("base",dest.getNextHighestDepth());
masque = dest.createEmptyMovieClip("masque",dest.getNextHighestDepth());
base.setMask(masque);
}
re_dessine();
// les fonctions de mise a jour automatique de couleur/position... de la boite
var m_pos_x :Function = function(prop,oldVal,newVal) {
this.pos_x=newVal;
this.re_dessine();
return newVal;
}
this.watch("pos_x",m_pos_x);
var m_pos_y :Function = function(prop,oldVal,newVal) {
this.pos_y=newVal;
this.re_dessine();
return newVal;
}
this.watch("pos_y",m_pos_y);
var m_coul_fond:Function = function(prop,oldVal,newVal) {
this.coul_fond=newVal;
this.re_dessine();
return newVal;
}
this.watch("coul_fond",m_coul_fond);
var m_coul_sel:Function = function(prop,oldVal,newVal) {
this.coul_sel=newVal;
//this.re_dessine();
return newVal;
}
this.watch("coul_sel",m_coul_sel);
}
} |
Partager