Hi there,

I'm trying out swfaddress (v 2.4) for the first time in my XML driven website and I almost got it working properly accept for the Back & Forward handling.

My menu is build up from XML nodes, when pressing one of the menu buttons, a variable is set, the appropiate function gets called and swfaddress changes the URL address and page title correctly.
When I go directly to one of the deeplinks in my browser, the variable is not set yet so I construct the variable and it's function from the swfaddress deeplink and the correct page gets loaded. So far so good!

However if I press Back or Forward in my browser only the URL address changes correctly but the page title stays the same and the function doesn't get called. Somehow the Back & Forward button don't fire the SWFAddress.onChange function...

I'm so close! Could someone how a look to see what I'm missing in my AS?
I don't see it anymore... Any help is appreciated! My AS:

Actionscript Code:
// SWFAddress include
#include "com/swfaddress/SWFAddress.as"

// Load XML
var myXML = new XML();
myXML.ignoreWhite = true;
myXML.onLoad = function(success) {
    if (success) {
        makehoofdmenu();
        SWFAddress.onChange();
    } else {
        trace("The XML could not be loaded");
    }
};
// Prevent XML caching
myXML.load("content.xml?cachebuster=" + new Date().getTime());

// Menu
var tmpWidth = 25;
var spacing = 20;
var Status:Number = 0;

var hoofdmenuitems:Array;
var hoofdmenutotal;
var page:Number = NaN;
var pages:Array;
var tmpl:Array;
var button:Array;
var activeNo:Number = NaN;

function makehoofdmenu() { 
    hoofdmenuitems = myXML.firstChild.childNodes[1].childNodes;
    hoofdmenutotal = hoofdmenuitems.length;
    pages = [];
    tmpl = [];
    button = [];
   
    for (s=0; s<hoofdmenutotal; s++) {
       
        pages[s] = hoofdmenuitems[s].attributes.title;
        tmpl[s] = hoofdmenuitems[s].attributes.template;
        button[s] = hoofdmenu.items.createEmptyMovieClip(s, hoofdmenu.items.getNextHighestDepth());
        button[s].createTextField("title", 1, 0, 0, 1, 15);
        button[s].title.setNewTextFormat(Avenir);
        button[s].title.embedFonts = true;
        button[s].title.autoSize = true;
        button[s].title.html = true;
        button[s].title.antiAliasType = "advanced";
        button[s].title.selectable = false;
        button[s].title.htmlText = pages[s];
       
        // Aligning
        button[s]._x = (button[s-1]._x + button[s-1].title.textWidth) + spacing;
       
        // Functions
        button[s].buttonNo = s;
        button[s].onRollOver = function() {
            if(this.buttonNo != page){
                select = new Color(this);
                select.setRGB(0x000000);
            }
            activeNo = this.buttonNo;
            SWFAddress.setStatus(pages[activeNo].toLowerCase());
        }
        button[s].onRollOut = function() {
            if(this.buttonNo != page){
                deSelect = new Color(this);
                deSelect.setRGB(0xFFFFFF);
            }
            SWFAddress.resetStatus();
        }
        button[s].onRelease = function() {
            activatePage(activeNo);
        }
    }
};
   

// SWFAddress handling
SWFAddress.onChange = function() {
    var value = SWFAddress.getValue();
    // If URL is direct check witch page it is
    if (isNaN(activeNo)) {
        pagename = value.substr(1, value.length).toUpperCase();
        getPageURL();
    }
   
    // HTML Title
    var title = 'TITLE';   
    var names = SWFAddress.getPathNames();
    for (var i = 0; i < names.length; i++) {
        title += ' - ' + names[i].substr(0,1).toUpperCase() + names[i].substr(1);
    }
    SWFAddress.setTitle(title);
}


// Activate Page from URL name
function getPageURL() {
    for (s=0; s<hoofdmenutotal; s++) {
        // Loop through pages to check witch is the right one
        pages[s] = hoofdmenuitems[s].attributes.title;
        if (pages[s] == pagename) {
            activatePage(s);
        }
    }
}

// Activate Page
function activatePage(p:Number) {
    var showFunctie = eval("show"+tmpl[p]);
    var hideFunctie = eval("hide"+tmpl[p]);
   
    if (tmpl[p] == "link") {
        var link = hoofdmenuitems[p].firstChild.nodeValue;
        getURL(link, "_blank");
    // If it's a page
    } else {
        if (isNaN(page)) {
            Status ++;
            showFunctie(p);
            selectActive(p);
            SWFAddress.setValue(pages[p].toLowerCase());
            page = p;
        } else {
            if (page != p) {
                if (tmpl[page] == "werk") {
                    randomBG();
                    var movie:MovieClip = eval("hoofdmenu.content."+tmpl[page]);
                    movie.removeMovieClip();
                    eval("imageflow_"+current).removeMovieClip();
                    image_info.removeMovieClip();
                } else {
                    var movie:MovieClip = eval("hoofdmenu.content."+tmpl[page]);
                    movie.removeMovieClip();
                }
                showFunctie(p);
                selectActive(p);
                SWFAddress.setValue(pages[p].toLowerCase());
                page = p;
            } else {
                Status = 0;
                page = NaN;
                SWFAddress.setValue("");
                deselect();
                hideFunctie();
            }
        }
    }
};

Thanks for your time!
Cheers