Hi, I have problem with XML Menu. I want add command to move to different frames on timeline.
I will so thankful if you can help me to do this.
this is ActionScript code:
Actionscript Code:
/**
Example usage:
In your FLA file, add the following code into the main timeline. Make sure that the XML file points to the appropriate file containing your navigation.

new XmlMenu("menu.xml", this);
*/


package {

    import flash.display.MovieClip;
    import flash.events.Event;
    import flash.events.MouseEvent;
    import flash.net.URLLoader;
    import flash.net.URLRequest;

    public class XmlMenu {
        private var menu_xml:XML;
        private var m_parent_mc:MovieClip;
        private var m_menu_array:Array;

        public function XmlMenu(xmlpath_str:String, parent_mc:MovieClip) {
            this.m_parent_mc = parent_mc;
            this.m_menu_array = new Array();
            initXML(xmlpath_str);
        }

        private function completeHandler(event:Event):void {
            menu_xml = XML(event.currentTarget.data);
            var menuXMLList:XMLList = menu_xml.menu;
            var nodeXML:XML;
            var menu_array:Array = new Array();
            var i:Number;
            for each (nodeXML in menuXMLList) {
                var submenu_array:Array = new Array();
                var subNodeXML:XML;
                for each (subNodeXML in nodeXML.children()) {
                    submenu_array.push({caption:subNodeXML.@name, href:subNodeXML.@href});
                }
                menu_array.push({caption:nodeXML.@name, href:nodeXML.@href, subnav_array:submenu_array});
            }
            initMenu(menu_array);

        }
        private function initXML(xmlpath_str:String):void {
            menu_xml = new XML();
            menu_xml.ignoreWhitespace = true;

            var xmlLdr:URLLoader = new URLLoader();
            xmlLdr.addEventListener(Event.COMPLETE, completeHandler);
            xmlLdr.load(new URLRequest(xmlpath_str));
        }

        private function initMenu(nav_array:Array):void {
            var thisX:Number = 20;
            var thisY:Number = 20;
            var menuIndex:Number;
            for (menuIndex = 0; menuIndex < nav_array.length; menuIndex++) {
                var menuMC:MovieClip = new menu_mc();
                menuMC.buttonMode = true;
                m_parent_mc.addChild(menuMC);
                menuMC.x = thisX;
                menuMC.y = thisY;
                menuMC.data = nav_array[menuIndex];
                m_menu_array.push(menuMC);
                menuMC.label_txt.text = menuMC.data.caption;
                menuMC.label_txt.selectable = false;
                menuMC.label_txt.mouseEnabled = false;
                var subMC:MovieClip = new MovieClip();
                m_parent_mc.addChild(subMC);
                subMC.x = thisX;
                subMC.y = menuMC.height;
                subMC.subMenuVisible = true;
                hideSubMenu(subMC);
                subMC.parentMenu = menuMC;
                subMC.visible = false;
                var yPos:Number = thisY;
                var temp_subnav_array:Array = menuMC.data.subnav_array;
                var i:Number;
                for (i = 0; i < temp_subnav_array.length; i++) {
                    var linkMC:MovieClip = new link_mc();
                    linkMC.buttonMode = true;
                    subMC.addChild(linkMC);
                    linkMC.x = 0;
                    linkMC.y = yPos;
                    linkMC.data = temp_subnav_array[i];
                    linkMC.label_txt.text = linkMC.data.caption;
                    linkMC.label_txt.mouseEnabled = false;
                    linkMC.addEventListener(MouseEvent.MOUSE_UP, mouseUpHandler);
                    yPos += linkMC.height;

                }
                var thisWidth:Number = subMC.width + 1;
                var thisHeight:Number = subMC.height + 1;
                subMC.graphics.beginFill(0x000000, 0);
                subMC.graphics.moveTo(0, 0);
                subMC.graphics.drawRect(0, 0, thisWidth, thisHeight);
                subMC.graphics.endFill();
                menuMC.childMenu = subMC;
                thisX += menuMC.width;

            }
            var j:Number;
            for (j in this.m_menu_array) {
                var thisMenuItem:MovieClip = m_menu_array[j];
                thisMenuItem.buttonMode = true;
                thisMenuItem.addEventListener(MouseEvent.ROLL_OVER, rollOverHandler);
                thisMenuItem.addEventListener(MouseEvent.MOUSE_UP, mouseUpHandler);
            }
        }
        private function rollOverHandler(event:MouseEvent):void {
            showSubMenu(event.currentTarget.childMenu);
        }
        private function mouseUpHandler(event:MouseEvent):void {
            trace(event.currentTarget.data.href);
        }

        private function showSubMenu(target_mc:MovieClip):void {
            var thisObj = this;
            if (!target_mc.subMenuVisible) {
                hideAllSubMenus();
                target_mc.visible = true;
                target_mc.subMenuVisible = true;
                target_mc.addEventListener(MouseEvent.MOUSE_MOVE, mouseMoveHandler);
            }
        }
        private function mouseMoveHandler(event:MouseEvent):void {
            var thisMC:MovieClip = event.currentTarget as MovieClip;
            var subHit:Boolean = thisMC.hitTestPoint(event.stageX, event.stageY, true);
            var menuHit:Boolean = thisMC.parentMenu.hitTestPoint(event.stageX, event.stageY, true);
            if (!((subHit || menuHit) && thisMC.subMenuVisible)) {
                thisObj.hideSubMenu(thisMC);
                thisMC.removeEventListener(event.type, this);
            }
        }
        private function hideSubMenu(target_mc:MovieClip):void {
            if (target_mc.subMenuVisible) {
                target_mc.visible = false;
                target_mc.subMenuVisible = false;
            }
        }
        private function hideAllSubMenus():void {
            var i:int;
            for (i in this.m_menu_array) {
                hideSubMenu(this.m_menu_array[i].childMenu);
            }
        }
        private function toggleSubMenu(target_mc:MovieClip):void {
            (target_mc.subMenuVisible) ? hideSubMenu(target_mc) : showSubMenu(target_mc);
        }

    }

}
this is XML:
Actionscript Code:
<?xml version="1.0" encoding="iso-8859-1" ?>
<navigation>
<menu name="Home" href="/home/" />
<menu name="Tutorials" href="/tutorials/">
    <submenu name="Flash" href="/tutorials/flash/" />
    <submenu name="ActionScript" href="/tutorials/actionscript/" />
</menu>
<menu name="Reviews" href="/reviews/">
    <submenu name="Books" href="/reviews/books/" />
    <submenu name="Software" href="/reviews/software/" />
</menu>
</navigation>

Best regards
George
georgmorb@yahoo.com