Bonjour à tous,
J'ai réussi à créer un menu avec un sous menumais je n'arrive pas à mettre un sous menu sous le sous menu :)
Si quelqu'un pouvait m'aider
Code FLASH :
import mx.transitions.Tween;
var tabMenu:Array = new Array();
var diffHeight:Number;
var menu_mc:MovieClip = this.createEmptyMovieClip("menu_mc", 1);
loadMyXML("listeboutons.xml");
function loadMyXML(nameXML:String):Void {
// ICI ON LOAD LE XML ET LE MET DANS UN TABLEAU SOUS LA FORME
// Array(nomMenu, lien, Array(nomSousMenu, lienSousMenu));
var document:XML = new XML();
//création de l'objet XML
document.ignoreWhite = true;
//ignorer les sauts de ligne
document.onLoad = function(success:Boolean) {
if (success) {
//nombre de menu xml
var LengthXml:Number = document.firstChild.childNodes.length;
for (i=0; i<LengthXml; i++) {
var nom:String = document.firstChild.childNodes[i].attributes.name;
var lien:String = document.firstChild.childNodes[i].attributes.lien;
tabMenu.push(new Array(nom, lien));
var ssmenuLength:Number = document.firstChild.childNodes[i].childNodes.length;
var tabTemp = new Array();
for (var j:Number=0; j<ssmenuLength; j++) {
var ssname:String = document.firstChild.childNodes[i].childNodes[j].attributes.name;
var sslien:String = document.firstChild.childNodes[i].childNodes[j].attributes.lien;
tabTemp.push(new Array(ssname, sslien));
}
tabMenu[i].push(tabTemp);
}
// appel de la fonction qui va construire le menu
constructMenu();
} else {
trace("Error loading XML file");
}
};
document.load(nameXML);
}
function constructMenu():Void{
for (var i:Number=0; i<tabMenu.length; i++) {
this["menu"+i] = menu_mc.attachMovie("menu", "menu"+i, i);
this["menu"+i]._y = (i) * this["menu"+i]._height;// ajustement hauteur avec (i+chiffre)
this["menu"+i].num = i;
this["menu"+i].mcText.mc_text.text = tabMenu[i][0];
this["menu"+i].openMenu = false;
this["ssmenu_mc"+i] = this.createEmptyMovieClip("ssmenu_mc", this.getNextHighestDepth());
this["menu"+i].onRelease = function() {
var yPos:Number = this._y + this._height;
_root["ssmenu_mc"+this.num]._y = yPos;
_root["ssmenu_mc"+this.num]._x = 10;//position x du ss menu
if (!this.openMenu) {
var yPos2:Number = 0;
for (var j:Number=0; j<tabMenu[this.num][2].length; j++){
this["ssmenu"+j] = _root["ssmenu_mc"+this.num].attachMovie("sousmenu", "ssmenu"+j, j);
this["ssmenu"+j]._y = j * this["ssmenu"+j]._height;
this["ssmenu"+j].num = j;
this["ssmenu"+j].parentNum = this.num;
this["ssmenu"+j].ss_ss_menu.mcText.mc_text_ss_menu.text = tabMenu[this.num][2][j][0];
this["ssmenu"+j].onRelease = function() {
trace("goto : "+tabMenu[this.parentNum][2][this.num][1]);
}
yPos2 += this["ssmenu"+j]._height;
}
for (var m:Number = this.num + 1; m<tabMenu.length; m++) {
new Tween(menu_mc["menu"+m], "_y", Regular.easeIn, menu_mc["menu"+m]._y, menu_mc["menu"+m]._y + yPos2, 5, false);
new Tween(_root["ssmenu_mc"+m], "_y", Regular.easeIn, _root["ssmenu_mc"+m]._y, _root["ssmenu_mc"+m]._y + yPos2, 5, false);
}
diff = yPos2;
} else {
for (var j:Number=0; j<tabMenu[this.num][2].length; j++){
_root["ssmenu_mc"+this.num]["ssmenu"+j].removeMovieClip();
}
for (var m:Number = this.num + 1; m<tabMenu.length; m++) {
new Tween(menu_mc["menu"+m], "_y", Regular.easeIn, menu_mc["menu"+m]._y, menu_mc["menu"+m]._y - diff, 5, false);
new Tween(_root["ssmenu_mc"+m], "_y", Regular.easeIn, _root["ssmenu_mc"+m]._y, _root["ssmenu_mc"+m]._y - diff, 5, false);
}
}
this.openMenu = !this.openMenu;
}
}
}
Code XML :
<?xml version="1.0" encoding="UTF-8"?>
<listemenu>
<menu name="Menu1" lien="#1">
<sousmenu name="ss_menu1" lien="#1">
<soussousmenu name="ss_ss_menu1" lien="#1"></soussousmenu>
<soussousmenu name="ss_ss_menu2" lien="#2"></soussousmenu>
<soussousmenu name="ss_ss_menu3" lien="#23"></soussousmenu>
<soussousmenu name="ss_ss_menu3" lien="#23"></soussousmenu>
</sousmenu>
<sousmenu name="ss_menu2" lien="#75">
<soussousmenu name="ss_ss_menu2_1" lien="#1"></soussousmenu>
<soussousmenu name="ss_ss_menu2_2" lien="#2"></soussousmenu>
<soussousmenu name="ss_ss_menu2_3" lien="#23"></soussousmenu>
<soussousmenu name="ss_ss_menu2_4" lien="#23"></soussousmenu>
</sousmenu>
<sousmenu name="ss_menu3" lien="#45">
<soussousmenu name="ss_ss_menu3_1" lien="#1"></soussousmenu>
<soussousmenu name="ss_ss_menu3_2" lien="#2"></soussousmenu>
</sousmenu>
<sousmenu name="ss_menu4" lien="#1">
<soussousmenu name="ss_ss_menu4_1" lien="#1"></soussousmenu>
<soussousmenu name="ss_ss_menu4_2" lien="#2"></soussousmenu>
<soussousmenu name="ss_ss_menu4_3" lien="#23"></soussousmenu>
</sousmenu>
</menu>
<menu name="Menu2" lien="#">
<sousmenu name="ss_menu2_1" lien="/BT/FAI_SOUSCRIPTION/souscription.jsp">
<soussousmenu name="ss_ss_menu2_1_1" lien="#1"></soussousmenu>
<soussousmenu name="ss_ss_menu2_1_2" lien="#2"></soussousmenu>
<soussousmenu name="ss_ss_menu2_1_3" lien="#23"></soussousmenu>
</sousmenu>
<sousmenu name="ss_menu2_2" lien="#2_2">
<soussousmenu name="ss_ss_menu2_2_1" lien="#1"></soussousmenu>
<soussousmenu name="ss_ss_menu2_2_2" lien="#2"></soussousmenu>
<soussousmenu name="ss_ss_menu2_2_3" lien="#23"></soussousmenu>
</sousmenu>
<sousmenu name="ss_menu2_3" lien="#2_3">
<soussousmenu name="ss_ss_menu2_3_1" lien="#1"></soussousmenu>
<soussousmenu name="ss_ss_menu2_3_2" lien="#2"></soussousmenu>
<soussousmenu name="ss_ss_menu2_3_3" lien="#23"></soussousmenu>
</sousmenu>
</menu>
<menu name="Menu3" lien="#3">
<sousmenu name="ss_menu3_1" lien="#3_1">
<soussousmenu name="ss_ss_menu3_1_1" lien="#1"></soussousmenu>
<soussousmenu name="ss_ss_menu3_1_2" lien="#2"></soussousmenu>
<soussousmenu name="ss_ss_menu3_1_3" lien="#23"></soussousmenu>
</sousmenu>
<sousmenu name="ss_menu3_2" lien="#3_2">
<soussousmenu name="ss_ss_menu3_2_1" lien="#1"></soussousmenu>
<soussousmenu name="ss_ss_menu3_2_2" lien="#2"></soussousmenu>
<soussousmenu name="ss_ss_menu3_2_3" lien="#23"></soussousmenu>
</sousmenu>
<sousmenu name="ss_menu3_3" lien="#3_3">
<soussousmenu name="ss_ss_menu3_3_1" lien="#1"></soussousmenu>
<soussousmenu name="ss_ss_menu3_3_2" lien="#2"></soussousmenu>
<soussousmenu name="ss_ss_menu3_3_3" lien="#23"></soussousmenu>
</sousmenu>
</menu>
</listemenu>