10 Replies Latest reply on Jan 12, 2007 11:43 AM by Ldavinci

    please help!!! actionsript and xml problem

    Ldavinci Level 1
      ...i need help for this...im working a flash site that has a dropdown menu and submenus on it using external xml files..it works fine but my problem is..what if the submenus will be consist of 50 buttons or more..?! ..that means it needs a mask and a scrollbar...how can i do that...? ...please i really need an answer...please email me.. rayram76@yahoo.com (attached here is the xml and actionscript code...hope to hear from you..

      ***for actionscript***

      // generates a list of menu items (effectively one menu)
      // given the inputted parameters. This makes the main menu
      // as well as any of the submenus
      GenerateMenu = function (container, name, x, y, depth, node_xml) {
      // variable declarations
      var curr_node;
      var curr_item;
      var curr_menu = container.createEmptyMovieClip(name, depth);
      // for all items or XML nodes (items and menus)
      // within this node_xml passed for this menu
      for (var i = 0; i<node_xml.childNodes.length; i++) {
      // movieclip for each menu item
      curr_item = curr_menu.attachMovie("menuitem", "item"+i+"_mc", i);
      curr_item._x = x;
      curr_item._y = y+i*curr_item._height;
      curr_item.trackAsMenu = true;
      // item properties assigned from XML
      curr_node = node_xml.childNodes ;
      curr_item.action = curr_node.attributes.action;
      curr_item.variables = curr_node.attributes.variables;
      curr_item.name.text = curr_node.attributes.name;
      // item submenu behavior for rollover event
      if (node_xml.childNodes
      .nodeName == "menu") {
      // open a submenu
      curr_item.node_xml = curr_node;
      curr_item.onRollOver = curr_item.onDragOver=function () {
      var x = this._x+this._width-5;
      var y = this._y+5;
      GenerateMenu(curr_menu, "submenu_mc", x, y, 1000, this.node_xml);
      // show a hover color
      var col = new Color(this.background);
      col.setRGB(0xFFFFCC);
      };
      } else {
      // nodeName == "item"
      curr_item.arrow._visible = false;
      // close existing submenu
      curr_item.onRollOver = curr_item.onDragOver=function () {
      curr_menu.submenu_mc.removeMovieClip();
      // show a hover color
      var col = new Color(this.background);
      col.setRGB(0xFFFFCC);
      };
      }
      curr_item.onRollOut = curr_item.onDragOut=function () {
      // restore color
      var col = new Color(this.background);
      col.setTransform({ra:100, rb:0, ga:100, gb:0, ba:100, bb:0});
      };
      // any item, menu opening or not can have actions
      curr_item.onRelease = function() {
      Actions[this.action](this.variables);
      CloseSubmenus();
      };
      }
      // end for loop
      };
      // create the main menu, this will be constantly visible
      CreateMainMenu = function (x, y, depth, menu_xml) {
      // generate a menu list
      GenerateMenu(this, "mainmenu_mc", x=4, y=-10, depth, menu_xml.firstChild);
      // close only submenus if visible durring a mouseup
      // this main menu (mainmenu_mc) will remain
      mainmenu_mc.onMouseUp = function() {
      if (mainmenu_mc.submenu_mc && !mainmenu_mc.hitTest(_root._xmouse, _root._ymouse, true)) {
      CloseSubmenus();
      }
      };
      };
      // closes all submenus by removing the submenu_mc
      // in the main menu (if it exists)
      CloseSubmenus = function () {
      mainmenu_mc.submenu_mc.removeMovieClip();
      };
      // This actions object handles methods for actions
      // defined by the XML called when a menu item is pressed
      Actions = Object();
      Actions.goto = function(frameVar) {
      gotoAndStop(frameVar);
      };
      Actions.gotoURL = function(urlVar) {
      getURL(urlVar, "_blank");
      };
      Actions.loadFile = function(url) {
      loadMovie(url, "empty");
      };
      Actions.message = function(msg) {
      message_txt.text = msg;
      };
      Actions.newMenu = function(menuxml) {
      menu_xml.load(menuxml);
      };
      // load XML, when done, run CreateMainMenu to interpret it
      menu_xml = new XML();
      menu_xml.ignoreWhite = true;
      menu_xml.onLoad = function(ok) {
      // create main menu after successful loading of XML
      if (ok) {
      CreateMainMenu(10, 10, 0, this);
      message_txt.text = "message area";
      } else {
      message_txt.text = "error: XML not successfully loaded";
      }
      };
      // load first XML menu
      menu_xml.load("data/countries/menu1.xml");

      ********************************************************************
      ***xml codes***

      <?xml version="1.0" ?>
      - <menu name="links">
      - <menu name="Alabama">
      <item name="pics" action="loadFile" variables="data/pics_movie_files/block_sunset_craig_hiller_760.jpg" />
      <item name="pics" action="loadFile" variables="data/pics_movie_files/bird_hide_block_area_760.jpg" />
      <item name="pics" action="loadFile" variables="data/pics_movie_files/distant_fh_shot_760.jpg" />
      <item name="pics" action="loadFile" variables="data/pics_movie_files/scenery_12.jpg" />
      </menu>
      <item name="Alaska" action="gotoURL" variables="url" />
      <item name="Arizona" action="gotoURL" variables="url" />
      <item name="Arkansas" aaction="gotoURL" variables="url" />
      <item name="California" action="gotoURL" variables="url" />
      <item name="Colorado" action="gotoURL" variables="url" />
      <item name="Connecticut" action="gotoURL" variables="url" />
      <item name="Florida" action="gotoURL" variables="url" />
      <item name="Georgia" action="gotoURL" variables="url" />
      <item name="Hawaii" action="gotoURL" variables="url" />
      <item name="Idaho" action="gotoURL" variables="url" />
      <item name="Illinois" action="gotoURL" variables="url" />
      <item name="Indiana" action="gotoURL" variables="url" />
      <item name="Iowa" action="gotoURL" variables="url" />
      <item name="Kentucky" action="gotoURL" variables="url" />
      <item name="Louisiana" action="gotoURL" variables="url" />
      <item name="Maine" action="gotoURL" variables="url" />
      <item name="Maryland" action="gotoURL" variables="url" />
      <item name="Massachusetts" action="gotoURL" variables="url" />
      <item name="Michigan" action="gotoURL" variables="url" />
      <item name="Minnesota" action="gotoURL" variables="url" />
      <item name="Mississippi" action="gotoURL" variables="url" />
      <item name="Missouri" action="gotoURL" variables="url" />
      </menu>

      ****************************************************************************