Adobe Flash, anche se ultimamente ha perso un po' del suo smalto all'interno del web, rimane una risorsa formidabile per creare RIA ed applicazioni web animate.
Il suo linguaggio di programmazione, interno, Action Script è completamente OOP ed offre soluzioni infinite per il controllo di ogni elemento inserito all'interno del filmato compilato.
Flash è in grado di caricare dati esterni per manipolare immagini, sequenze, testi ... per farla breve ogni oggetto, comprese le dimensioni, del filmato può essere manipolato caricando dati esterni. In questo articolo vedremo come caricare i dati, sfruttando il motore di Adobe Flash e le potenzialità infinite di Asp.Net.
Le problematiche di Action Script (AS) sono quelle: di non essere un linguaggio Server Side, ovvero manipolato dal server e di non connettersi a database (non si parla di AIR). Quindi ogni volta che vogliamo caricare dati esterni all'interno del nostro filmato, dobbiamo utilizzare tecnologie alternative.
In questo esempio vedremo come caricare variabili utilizzabili da Adobe Flash da una pagina Asp.Net. L'oggettoAction Script 3 che useremo è l' URLLoader.
L'URLLoader è un oggetto che carica i dati da una sorgente esterna, molto pratico e veloce ma non proprio performante, infatti è capace di caricare una serie di coppie di formato nome = valore e non una serie dia dati, quindi è meglio utilizzarlo per file di configurazione o serie di proprietà.
Per prima cosa ci serve un database (in questo caso SQLExpress) che chiameremo "database.mdf" con al suo interno una tabella che chiameremo "configurazione", di seguito un esempio di come strutturare la tabella:

Creiamo la pagina Asp.Net che restituisce i dati
Per far si che flash riesca a leggere i dati presenti all'interno del database dobbiamo creare una pagina web che restituisca i seguenti dati in formato di testo.
larghezza=100.00&altezza=200.00&nome=graph01
Potremmo utilizzare una semplice pagina .aspx ma in questi casi io preferisco sempre utilizzare gestori generici .ashx, perché più plasmabili.
Di seguito il codice della routine ProcessRequest del file "configurazione.ashx".
Public Sub ProcessRequest(ByVal context As HttpContext) Implements IHttpHandler.ProcessRequest
context.Response.ContentType = "text/plain"
'questa riga è modificabile con qualsiasi string
'di connessione riteniate più utile ai vostri
'esperimenti
Dim constring As String = "Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\database.mdf;Integrated Security=True;User Instance=True"
'query di selezione per recuperare i dati
Dim selstring As String = "SELECT * FROM Configurazione WHERE Nome='graph01'"
Dim dt As New Data.DataTable
Dim con As New Data.SqlClient.SqlConnection(constring)
Dim da As New Data.SqlClient.SqlDataAdapter(selstring, con)
da.Fill(dt)
Dim response As String = String.Format("larghezza={0}&altezza={1}&nome={2}", dt.Rows(0)("larghezza").tostring.replace(",","."), dt.Rows(0)("altezza").tostring.replace(",","."), dt.Rows(0)("nome"))
context.Response.Write(response)
End Sub
File SWF che caricherà i dati
Ora creiamo un file Flash e chiamiamolo "Carica_configurazione.fla". Al suo interno nel fotogramma 1 creiamo un MovieClip di nome "graph", contenente un cerchio colorato.
Sempre nel fotogramma 1 su un altro livello inseriamo questo codice ActionScript:
//nascondo momentaneamente l'oggetto
graph.visible = false;
//creo l'oggetto URLRequest da caricare
var urlRequest:URLRequest = new URLRequest("configurazione.ashx");
//creo l'oggetto URLLoader e ne imposto il tipo di dati su VARIABLES
var urlLoader:URLLoader = new URLLoader();
urlLoader.dataFormat = URLLoaderDataFormat.VARIABLES;
//aggancio un evento COMPLETE al caricamento della risorsa
urlLoader.addEventListener(Event.COMPLETE, urlLoader_complete);
//carico la risorsa esterna;
urlLoader.load(urlRequest);
//al termine del caricamento eseguo le istruzioni;
function urlLoader_complete(evt:Event):void {
//imposto le proprietà
graph.width = urlLoader.data.larghezza;
graph.height = urlLoader.data.altezza;
//rendo visibile l'oggetto
graph.visible = true;
}
Da come possiamo vedere dal codice, il file Flash, carica le impostazioni per l'oggetto "graph" da un file esterno. A caricamento completato, passa i valori caricati all'oggetto per renderlo visibile sullo stage.
Un esempio completo dell'articolo appena scritto lo potete scaricare da qui: Caricare Dati Asp.Net da Flash.