Tud ej! det er vidst ikke så skummelt endda, men sagen er at jeg har købt en komponent på Flash Exchange der er en animeret menu med 2 sub-niveauer (fsNavigation2), hvor indholdet styres fra en XML-fil - problemet er nok at komponenten er låst på en eller anden måde, så jeg ikke kan se koden på knapperne. Den eneste kode jeg har adgang til er XML parseren som ligger i 1. frame. Her har jeg selv indsat ovenstående kode som opretter et mc, hvori der loades nye movies alt efter hvilken knap man trykker på.
Her er et udpluk af XML-filen:
<?xml version="1.0" encoding="iso-8859-1" standalone="yes" ?>
<root>
<menu label="test" icon="icon_arrow">
<link label="test" href="test_video.swf"/>
</menu>
<menu label="test" icon="icon_arrow">
<link label="test" href="
www.test.com"/> <link label="test" href="
http://www.test.com"/> </menu>
og koden i 1. frame ser således ud:
System.useCodepage = true;
var xmlMenu = new XML();
xmlMenu.ignoreWhite = true;
xmlMenu.load("nav_input.xml");
xmlMenu.onLoad = function(){
_root.setDataProvider(xmlMenu);
}
function setDataProvider(xmlStr:String)
{
var x = new XML();
x.parseXML(xmlStr);
var ms = x.firstChild.childNodes;
for(var i = 0; i < ms.length; i++)
{
var m = ms[i];
var newMenu:MovieClip = nav.addMenu(m.attributes.label,m.attributes.icon,m.attributes.href, m.attributes.target);
newMenu.some_xml_value = m.attributes.label;
newMenu.__button.onRelease = function()
{
_root.test(this._parent.some_xml_value);
}
var sm = m.childNodes;
for(var k = 0; k < sm.length; k++)
{
var s = sm[k];
var newSubMenu:MovieClip = newMenu.addSubMenu(s.attributes.label,s.attributes.href,s.attributes.target,s.attributes.level);
// write the values you need into the submenu
newSubMenu.some_xml_value = s.attributes.href;
newSubMenu.__background.onRelease = function()
{
// and access them like
_root.test(this._parent.some_xml_value);
}
}
}
}
this.createEmptyMovieClip("container_mc",1);
function test(a:String)
{
minMovie = a
trace(a)
container_mc.loadMovie(a);
}