“Iniettare” parametri ad un file flash SWF tramite una pagina html o php
Chi già programma con linguaggi lato server (es. come abbiamo avuto modo di imparare con il Corso PHP gratis ) tipo PHP o ASP.net, sapra’ molto bene l’importanza del concetto di query.
Con la query è possibile passare esplicitamente tramite l’url, parametri tra una pagina e l’altra del nostro sito. Questo avviene spesso per la creazione di aree ad accesso riservato, sistemi di Tracking, affiliazioni, banner rotation etc.
In Flash spesso di devono passare informazioni direttamente all’animazione, sia sito web che gioco o galleria fotografica.
Basti pensare ad un sistema di Tracking per monitorare l’efficacia di azioni promozionali con la visualizzazione di classici banner realizzati in Flash.
Spesso i miei clienti mi chiedono di implementare un sistema in grado di riconoscere da quale campagna pubblicitaria arrivano i navigatori, in modo da mostrare loro un’animazione flash personalizzata.
Come fare? Se ad esempio il mio cliente ha 3 campagne di marketing attive e vuole mostrare 3 animazioni diverse per i visitatori che arrivano dalla campagna A, B e C?
La soluzione è iniettare un codice all’applicazione Flash, che identifichi la campagna, e poi spostare l’animazione con AcionScript al fotogramma desiderato.
Il metodo più semplice per iniettare parametri ad un file Flash, è usare un attributo specifico del tag objetc ossia flashvars.
Questo è il classico codice per inserire un file swf all’interno di un file html, senza l’uso di javascript (per bypassare gli activeX di IE usare la versione con javascript).
<object classid="...."> ... <param name="movie" value="animazione.swf" /> ... </object>
Questo codice dovra’ essere modificato in modo che all’applicazione flash swf venga passato in modo dinamico la query, con cui sara’ opportunamente progettata la campagna promozionale.
In sostanza, all’interno di flashvars, dovrai inserire le coppie nome=valore dove valore deve essere eventualmente codificato per la presenza di spazi (tralascio)
<object classid="....">
<param name="movie" value="animazione.swf" />
<param name="flashvars" src="campagna=A" />
.....
</object>
Ovviamentela query dovra’ essere inserita in modo dinamico, per rispettare le esigenze del nostro cliente.
Qui finiscono le modifiche a livello di codice html. Ora è necessario intervenire sul codice ActionScript 3 della nostra animazione.
Come possiamo recuperare questo parametro: “campagna=A” oppure “campagna=B” oppure “campagna=C” e riuscire così a pilotare l’animazione nel punto desiderato?
E’ necessario usare una classe molto ben conosciuta a chi ha seguito il Corso ActionScript 3.0 : ossia la classe LoaderInfo grazie alla quale siamo in grado di recuperare la query passata tramite il tag object.
this.loaderInfo.addEventListener(Event.COMPLETE, appCaricata);
function appCaricata(e:Event)
{
var query:Object = this.loaderInfo.parameters;
var promozione:String = query.campagna;
// qui inserisco le azioni da compiere in base alla tipologia di campagna
}
Il tutto dovra’ essere testato andando a modificare il file html come indicato sopra oppure in ambiente di produzione, recuperando dinamicamente la query.
Ecco il video: