SWFAddress implementatie

Ik heb pas geleden voor een aantal projecten SWFAddress gebruikt. Dit is een open source project wat ervoor zorgt dat je kan deeplinken in Flash en je browser buttons (forward/back) kan blijven gebruiken.

Deeplinken

Deeplinken is een term die gebruikt wordt om aan te geven dat een externe bron (bijvoorbeeld een andere website) linkt naar een diepliggende pagina op een website. In traditionele Flash applicaties is het niet mogelijk om naar een specifieke pagina te linken omdat de hele applicatie op dezelfde URL draait.

Door SWFAddress te gebruiken kan je elke stuk content/pagina binnen je Flash applicatie een eigen URL geven.

Voorbeeld: De Danone Activia website is geheel opgezet in Flash. Normaal gesproken zou het niet mogelijk zijn om te linken naar de Assortiment pagina en zou ik alleen naar de homepage kunnen linken. Doordat ik op de Activia website gebruik heb gemaakt van SWFAddress kan ik nu met de volgende URL toch linken naar de assortiment pagina:
http://activia.danone.nl/#/assortiment

Dit is bijvoorbeeld ook erg handig voor gebruik in banner campagnes; zo kan je een banner laten uitkomen op een subpagina van je Flash website.

Implementatie in Flash

SWFAddress wordt geleverd met veel voorbeelden. De source bestaat in weze uit 2 Actionscript bestanden en een Javascript bestand. Er zitten voorbeelden bij voor gebruik in netjes OOP-opgezetten Actionscript 2.0 en 3.0 projecten maar ook voor Flash projecten waar alle code nog op de timeline staat.

Het SWFAddress object dispatched een SWFAddressEvent op het moment dat er iets veranderd aan de “state” van de applicatie. Dit event kan je afhandelen binnen elke class.

Ik heb ervoor gekozen om alleen de Applicatie/Document class te laten luisteren naar SWFAddress en deze vervolgens zelf een event te laten dispatchen om aan te geven dat er iets moet gebeuren. Voordeel hiervan is dat je op 1 centrale plek de afhandeling/validatie doet van SWFAddress gebeurtenissen. De navigatie, subnavigatie en footernavigatie luisteren naar het event van de Applicatie class en zetten een subitem actief als deze voldoet aan de criteria.

Het is heel makkelijk om in een tekstveld te linken naar een andere pagina binnen de Flash applicatie; in bovenstaand voorbeeld van Assortiment pagina maak je gewoon een link naar “#/assortiment”.

Lokaal testen

Omdat SWFAddress gebruik maakt van ExternalInterface is het niet goed mogelijk om de site lokaal te testen. Als je vanaf een webserver test of vanuit de Flash IDE werkt het allemaal prima.

Google Analytics

Het is heel makkelijk om Google Analytics te koppelen aan SWFAddress. Google Analytics zal de pagina’s binnen Flash dan behandelen als normale pagina’s. Zo kan je dus ook binnen voor Flash applicaties funnels aanmaken.

Conclusie

SWFAddress is een erg mooie manier om je navigatie op een centrale plek te regelen. Het kunnen deeplinken binnen een Flash applicatie is in mijn ogen een zeer grote toevoeging op elke content-rijke Flash applicatie. Ik hoop van harte dat meer Flash developers deze techniek gaan inzetten.

Tags: , ,

Laat een reactie achter



Archief



Categorieën



Mijn expertise

  • Flash

    • Actionscript 2.0
    • Actionscript 3.0
    • Flash Remoting
    • Flash Lite
    • Flash Video
  • Webdevelopment

    • AJAX
    • PHP
    • MySQL
    • Javascript
    • CSS
    • (X)HTML
View Meinaart van Straalen's profile on LinkedIn