Bonjour tout le monde !
Je réalise actuellement mon premier site en Flash / XML et j'aurais besoin de vos lumières...
En vue de générer un menu a partir de mon fichier XML, j'ai créé un bouton "MenuItem" comprenant un rectangle et un champs de texte dynamique nommé "menu_txt".
A l'aide de mon script je parvient actuellement a créer et positionner les différents boutons composant mon menu mais je ne parvient pas a définir le contenu de mon champs texte pour chacun d'eux.
Je vous joins ci-dessous les différentes pièces vous permettant de jeter un oeil a mon travail et, je l'espere, de m'aider a resoudre ce probleme.
Fichier XML du menu :
{les links me serviront plus tard pour appeler une fonction changeant le contenu affiché}
<menu>
<item link='about_us'>About Us</item>
<item link='mortgages'>Mortgages</item>
<item link='overseas_buyers'>Overseas buyers</item>
<item link='residential_reversions'>Reversions</item>
<item link='wealth_management'>Wealth Management</item>
<item link='contact_us'>Contact us</item>
</menu>
Fichier externe AS définissant ma classe MenuXML :
/* Création d'une classe héritant du ficher XML du menu */
/* OK : Fonctionne */
class MenuXML extends XML{
public var menuItems:Array;
public var parent:Object;
public function MenuXML (fileXML:String, target:MovieClip){
super();
this.ignoreWhite = true;
this.parent = target;
this.menuItems = new Array();
this.load(fileXML);
}
public function onLoad(ok:Boolean){
if(ok){
var listRoot:Object = this.childNodes;
var listItem:Object = listRoot[0].childNodes;
var listItemNb:Number = listItem.length;
for (var i=0; i < listItemNb; i ++){
var itemObj:Object = {};
itemObj.title = listItem.firstChild.nodeValue;
itemObj.link = listItem[i].attributes.link;
this.menuItems.push(itemObj);
}
this.parent.loadMenu(this.menuItems);
}
else{
trace("LOADING ERROR : Menu" );
}
}
}
[i]Script interne présent sur l'image clé 1 de mon calque action :
var XMLMenu:MenuXML = new MenuXML("website-menu.xml", this);
/* Fonction de publication du menu */
function loadMenu(xmlObj:Array) {
var menuItemNb:Number = xmlObj.length;
var itemX:Number = 101;
var itemY:Number = 530;
var largeurLigne:Number = 109;
for (var i=0; i < menuItemNb; i ++){
this.attachMovie("MenuItem", "menu"+i, i);
this["menu"+i]._x = itemX;
this["menu"+i]._y = itemY;
this["menu"+i].menu_txt.htmlText = xmlObj.title;
this["menu"+i].link = xmlObj[i].link;
this["menu"+i].onRelease = function(){}
trace("xmlObj["+i+"]]._x :"+this["menu"+i]._x);
trace("xmlObj["+i+"]].title :"+xmlObj[i].title);
trace("this[menu"+i+"].menu_txt.htmlText :"+this["menu"+i].menu_txt.htmlText);
itemX += largeurLigne;
}
}
[i]Résultat des "trace( )" :
xmlObj[0]]._x :101
xmlObj[0]].title :About Us
this[menu0].menu_txt.htmlText :undefined
xmlObj[1]]._x :210
xmlObj[1]].title :Mortgages
this[menu1].menu_txt.htmlText :undefined
xmlObj[2]]._x :319
xmlObj[2]].title
verseas buyers
this[menu2].menu_txt.htmlText :undefined
xmlObj[3]]._x :428
xmlObj[3]].title :Reversions
this[menu3].menu_txt.htmlText :undefined
xmlObj[4]]._x :537
xmlObj[4]].title :Wealth Management
this[menu4].menu_txt.htmlText :undefined
xmlObj[5]]._x :646
xmlObj[5]].title :Contact us
this[menu5].menu_txt.htmlText :undefined
Mes boutons sont correctement créés et positionnés mais leur champ texte est vide.
Je songe peut-être a une erreur de ciblage mais j'avoue être en panne de solutions.
J'espère que vos réponses me permettront d'y voir plus clair.
Merci d'avance