25. april 2003 - 00:44
Der er
9 kommentarer og 1 løsning
Dynamisk genereret Flash menu - problem med onRollOut.....
Hej jeg har en dynamisk genereret dropdown menu i Flash (bruger XML). Den virker næsten OK, men jeg har et problem med at få undermenuerne til at blive ved med at være der når man rykker ned over dem fra topmenuen - og så at få undermenuerne til at forsvinde når man fjerner musen fra dem. Kryptisk? Kort fortalt behøver jeg en måde at tjekke om musen er over nogle bestemte MC's og så undlade at fjerne dem med removeMovieClip(); - men så til gengæld fjerne alle andre MC's i arrayet......
Annonceindlæg tema
Cloud & AI
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
25. april 2003 - 01:00
#1
har du lagt det ud på nettet et sted? Kunne være lidt nemmere at have med at gøre hvis man havde noget at forholde sig til!
25. april 2003 - 01:03
#2
øjeblik....:-)
25. april 2003 - 01:10
#3
25. april 2003 - 10:07
#4
ehem en lille kommentar,.. hvis nogen skal have en chance for at se på filerne er det meget rart med *.fla filen eftersom man ikke umiddelbart kan åbne en *.swf fil =) /Snig
25. april 2003 - 15:37
#5
Du kan fikse det med: if(_root._xmouse < et eller andet && _root._ymouse < et eller andet && _root._xmouse > et eller andet && _root._ymouse > et eller andet) { _visible = 1; } else { _visible = 0; }
25. april 2003 - 15:51
#6
legende Det kan jeg ikke - desværre :-) Har du set koden....? Her er den: menuXml = new XML(); menuXml.ignoreWhite = true; menuXml.load("php_menu_xml.php"); menuXml.onLoad = function(success) { if (success) { topmenu = menuXml.firstChild.childNodes; // Definerer topmenu menuArray = new Array(topmenu.length); for (i=0; i<topmenu.length; i++) { menuArray[i] = _root.attachMovie("xml_menu", "xml_menu" +i, i); menuArray[i]._x = 5+(75*i); // X position -> første x-værdi + efterfølgende distribution dvs. = x+(x*i) menuArray[i]._y = 25; menuArray[i].itemLabel.text = topmenu[i].attributes.menutext; // Indsætter menutext i topmenu menuArray[i].content = topmenu[i].attributes.contentid; // Sætter variablen contentid for topmenu menuArray[i].template = topmenu[i].attributes.template; // Sætter variablen template for topmenu menuArray[i].index = i; // Sætter hvilken knap der er valgt menuArray[i].subNodes = topmenu[i].childNodes; // Musefunktioner menuArray[i].onRollOver = function() { dropDown(this.index); setProperty(this, _alpha, 100); //setProperty(menuArray[i]["xml_menu_sub1"], _alpha, 50); this.gotoAndStop("over"); } menuArray[i].onRollOut = function() { fjernDropDown(this.index, this); setProperty(this, _alpha, 50); this.gotoAndStop("ini"); } menuArray[i].onRelease = function() { menuLink(this.index); fjernDropDown(this.index); setProperty(this, _alpha, 10); loadMovie(template+".swf", "mcIndhold"); } } } } // XML MENUFUNKTIONER // function dropDown(id) { submenu = menuArray[id].subNodes; // Definerer submenu for (i=0; i<submenu.length; i++) { menuArray[id].attachMovie("xml_menu_sub", "xml_menu_sub" +i, i+1); menuArray[id]["xml_menu_sub" +i]._x = 0; menuArray[id]["xml_menu_sub" +i]._y = menuArray[id]._y+(2+(20*i)); // Y position -> første y-værdi + efterfølgende distribution dvs. = y+(y*i) menuArray[id]["xml_menu_sub" +i].SubItemLabel.text = submenu[i].attributes.menutext; // Indsætter menutext ind i submenu } } function fjernDropDown(index,opener) { for(i=0; i<menuArray[index].subNodes.length; i++) { if(menuArray[index]["xml_menu_sub" +i]._parent == opener){ menuArray[index]["xml_menu_sub" +i].removeMovieClip(); } } } function menuLink(index) { contentid = menuArray[index].content; template = menuArray[index].template; trace("Content = "+ contentid + " Template = " + template); }
25. april 2003 - 17:04
#7
I din zip ligger der en html, en swf og et php-dokument?
25. april 2003 - 17:14
#8
prøv med det her: menuXml = new XML(); menuXml.ignoreWhite = true; menuXml.load("menu.xml"); menuXml.onLoad = function(success) { if (success) { topmenu = menuXml.firstChild.childNodes; // Definerer topmenu menuArray = new Array(topmenu.length); for (i=0; i<topmenu.length; i++) { menuArray[i] = _root.attachMovie("xml_menu", "xml_menu" +i, i); menuArray[i]._x = 5+(75*i); // X position -> første x-værdi + efterfølgende distribution dvs. = x+(x*i) menuArray[i]._y = 25; menuArray[i].itemLabel.text = topmenu[i].attributes.menutext; // Indsætter menutext i topmenu menuArray[i].content = topmenu[i].attributes.contentid; // Sætter variablen contentid for topmenu menuArray[i].template = topmenu[i].attributes.template; // Sætter variablen template for topmenu menuArray[i].index = i; // Sætter hvilken knap der er valgt menuArray[i].subNodes = topmenu[i].childNodes; // Musefunktioner /*menuArray[i].onRollOver = function() { dropDown(this.index); setProperty(this, _alpha, 100); //setProperty(menuArray[i]["xml_menu_sub1"], _alpha, 50); this.gotoAndStop("over"); }*/ /* menuArray[i].onRollOut = function() { fjernDropDown(this.index, this); setProperty(this, _alpha, 50); this.gotoAndStop("ini"); }*/ menuArray[i].onEnterFrame = function() { if (this.hitTest(_root._xmouse, _root._ymouse, false)) { dropDown(this.index); } else { fjernDropDown(this.index, this); } } menuArray[i].onRelease = function() { menuLink(this.index); fjernDropDown(this.index); setProperty(this, _alpha, 10); loadMovie(template+".swf", "mcIndhold"); } } } } // XML MENUFUNKTIONER // function dropDown(id) { submenu = menuArray[id].subNodes; // Definerer submenu for (i=0; i<submenu.length; i++) { menuArray[id].attachMovie("xml_menu_sub", "xml_menu_sub" +i, i+1); menuArray[id]["xml_menu_sub" +i]._x = 0; menuArray[id]["xml_menu_sub" +i]._y = menuArray[id]._y+(2+(20*i)); // Y position -> første y-værdi + efterfølgende distribution dvs. = y+(y*i) menuArray[id]["xml_menu_sub" +i].SubItemLabel.text = submenu[i].attributes.menutext; // Indsætter menutext ind i submenu } } function fjernDropDown(index,opener) { for(i=0; i<menuArray[index].subNodes.length; i++) { if(menuArray[index]["xml_menu_sub" +i]._parent == opener){ menuArray[index]["xml_menu_sub" +i].removeMovieClip(); } } } function menuLink(index) { contentid = menuArray[index].content; template = menuArray[index].template; trace("Content = "+ contentid + " Template = " + template); }
25. april 2003 - 19:49
#9
mat -> Ok det virker - men problemet er at få submenuerne til at være "separate" enheder - man kan formatere fx. med setProperty eller giver selvstændige actions......? :-)
20. august 2003 - 23:24
#10
Jeg lukker spm.
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.