for(var l:int=0; l<anXML.length(); l++){
aButton=new btn_secondTier();
aLocation.addChild(aButton);
//var aButtonDefaults:ButtonDefaults=new ButtonDefaults(aButton);
aButton.y=l*24;
aButton.name=anXML[l].attribute("id");
aButton.title_txt.text=anXML[l].theTitle;
aButton.addEventListener(MouseEvent.ROLL_OVER,onDropOver);
aButton.addEventListener(MouseEvent.ROLL_OUT,onDropOut);
aButton.addEventListener(MouseEvent.CLICK,onClick);
aButton.mouseChildren=true;
for(var k:int=0; k< anXML[l].thirdMenu.length(); k++){
bButton=new btn_thirdTier();
aButton.thirdContainer_mc.addChild(bButton);
bButton.addEventListener(MouseEvent.ROLL_OVER,onMouseOver);
bButton.addEventListener(MouseEvent.ROLL_OUT,onMouseOut);
bButton.buttonMode = true;
bButton.useHandCursor = true;
bButton.y=k*24;
bButton.name=anXML[l].thirdMenu[k].attribute("id");
//bButton.addEventListener(MouseEvent.CLICK,onClick);
aButton.thirdContainer_mc.visible=false;
bButton.title_txt.text=anXML[l].thirdMenu[k].theTitle;
bButton.mouseChildren=false;
}
// PREVENTS THE THIRD NAV FROM THE PRESENTATION BUTTON FROM OVERLAPPING THE EDGE OF THE SCREEN
if(aLocation==main.mainNav_mc.btn_2.secondaryContainer_mc){
aButton.thirdContainer_mc.x=201;
}
// FRAME AROUND TERTIARY BUTTONS
aButton.thirdContainer_mc.thirdNavBG_mc.height=(aButton.thirdContainer_mc.height);
var thirdBGHeight:Number=(aButton.thirdContainer_mc.thirdNavBG_mc.height)+2;
aButton.thirdContainer_mc.thirdNavBG_mc.height=thirdBGHeight;
aButton.thirdContainer_mc.thirdNavBG_mc.width=202;
aButton.thirdContainer_mc.thirdNavBG_mc.x=-1;
aButton.thirdContainer_mc.thirdNavBG_mc.y=-1;
}
En cours de construction d'un système de menu dynamique, avec 3 niveaux de navigation. Actuellement, lorsque les enfants de la souris est défini sur "true", il ne veut pas se souvenir du nom de l'élément de menu créé.as3 mouseChildren = true ne contient pas le nom du bouton créé
il crache, 'instance263' ou quel que soit le numéro lorsque je trace avec mon événement onClick.
Avec mouseChildren défini sur 'false', mon troisième niveau de navigation cesse de fonctionner.
Le but ici est de faire en sorte que les éléments de menu conservent un nom d'occurrence afin que je puisse y revenir et définir des états actifs pour le module actif actuel.
MISE À JOUR:
Voici où le problème se pose
private function onClick(e:MouseEvent):void{
var myString=e.target.name;
var aList:Array = myString.split("_");
trace(myString+" gfgfgfg "+argh[0].name);
main.video_controller.nsStream.pause();
main.video_controller.nsStream.close();
main.btn_continue.visible=true;
main.btn_previous.visible=true;
if(e.target.name==xmlData.menu[aList[0]].secondMenu[aList[1]].thirdMenu[aList[2]].attribute("id")){
main.removeActivity();
loadToolBox(xmlData.menu[aList[0]].secondMenu[aList[1]].thirdMenu[aList[2]]);
main.loadModule(xmlData.menu[aList[0]].secondMenu[aList[1]].thirdMenu[aList[2]]);
menu1ID=aList[0];
menu2ID=aList[1];
menu3ID=aList[2];
/////////////////////////// ////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////// //////////////////// } }
Ceci est la trace qui me pose des problèmes.
trace(myString+" gfgfgfg "+argh[0].name);
myString est suivi (instance263) ou autre chose. Alors comment se fait-il que e.target ne me trace pas mon nom d'installation?
Avez-vous essayé de tracer anXML [l] .thirdMenu [k] .attribute ("id") lorsque le bButton est en cours d'initialisation? –
Pourriez-vous créer un exemple de cas minimal? – Killroy
@Richard Inglis Je l'ai tracé, et il semble que j'obtiens le nom d'instance du 2ème niveau du menu. Cependant, lorsque je clique sur un élément du deuxième niveau, il me reste 'instance263' ou quel que soit le nombre. – DesignedByDave