Deep linking in Flex: using SWFAddress and BrowserManager

In Flex 3 there is support for deep linking in the BrowserManager class. Unfortunately it requires that you use the Flex HTML templates which, frankly, are really ugly. I prefer to use SWFObject to embed my Flash and Flex applications. To solve this I have created a simple package that makes it possible to use the BrowserManager class with SWFAddress. You can find it and a description on what it does here: Flex BrowserManager + SWFAddress integration.

11 Responses to “Deep linking in Flex: using SWFAddress and BrowserManager”

  1. sectore Says:

    Thanks for sharing this, Theo! I totally agree with your conclusion, that the standard HTML template created by Flex Builder really sucks.

    -sectore

    http://www.websector.de/blog/

  2. Lauren Says:

    Hey, we’ve got an entry on our blog that’s an update on what you have here. Check out our deep linking example and see if it helps you:

    http://9mmedia.com/blog/?tag=deep-linking

  3. Theo Says:

    Lauren:

    Have you looked at my integration kit at all or are you in fact just trying to get linked to? Your article seems to be nothing more than an example of how to use the BrowserManager, and in that it doesn’t seem to add anything to the BrowserManager documentation.

    What I’ve done is creating an integration kit which let’s you use BrowserManager with SWFAddress instead of Adobe’s default embed code, how are you updating on that, and are you even using it at all?

  4. Lauren Says:

    There’s no need to attack, the point of blogs is to share other information that could be helpful.

    You posted on deep linking using BrowserManager and SWFAddress, I responded with a similar post about another way to implement deep linking.

    In fact, I just noticed that you posted a comment on our article so we can’t be completely unrelated.

  5. Theo Says:

    It sure sounded like you hadn’t bothered to read the post, sorry that I was harsh.

  6. Theo Says:

    Ok, so now I’m really confused as to what you mean by “update to what you have here”, I did comment on your post, but to say that I had written a backend that could be used with BrowserManager.

    I still think you haven’t understood what my integration kit does, it’s not an alternative method for deep linking, but an alternative backend to BrowserManager. Nothing changes on the Flex side, the code on your blog would run just the same, but it would be another bit of JavaScript that handled things on the browser side.

  7. willwork Says:

    Hey Theo-

    Does Flex’s BrowserManager work with Google Analytics? Can Analytics track pages like swfAddress does?

  8. Theo Says:

    Out of the box BrowserManager doesn’t integrate with Google Analytics, at least not automatically. You could set up some kind of event listener and call the GA tracking code manually when the state changes, but that’s not practical.

    However, if you use my BrowserManager/SWFAddress integration kit you can work with BrowserManager just as before, but have SWFAddress do the GA integration for you (it will do this automatically if it detects that the GA script is loaded).

    What happens is that when you change the properties of the BrowserManager instance in your application, it calls some JavaScript code which in turns tells SWFAddress that the state has changed. SWFAddress updates the URL and the page title, and then checks to see if the GA tracker is present. If it is, it calls it with the new URL.

  9. willwork Says:

    Thanks, Theo. I like swfAddress and will definitely check out your integration.

  10. Smith Says:

    How can i get your example work? got error:
    Error: Could not install browser history script: ReferenceError: SWFAddress is not defined
    at net.iconara.state::SWFAddressBrowserHistory$/install()[/Users/theo/Documents/Projects/aslib/src/net/iconara/state/SWFAddressBrowserHistory.as:22]
    at Main/onPreinitialize()[C:\Documents and Settings\raymonds\My Documents\Flex Builder 3\SWFAddress_BrowserManager\src\Main.mxml:25]

  11. Theo Says:

    You need to make sure that SWFAddress is included on the HTML page.

Leave a Reply