Everybody! This is important. In a few days, these forums will be moving over to using the totally sweet Discourse platform. To ensure this migration happens smoothly with no loss of content, these forums are currently in a read-only mode. I do apologize for the inconvenience.

There is never a good time to turn the forums off for an extended period of time, but I promise the new forums will be a billion times better. I'm pretty sure of it.

See you all on the other side in a few days, and if you have any (non-technical) questions, please e-mail me at kirupa@kirupa.com. For technical questions, try to find a tutorial that corresponds to what you are looking for and post in the comments section of that page.


Results 1 to 2 of 2

Thread: Portfolio problem (xml-->flash)

  1. #1

    Portfolio problem (xml-->flash)


    I am new here at Kirupa. I got a problem with a portfolio I am trying to build for my new site. The portfolio is actually just a little modification of the tutorial named "XML-driven Drop-Down Menu" in the "PHP and XML" category, http://www.kirupa.com/developer/acti...pdown_menu.htm.

    Now, I can only import one field from the XML file at each press in the project-menu. I would like to be able to import 4 texts from each button.

    I would be really glad if someone at least could give me a tip of what I could do.


    The XML file: http://www.lt-design.com/Laboratory/.../portfolio.php

    The portfolio right now: http://www.lt-design.com/Laboratory/...portfolio.html

    The Actionscript code:
     // 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[i];
    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[i].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);
    }else{ // nodeName == "item"
    curr_item.arrow._visible = false;
    // close existing submenu
    curr_item.onRollOver = curr_item.onDragOver = function(){
    	// show a hover color
    	var col = new Color(this.background);
    curr_item.onRollOut = curr_item.onDragOut = function(){
    // restore color
    var col = new Color(this.background);
    // any item, menu opening or not can have actions
    curr_item.onRelease = function(){
    } // 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, y, 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)){
    // closes all submenus by removing the submenu_mc
    // in the main menu (if it exists)
    CloseSubmenus = function(){
    // This actions object handles methods for actions
    // defined by the XML called when a menu item is pressed
    Actions = Object();
    Actions.gotoURL = function(urlVar){
    getURL(urlVar, "_blank");
    Actions.message = function(msg){
    message_txt.text = msg;
    Actions.newMenu = function(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(398, 0, 0, this);
    message_txt.text = "message area";
    message_txt.text = "error: XML not successfully loaded";
    // load first XML menu

  2. #2
    Don't mind this, I solved it myself...

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts

Home About kirupa.com Meet the Moderators Advertise

 Link to Us


Copyright 1999 - 2012