flash actionscript:
It is inthe Flash sample files on your HDD
I need to create a dynamic collapsing menu from an array. so far I have the array and first level of the menu working. Now I need to create the functionality of the subMenu and I am stumped. Is there any good references out there that might be able to walk me through this process? Here is my code and my source file var menuItem:Array = new Array(); menuItem[0] = {label:"ANIMUS", link:"#"}; menuItem[0].subMenuItem = new Array(); menuItem[0].subMenuItem[0] = {label:"HISTÓRIA", link:"http://www.kirupa.com"}; menuItem[0].subMenuItem[1] = {label:"EQUIPE", link:"http://www.actionscript.org"}; menuItem[0].subMenuItem[2] = {label:"PREMIAÇÃO", link:"http://www.actionscript.com"}; menuItem[1] = {label:"CLIENTES", link:"http://www.flashpope.com"}; menuItem[2] = {label:"PORTIFÓLIO", link:"#"}; menuItem[2].subMenuItem = new Array(); menuItem[2].subMenuItem[0] = {label:"BRANDING", link:"movies/branding.swf"}; menuItem[2].subMenuItem[1] = {label:"EMBALAGEM", link:"movies/embalagem.swf"}; menuItem[2].subMenuItem[2] = {label:"MERCHANDISING", link:"movies/merchandising.swf"}; menuItem[2].subMenuItem[3] = {label:"AMBIENTE DE", link:"movies/ambiente_de.swf"}; menuItem[2].subMenuItem[4] = {label:"VAREJO", link:"movies/varejo.swf"}; menuItem[3] = {label:"DESIGN ESTRATÉGICO", link:"movies/design_estrategico.swf"}; menuItem[4] = {label:"CONTATO", link:"movies/contato.swf"}; //////////////////////////////////////////////// //////////////////////////////////////////////// var xPos = 19; var yPos = 45; for (i=0; i<menuItem.length; i++) { attachMovie("container", "new"+i, i, {_x:xPos, _y:yPos}); yPos += this["new"+i]._height; this["new"+i].label_txt.text = menuItem[i].label; this["new"+i].url_btn._url = menuItem[i].link; trace(menuItem[i].link); } ////////////////////////////////////////////////
here is my awful attempt that broke everything apart var xPos = 19; var yPos = 45; var subXPos = 100; var subYPos = 13; for (i=0; i<menuItem.length; i++) { attachMovie("container", "new"+i, i, {_x:xPos, _y:yPos}); yPos += this["new"+i]._height; this["new"+i].label_txt.text = menuItem[i].label; this["new"+i].url_btn._url = menuItem[i].link; if (menuItem[i].subMenuItem.length>=0) { j = 0; j<menuItem[i].subMenuItem.length; j++; attachMovie("subContainer", "subNew"+j, j, {_x:subXPos, _y:subYPos}); yPos += this["subNew"+j]._height; this["subNew"+j].subLabel_txt.text = menuItem[i].subMenuItem[j].label; this["subNew"+j].subUrl_btn._url = menuItem[i].subMenuItem[j].link; } trace(menuItem[i].link); trace(menuItem[i].subMenuItem[j].link); }
I got the subMenuItem.links to output with a trace function but I noticed they output above the menuItem.link. Still haven't figured out how to place them under the corresponding menuItem. Any Suggestions please
Sorry I noticed errors in code and in the fla. If you have looked at this please check out the new one. The nested array is partially loading but then I loose the links that are above it. Here is the updated fla which can be found at the link above and code ///////////////////////////////////////// //////////////// VARS //////////////// ///////////////////////////////////////// var xPos = 20; var yPos = 40; var subXPos = curPos+10; var subYPos = curPos+10; var curPos = menuItem[i].height; ///////////////////////////////////////// //////////////// ARRAY //////////////// ///////////////////////////////////////// var menuItem:Array = new Array(); menuItem[0] = {label:"ANIMUS", link:"#"}; menuItem[0].subMenuItem = new Array(); menuItem[0].subMenuItem[0] = {label:"HISTÓRIA", link:"movies/historia.swf"}; menuItem[0].subMenuItem[1] = {label:"EQUIPE", link:"movies/equipe.swf"}; menuItem[0].subMenuItem[2] = {label:"PREMIAÇÃO", link:"movies/premiacao.swf"}; menuItem[1] = {label:"CLIENTES", link:"http://www.google.com"}; menuItem[2] = {label:"PORTIFÓLIO", link:"#"}; menuItem[2].subMenuItem = new Array(); menuItem[2].subMenuItem[0] = {label:"BRANDING", link:"movies/branding.swf"}; menuItem[2].subMenuItem[1] = {label:"EMBALAGEM", link:"movies/embalagem.swf"}; menuItem[2].subMenuItem[2] = {label:"MERCHANDISING", link:"movies/merchandising.swf"}; menuItem[2].subMenuItem[3] = {label:"AMBIENTE DE", link:"movies/ambiente_de.swf"}; menuItem[2].subMenuItem[4] = {label:"VAREJO", link:"movies/varejo.swf"}; menuItem[3] = {label:"DESIGN ESTRATÉGICO", link:"movies/design_estrategico.swf"}; menuItem[4] = {label:"CONTATO", link:"movies/contato.swf"}; ///////////////////////////////////////// // CREATING BUTTONS AND ATTRIBUTES //// ///////////////////////////////////////// for (i=0; i<menuItem.length; i++) { attachMovie("container", "new"+i, i, {_x:xPos, _y:yPos}); yPos += this["new"+i]._height; this["new"+i].label_txt.text = menuItem[i].label; this["new"+i].url_btn._url = menuItem[i].link; if (menuItem[i].subMenuItem.length>=0) { for (j=0; j<menuItem[i].subMenuItem.length; j++) { attachMovie("subContainer", "subNew"+j, j, {_x:xPos, _y:yPos}); yPos += this["subNew"+j]._height; this["subNew"+j].subLabel_txt.text = menuItem[i].subMenuItem[j].label; this["subNew"+j].subUrl_btn._url = menuItem[i].subMenuItem[j].link; trace(menuItem[i].subMenuItem[j].link); } } trace(menuItem[i].link); }
Don't see what you're looking for? Try a search.
|