XML-Driven Drop-Down Menu
         by senocular

XML Format
The format of the XML defining our menu will have to accommodate the specifications indicated. This includes defining a name, an action and a differentiation between a normal clickable menu item and one which opens up a submenu. Certainly there are many ways to fit these in an XML document, and that all depends on preference. For today, we'll use the following.

<?xml version="1.0"?>
<menu name="">
<item name="" action="" variables=""/>
<menu name="name"/>
<item name="" action="" variables=""/>
</menu>
</menu>

Here we have a hierarchy set up of menu and item XML nodes. Each menu node represents a collection of more item or menu nodes - or a submenu of the current menu. Item nodes are basic menu options. Both menu and item nodes contain a name attribute specifying that node's name, or display value. Each item node then also gets an action and a variables attribute which will determine what happens when that item is pressed. An action could also be associated with a menu node if desired, but since their purpose is often just to open up a submenu and nothing more.

Example Menu XML
This, or a version of this, will be used in the final Flash menu created.
 

This XML file represents a menu of links. The very first XML node is a menu node representing the main menu. This was given the name links, but since you will never see this name, it is mostly irrelevant though it can serve to help you know what kind of menu this is when editing it. The first two options under this main menu, macromedia and kirupa, are submenus which lead to a collection of other links followed by one basic link item. The kirupa submenu, contains yet another submenu called tutorials. It has its own collection of links. You might be able to see this a little better given the XML excluding the attributes. Then you have this.

<menu>
<menu>
<item/>
<item/>
<item/>
</menu>
<menu>
<item/>
<item/>
<menu>
<item/>
<item/>
<item/>
</menu>
</menu>
<item/>
</menu>

The attributes, however, are needed to help define the menu. Within each node , both types, you'll find a name attribute. If an item node, an action and variables attribute is included too. Since this particular menu is a menu of links, the action given was "gotoURL" and the variables included a URL string. That gives you something like the following.

<item name="google" action="gotoURL" variables="http://www.google.com"/>

When this particular item, google, is clicked, this menu item will open up google.com in a browser window. This action, as well as any other for that matter, needs to be interpreted in Flash, though. Just having "gotoURL" in an XML document means nothing by itself. Its up to you to extract that and make something happen when its read into Flash - actually have that gotoURL mean go to a URL. Lets begin working on that next.

 

 

 




SUPPORTERS:

kirupa.com's fast and reliable hosting provided by Media Temple.